EP3028182B1 - Verfahren und system zur synchronisation von daten - Google Patents
Verfahren und system zur synchronisation von daten Download PDFInfo
- Publication number
- EP3028182B1 EP3028182B1 EP14748164.2A EP14748164A EP3028182B1 EP 3028182 B1 EP3028182 B1 EP 3028182B1 EP 14748164 A EP14748164 A EP 14748164A EP 3028182 B1 EP3028182 B1 EP 3028182B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data object
- data
- metaobject
- metaclass
- transformation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 48
- 230000009466 transformation Effects 0.000 claims description 132
- 230000001360 synchronised effect Effects 0.000 claims description 71
- 238000000844 transformation Methods 0.000 claims description 24
- 238000013507 mapping Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 230000015654 memory Effects 0.000 claims description 2
- 239000002131 composite material Substances 0.000 description 38
- 239000000243 solution Substances 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Definitions
- the invention relates to a method for synchronizing a first data object with at least one second data object and to a system for synchronizing a first data object with at least one second data object.
- Synchronization methods for the synchronization of data or data objects are known from the prior art.
- appointment management it is known, for example, appointments that are created and managed on a first client device, such as a personal computer, with appointments that are created or managed on a second client device, such as a tablet PC or smartphone, to synchronize, with the appointments in both client devices with the same software system, such as Microsoft Outlook, created or managed.
- the appointments created or managed in the two software systems generally have the same data structure, so that the synchronization of the appointments in the first client device with the appointments in the second client device can be handled without problems.
- Synchronization means that the appointments of one client device are compared with the appointments of the other client device so that all appointments are up-to-date in both client devices.
- this method is disadvantageous if data or data objects are to be synchronized between more than two software systems.
- This method is also disadvantageous if more than two data objects are to be synchronized, each of a different type (for example, a synchronization of three appointment objects, each appointment object having a different data structure).
- a synchronization of three appointment objects, each appointment object having a different data structure for each pair of software systems or for each pair of different data objects an interface or adapter and two associated mapping rules are defined so that in three different data objects already three interfaces and six mapping rules are to be defined.
- Fig. 1 illustrates the method known from the prior art for four different data objects DO 1 to DO 4 .
- the data objects DO 1 to DO 4 can each represent appointments, these four data objects each having a different data structure.
- six interfaces or adapters and a total of twelve mapping instructions must be defined. If an additional data object DO 5 , which in turn has a different data structure, has to be defined for this data object DO 5 , if it is to be synchronized with the data objects DO 1 to DO 4 , four additional interfaces or adapters and eight additional mapping instructions must be defined.
- n 2 For data objects to be synchronized, therefore, in the method known from the prior art n 2 respectively. n ⁇ n - 1 2 Adapters or interfaces and n 2 ⁇ 2 or n ⁇ ( n -1) mapping rules are implemented.
- the invention is therefore based on the technical object to provide solutions for synchronization, which at least partially avoid the disadvantages known from the prior art and with which the number of necessary interfaces or adapters and the number of necessary imaging requirements can be significantly reduced and with which nevertheless the most effective synchronization possible.
- This object is achieved by a method for synchronization of a first data object with at least one second data object and by a system for synchronization of a first data object with at least one second data object according to the independent claims.
- Advantageous embodiments and further developments of the invention are specified in the respective dependent claims.
- a number of different data objects each having a different data structure and even originating from different software systems or applications, can be synchronized with each other without having to define and implement an interface with corresponding synchronization rules for each pair of data objects to map a data structure to the other data structure.
- On interfaces or adapters between two data objects of different data structure and on the associated mapping rules can be completely dispensed with
- the invention avoids that for n data objects to be synchronized (each data object can be synchronized with every other data object), each of which has a different data structure, n ⁇ n - 1 2 Implemented interfaces and n ⁇ ( n - 1) mapping rules must be provided.
- n ⁇ n - 1 2 Implemented interfaces and n ⁇ ( n - 1) mapping rules must be provided.
- a synchronization of data objects can be realized much more effectively and with considerably less implementation effort than known from the prior art, in particular if the data objects to be synchronized originate from a multiplicity of different systems. Sources of errors in the implementation of mapping rules and in the implementation of interfaces are effectively avoided.
- each data object is associated with exactly one metaclass of the number of metaclasses.
- the determined metaclass is a metaclass from which the metaclasses to which the first data object or the second data object is assigned are derived directly or indirectly. Accordingly, the determined metaclass is a common parent class of those metaclasses to which the first data object or the second data object is assigned.
- the determined metaclass may be the metaclass located on the path between the first data object and / or between the second data object and the root metaclass in the hierarchy of the tree structure at the bottom.
- “Farthest down” means that the distance between the root metaclass and the determined metaclass is maximum. If several metaclasses are detected that are on the path between the first data object and the root metaclass and on the path between the second data object and the root metaclass, then the determined metaclass is the maximum metaclass whose distance to the root metaclass is.
- the first transformation and / or the second transformation and / or the third transformation can each comprise a number of partial transformations, wherein the partial transformations of a transformation are carried out consecutively and in a predetermined order.
- attribute values of the attributes of the first meta-object can be mapped to attribute values of the attributes of the second meta-object, or vice versa, according to a predetermined synchronization rule.
- Each transformation and / or partial transformation can be assigned at least one transformation rule that includes a mapping rule that specifies how the attributes of a data object, a temporary meta-object or a meta-object are to be mapped to the attributes of a data object, a temporary meta-object or a meta-object.
- a mapping rule that specifies how the attributes of a data object, a temporary meta-object or a meta-object are to be mapped to the attributes of a data object, a temporary meta-object or a meta-object.
- At least one transformation rule may include a validity criterion indicating whether the transformation rule may be used for a transformation to be performed, wherein a predetermined transformation rule is provided as the default transformation rule in the case of multiple transformation rules.
- the default transformation rule is preferably used if the other transformation rules can not be used because of their validity criteria.
- the data objects can each include an identifier that indicates to which metaclass the respective data object is assigned.
- the second data object Before the second transformation or after or during the third transformation, the second data object can be generated and stored if the second data object is not present before the synchronization.
- Each data object can be an instance of the metaclass to which it is associated.
- Each metaclass except the root metaclass may be derived from exactly one metaclass parent in the tree.
- the data objects are composite data objects, wherein each composite data object comprises a number of data objects that are related to each other.
- a predetermined data object is a master data object. This makes it possible to synchronize a master data object of a composite data object, wherein the other data objects related to the master data object of the composite data object can be automatically synchronized with.
- the relationships of the data objects to each other or the master data object to the other data objects of the composite data object are also synchronized.
- the transformation rule or transformation rules also include or include a mapping rule that specifies or specifies how the master data object and the further data objects of the composite data object related to the master data object are stored in a temporary master file. Meta object or in a temporary composite meta object are to be mapped.
- a system for synchronizing a first data object with at least one second data object comprising a data processing device adapted to carry out a method according to the invention.
- the data processing device can be coupled to at least one memory device via a communication network, and be adapted to receive the first data object via the communication network from the memory device and the second data object, after being synchronized with the first data object, for transmission over the communication network to the memory device provide.
- a computer program product which can be loaded into and executed on the memory of a data processing device and which comprises program sections adapted to execute a method according to the invention.
- Fig. 2 shows a data structure and a number of data objects by means of which the synchronization method according to the invention will be explained.
- a hierarchical tree structure B comprises a number of metaclasses MK 1 to MK 7 .
- the hierarchical tree structure B has a root node, which is referred to here as the root metaclass MKw.
- the metaclasses with the exception of the root metaclass, each have exactly one parent node or one paternet class.
- Each metaclass, including the root metaclass can have one or more sons or sermon classes.
- the metaclasses are each derived from the corresponding parentmetal class, the root metaclass MKw forming the base class. Derived means that a metaclass inherits the attributes of the corresponding parentmate class.
- the metaclass MK 2 inherits the attributes of the root metaclass MK 1 and the metaclass MK 4 inherits the attributes of the metaclass MK 2 , the metaclass MK 4 also inheriting the attributes of the root metaclass MK 1 on the basis of the inheritance hierarchy.
- Each metaclass, with the exception of the root metaclass, MK 1 may include additional attributes in addition to the inherited attributes, so that a derived metaclass will typically have more attributes than the associated parentermetaclasses.
- the metaclass MK 1 or the root metaclass MKw may be a class for a base term object.
- the base date object may include the attributes ID, start time, end time, start date, and end date. That is, all metaclasses derived directly or indirectly from the base term class have these five attributes.
- the derived from the base class MK date Date Class 1 MK 2 may define, for example, the additional attribute "time zone", so that the date classes derived from the class date MK 2 having this additional attribute also.
- class MK 3 derived from the base term class may have the additional attribute "category”.
- the additional attribute "location" may be defined and in the derived class by the date MK 2 Date Class MK 5 the additional attribute may be defined "Subject".
- the leaf nodes of the tree structure B or the metaclasses MK 4 , MK 5 , MK 6 and MK 7 are each a data object DO 1 , DO 2 , DO 3 or DO 4 assigned.
- the assignment of the data objects DO 1 to DO 4 to the respective metaclass means that the data objects DO 1 to DO 4 each represent instances of the respective metaclass.
- a data object can also be assigned to a different metaclass than the leaf metaclasses.
- a data object may be assigned to the metaclass MK 2 , ie, this data object would represent an instance of the metaclass MK 2 .
- the method according to the invention can be carried out both for data objects which are assigned to the leaf metaclasses and for data objects which are assigned to the other metaclasses, including the root metaclass.
- two data objects to be synchronized along their path between the metaclass to which they are associated and the root metaclass, this path being unique for each data object, are up-converted until a metaclass is reached which both data objects have in common.
- the first common metaclass of the data objects DO 1 and DO 2 is the metaclass MK 2 .
- the first common metaclass of the data objects DO 1 and DO 4 is the metaclass MK 1 , which is also the root metaclass at the same time.
- the data objects DO 1 and DO 2 to be synchronized are transformed up to the metaclass MK 2 .
- the data objects DO 1 and DO 4 to be synchronized are transformed up to the metaclass MK 1 .
- the transformations are shown here as solid arrows.
- the data objects DO 1 and DO 4 can each be transformed into the metaclass MK 1 with a single transformation. These transformations are shown here as dashed arrows.
- a multi-level Transformation are performed, wherein the data objects DO 1 and DO 4 are first transformed into the metaclasses MK 2 and MK 3 and then the metaclasses MK 2 and MK 3 are transformed into the metaclass MK 1 .
- the transformation of the data objects to be synchronized up to the common metaclass has the advantage that the data objects thus transformed have an identical data structure, so that synchronization can be carried out particularly easily.
- the two transformed data objects After the two transformed data objects have been synchronized, they can be transformed back down and finally replace the respective original data object.
- the data objects DO 1 and DO 2 are transformed up to the metaclass MK 2 .
- the transformed data objects are then synchronized and then transformed back down, with the two synchronized data objects each replacing or overwriting the corresponding original data object DO 1 or DO 2 .
- the transformation existing by the metaclass MK 3 to the metaclass MK 1 can be reused to transform the data object DO 5 to the metaclass MK 1 .
- the advantage of the method according to the invention is, in particular, that for each additional data object to be synchronized which has a different data structure than the already existing data to be synchronized, only one additional metaclass must be defined, from which the additional data object to be synchronized is instantiated or instantiated is derived from an already existing metaclass in tree B.
- For the additional data object to be synchronized only two transformations need to be defined, namely from the new metaclass to the corresponding parentmetal class and from the corresponding parentmate class to the new metaclass.
- the new data object for example the data object DO 5
- the low number of transformations also means that the maintenance effort is minimized and new data objects or the associated metaclasses can be inserted particularly easily and quickly into the existing tree structure B.
- Fig. 3 shows a section of the in Fig. 2 shown hierarchical tree structure with which the synchronization of the two data objects DO 1 and DO 2 should be clarified.
- the data object DO 1 is an instance of the metaclass MK 4 .
- the data object DO 2 is an instance of the metaclass MK 5 .
- the metaclass MK 4 and the metaclass MK 5 are each derived from the metaclass MK 2 , ie, the metaclass MK 2 is the common superordinate metaclass of the two metaclasses MK 4 and MK 5 .
- the data objects DO 1 and DO 2 are respectively transformed into the metaclass MK 2 .
- the transformation T 1 and for the transformation of the data object DO 2 the transformation T 2 is provided.
- first two metaobjects MO 1 and MO 2 are generated.
- the meta objects MO 1 and MO 2 are instances of the metaclass MK 2 .
- T 1 the data object DO 1 is transformed into the first meta object MO 1 .
- T 2 the data object DO 2 is transformed into the second meta object MO 2 .
- Both transformations are performed in each case according to a transformation rule, which respectively indicate which attributes of the respective data object are to be transformed into which attributes of the respective meta-object.
- the transformed data objects DO 1 and DO 2 or the metaobjects MO 1 and MO 2 have an identical data structure, since the meta objects MO 1 and MO 2 are respectively instances of the metaclass MK 2 . Since the transformed data objects DO 1 and DO 2 or the meta objects MO 1 and MO 2 have the same data structure, the meta-objects MO 1 and MO 2 can be synchronized according to a synchronization rule S, even if the original data objects DO 1 and DO 2 different attributes exhibit. For the respective different attributes, no exception treatments must be provided in the synchronization rule S because the different attributes have been transformed according to the first transformation T 1 and the second transformation T 2 into attributes of the metaobjects MO 1 and MO 2, respectively.
- the third transformation T 3 is in turn carried out according to a transformation rule which specifies which attributes of a meta object are to be transformed into which attributes of a data object. After completing the third transformation T 3 , the data objects DO 1 and DO 2 are synchronized.
- a method is described in which a transformation rule is provided for each of the first, the second and the third transformation, according to which the transformation is carried out.
- each transformation can be assigned a plurality of transformation rules.
- first transformation T 1 be assigned a plurality of transformation rules TR.
- one of the transformation rules associated with the transformation T 1 is then selected according to which the transformation is carried out.
- a specific transformation rule can be selected. If, for example, the attribute "location" of the first data object DO 1 has a specific value, a first transformation rule can be selected, while another transformation rule can be selected for another value of the attribute "location".
- each transformation rule can include a validity criterion which indicates under which conditions a specific transformation rule may be applied.
- a transformation rule may include a validity criterion indicating that the appropriate transformation rule may only be applied if a particular attribute of the data object has a particular value.
- Fig. 4 shows a section of the in Fig. 2 shown hierarchical tree structure, to illustrate the synchronization of the data objects DO 1 and DO 4 .
- the data object DO 1 is an instance of the metaclass MK 4 .
- the data object DO 4 is an instance of the metaclass MK 7 .
- the metaclass MK 1 is the common metaclass from which the metaclasses MK 4 and MK 7 are derived. Consequently, according to the invention, the data objects DO 1 and DO 4 are transformed into the metaclass MK 1 .
- two instances MO 1 and MO 2 of the metaclass MK 1 are created. In a first transformation T 1, the data object DO 1 is then transformed into the meta object MO. 1 In a second transformation T 2 , the data object DO 4 is transformed into the second meta object MO 2 .
- the two meta-objects MO 1 and MO 2 are synchronized according to a synchronization rule S. After successful synchronization of the metaobjects MO 1 and MO 2 , these are in each case transformed again into the data objects DO 1 or DO 4 in a third transformation T 3 , so that the data objects DO 1 and DO 4 are synchronized.
- Fig. 5 shows an alternative procedure according to the invention for the synchronization of the data objects DO 1 and DO 4 Fig. 4 ,
- the two data objects DO 1 and DO 4 are not transformed directly into the metaclass MK 1 by means of the transformations T 1 and T 2 or not directly from the metaclass MK 1 to the data objects DO 1 and DO 4, respectively.
- the transformations T 1 , T 2 and T 3 each comprise two partial transformations.
- a temporary meta-object MO T is generated for the metaclasses MK 2 and MK 3 , which lie respectively in the path between the metaclass MK 4 and the metaclass MK 1 or between the metaclass MK 7 and the metaclass MK 1 .
- the data object DO 1 is transformed into the temporary meta-object MO T belonging to the metaclass MK 2 .
- the temporary meta-object MO T is transformed into the first meta-object MO 1 in a second partial transformation of the first transformation T 1 .
- the second data object DO 4 is transformed with a first partial transformation of the second transformation T 2 into the temporary meta-object MO T belonging to the metaclass MK 3 . Subsequently, the second temporary meta-object MO T is transformed into the meta-object MO 2 .
- the two meta-objects MO 1 and MO 2 are again instances of the metaclass MK 1 .
- the data objects or the metaobjects MO 1 and MO 2 thus transformed by means of two partial transformations are then synchronized in accordance with a synchronization rule S.
- the now synchronized meta-objects MO 1 and MO 2 are then respectively transformed by means of two partial transformations into the respective temporary meta-object MO T and then into the respective data object DO 1 or DO 4 , so that the data objects DO 1 and DO 4 are synchronized.
- the subtransformations can likewise each be assigned a number of transformation rules, each of which can include a validity criterion, and of which a transformation rule is provided in each case as a standard transformation rule.
- Fig. 2 to Fig. 5 the synchronization method according to the invention for the synchronization of "simple" data objects has been described.
- the synchronization method according to the invention can also be used for the synchronization of composite (complex) data objects.
- a composite data object also consists of several or comprises several (simple) data objects that are related to one another.
- An example of this is the compound data object "patent file”, which consists of the data object “file”, the data object “documents” and the data object “inventor”.
- the data object "file” can be the so-called master data object and the data objects "documents” and “inventor” are related to the data object "file”.
- the relationship may be, for example, a 1: 1 or a 1: n or an n: m relation.
- the data objects belonging to the composite data object are synchronized. Furthermore, the relationship is also synchronized because the references of e.g. The master data object can change to another data object if, for example, the referenced data object in the target system receives another unique identifier.
- the synchronization of a composite data object or of the data objects of a composite data object can be carried out according to the inventive method described above.
- Fig. 6 shows an embodiment of a synchronization method according to the invention, with the composite data objects can be synchronized.
- the first composite object DO 1 consists of the data objects A, E and D, wherein the data object A is in an M: N relation to the data object E and to the data object D.
- the data object A is the metaclass MK 5
- the Data object D of the first composite data object DO 1 is the metaclass MK 4
- the data object E of the first composite data object DO 1 is assigned to the metaclass MK 6 .
- the second composite data object DO 2 consists of the classes A 2 , D and E, wherein an M: N relationship exists between the data objects A 2 and the data object E or D respectively.
- the data object A 2 is assigned to the metaclass MK 7 , wherein the metaclass MK 7 is directly derived from the metaclass MK 5 .
- the data object D of the second composite data object DO 2 is the metaclass MK 4, and the data object E of the second composite data object DO 2 is assigned to the metaclass MK 6 .
- the two composite data objects DO 1 and DO 2 each comprise a plurality of data objects which are respectively assigned to different metaclasses, it is possible with the synchronization method according to the invention to synchronize the two composite data objects DO 1 and DO 2 with one another.
- the metaclass MK 5 forms the first common metaclass of the two data objects A and A 2 along the path between the data objects up to the root metaclass MK 1 .
- the two data objects A and A 2 can be synchronized.
- two meta objects are instantiated by the metaclass MK 5 , wherein the data object A of the first composite data object DO 1 is transformed to the first meta object and the data object A 2 of the second composite data object DO 2 is transformed to the second meta object, as in FIG Fig. 6 shown by the upwardly directed solid arrows.
- the two meta objects of the metaclass MK 5 can then be synchronized as described above and then be transformed back down to the corresponding data objects A or A 2 , as in FIG Fig. 6 shown by the downward-pointing solid arrows.
- the data objects A and A 2 of the two composite data objects DO 1 and DO 2 are thus completely synchronized.
- the remaining data objects of the two composite data objects DO 1 and DO 2 can also be synchronized.
- the corresponding transformations to the corresponding metaclasses MK 4 and MK 6 and the corresponding transformations of the metaclasses MK 4 and MK 6 to the data objects D and E not shown.
- the instances D and E of the two data objects DO 2 are respectively transformed to corresponding meta-objects of the two metaclasses MK 6 and MK 7 .
- the meta-objects of the metaclasses MK 4 and MK 6 thus generated are synchronized and subsequently transformed back to the respective data objects D or E, for example with reference to FIG Fig. 3 shown.
- the relationships between the data objects of the respective composite data objects DO 1 and DO 2 can also be synchronized. This is necessary, for example, if the in Fig. 6 shown example, the data object D of the first composite data object DO 1 has received a new primary key, based on which the link to the data object A is established. After the synchronization of the data objects of the two composite data objects DO 1 and DO 2 , the link existing in the second data object DO 2 between the data object D and the data object A 2 would then be invalid. Now, if the links or relationships between the data objects of a compound data object are synchronized The relationships or links are also valid again in the synchronized data object.
- the synchronization of the relationships or links between data objects of composite data objects can be effected according to the invention in that also for the links, provided that these are N: N links, corresponding metaclasses are provided in the hierarchy of metaclasses. Analogous to the examples described above, these links can also be synchronized by means of appropriate transformations. Thus, no interfaces or mapping rules between individual data objects to be synchronized must be provided or implemented for the synchronization of composite data objects.
- Fig. 7 shows an example of a system according to the invention for the synchronization of data objects.
- the system comprises a data processing device DV, which is coupled via a communication network K, such as the Internet, to a number of storage devices, such as a computer or a smartphone.
- a number of data objects can each be stored in the memory devices DB 1 and DB 2 , wherein the data objects can each be instances of different metaclasses.
- the aforementioned hierarchical tree structure is stored in the data processing device DV and maintained there if necessary.
- the data objects stored in the memory devices DB 1 and DB 2 each include an identifier indicating which metaclass of the hierarchical tree structure stored in the data processing device DV is assigned to the data object.
- To synchronize the data objects stored in the first memory device DB 1 with the data objects stored in the second memory device DB 2 these are transformed according to the method described above into metaobjects that synchronize the metaobjects and the synchronized metaobjects transformed back into the respective data objects.
- the data objects to be transformed can in this case be transmitted via the communication network K to the data processing device DV, where the synchronization is processed, and the synchronized data objects can then in turn be stored in the corresponding memory devices via the communication network.
- the data processing device DV can be, for example, a server device arranged in the cloud.
- a processor or microprocessor may be provided which is adapted to determine in a tree structure a metaclass which is the common metaclass of the data objects to be synchronized. Furthermore, the processor or microprocessor is adapted to generate two meta objects from the ascertained metaclass and to perform corresponding transformations of the data objects to the meta objects or from the meta objects to the data objects, as described above.
- the definition of the tree structure of the metaclasses for example, in an external file, such as in a file system or stored in a database, the microprocessor having access to this definition of the tree structure and accessing it in the context of a synchronization.
- the data objects to be synchronized can be stored on different systems, for example different computers.
- the microprocessor is in this case designed such that it can establish a communication connection to the respective computer systems, for example via the Internet, in order to be able to load the data objects stored therein into a working memory of the microprocessor and then be able to transform the loaded data objects into the corresponding metaobjects.
- the synchronized meta objects are then in turn transmitted via the communication link to the appropriate computer systems and stored there.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die Erfindung betrifft ein Verfahren zur Synchronisation eines ersten Datenobjektes mit zumindest einem zweiten Datenobjekt sowie ein System zur Synchronisation eines ersten Datenobjektes mit zumindest einem zweiten Datenobjekt.
- Synchronisationsverfahren zur Synchronisation von Daten bzw. Datenobjekten sind aus dem Stand der Technik bekannt. Im Bereich der Terminverwaltung ist es beispielsweise bekannt, Termine, die auf einer ersten Clienteinrichtung, etwa ein Personal Computer, angelegt und verwaltet werden, mit Terminen, die auf einer zweiten Clienteinrichtung, etwa ein Tablet-PC oder Smartphone, angelegt bzw. verwaltet werden, zu synchronisieren, wobei die Termine in beiden Clienteinrichtungen mit demselben Softwaresystem, etwa Microsoft Outlook, angelegt bzw. verwaltet werden. Die in den beiden Softwaresystemen angelegten bzw. verwalteten Termine weisen in der Regel die gleiche Datenstruktur auf, sodass die Synchronisation der Termine in der ersten Clienteinrichtung mit den Terminen in der zweiten Clienteinrichtung ohne Probleme abgewickelt werden kann. Synchronisation bedeutet, dass die Termine der einen Clienteinrichtung mit den Terminen der anderen Clienteinrichtung so abgeglichen werden, dass in beiden Clienteinrichtungen sämtliche Termine auf dem aktuellen Stand sind.
- Wenn allerdings Datenobjekte, die aus unterschiedlichen Systemen stammen, miteinander synchronisiert werden sollen, müssen zusätzliche Vorkehrungen getroffen werden, um einen Datenabgleich durchzuführen. Werden beispielsweise in einer ersten Clienteinrichtung Termine mit einem ersten Softwaresystem, etwa Microsoft Outlook, und in einer zweiten Clienteinrichtung Termine mit einem zweiten Softwaresystem, etwa Google Calendar, verwaltet, muss für die Durchführung einer Synchronisation eine Schnittstelle bzw. ein Adapter zwischen den beiden Softwaresystemen zur Verfügung gestellt werden, über den die Synchronisation abgewickelt werden kann. Hierbei muss sichergestellt werden, dass der Adapter bzw. die Schnittstelle angepasst ist, eine Synchronisation in beide Richtungen durchzuführen. Weil in der Regel die Outlook-Termine eine andere Datenstruktur bzw. anders benannte Attribute aufweisen als beispielsweise die Google-Termine, ist es notwendig, die Attribute der Outlook-Termine auf die Attribute der Google-Termine abzubilden und umgekehrt. Eine Definition der jeweiligen Abbildungsvorschriften muss entweder in dem jeweiligen Softwaresystem oder in der Schnittstelle bzw. Adapter definiert bzw. hinterlegt werden.
- Werden nur Daten bzw. Datenobjekte einer bestimmten Klasse, etwa Termine, zwischen genau zwei verschiedenen Softwaresystemen synchronisiert, hält sich der technische Aufwand eine Synchronisierung zu realisieren in Grenzen, denn für die Abwicklung der Synchronisation muss lediglich ein Adapter bzw. eine Schnittstelle und zwei entsprechend angepasste Abbildungsvorschriften zur Verfügung gestellt werden.
- Dieses Verfahren ist allerdings nachteilig, wenn Daten bzw. Datenobjekte zwischen mehr als zwei Softwaresystemen synchronisiert werden sollen. Dieses Verfahren ist auch dann nachteilig, wenn mehr als zwei Datenobjekte synchronisiert werden sollen, die jeweils unterschiedlichen Typs sind (beispielsweise eine Synchronisation von drei Terminobjekten, wobei jedes Terminobjekt eine andere Datenstruktur aufweist). In diesem Fall muss für jedes Paar von Softwaresystemen bzw. für jedes Paar von unterschiedlichen Datenobjekten eine Schnittstelle bzw. Adapter und zwei dazugehörige Abbildungsvorschriften definiert werden, sodass bei drei unterschiedlichen Datenobjekten bereits drei Schnittstellen und sechs Abbildungsvorschriften zu definieren sind.
-
Fig. 1 veranschaulicht das aus dem Stand der Technik bekannte Verfahren für vier unterschiedliche Datenobjekte DO1 bis DO4. Die Datenobjekte DO1 bis DO4 können jeweils Termine repräsentieren, wobei diese vier Datenobjekte jeweils eine unterschiedliche Datenstruktur aufweisen. Damit diese vier Datenobjekte DO1 bis DO4 synchronisiert werden können (alle vier Datenobjekte sollen zueinander synchron sein), müssen sechs Schnittstellen bzw. Adapter und insgesamt zwölf Abbildungsvorschriften definiert werden. Kommt ein zusätzliches Datenobjekt DO5, das wiederum eine andere Datenstruktur aufweist, hinzu, müssen für dieses Datenobjekt DO5, wenn es mit den Datenobjekten DO1 bis DO4 synchronisiert werden soll, vier zusätzliche Schnittstellen bzw. Adapter und acht zusätzliche Abbildungsvorschriften definiert werden. -
- Der Erfindung liegt daher die technische Aufgabe zugrunde, Lösungen für eine Synchronisation bereitzustellen, welche die aus dem Stand der Technik bekannten Nachteile zumindest teilweise vermeiden und mit welchen die Anzahl der notwendigen Schnittstellen bzw. Adapter sowie die Anzahl der notwendigen Abbildungsvorschriften erheblich reduziert werden können und mit welchen dennoch eine möglichst effektive Synchronisation ermöglicht wird.
- Diese Aufgabe wird erfindungsgemäß durch ein Verfahren zur Synchronisation eines ersten Datenobjektes mit zumindest einem zweiten Datenobjekt sowie durch ein System zur Synchronisation eines ersten Datenobjektes mit zumindest einem zweiten Datenobjekt nach den unabhängigen Ansprüchen gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind in den jeweiligen abhängigen Ansprüchen angegeben.
- Bereitgestellt wird demnach ein Computer-implementiertes Verfahren zur Synchronisation eines ersten Datenobjektes mit zumindest einem zweiten Datenobjekt, wobei jedes Datenobjekt eine Anzahl von Attribute umfasst, wobei
- jedes Datenobjekt einer Metaklasse aus einer Anzahl von Metaklassen zugeordnet wird, wobei die Metaklassen in einer Baumstruktur mit einer Wurzelmetaklasse organisiert sind, und wobei die Metaklassen jeweils eine Anzahl von Attribute umfassen;
- in der Baumstruktur eine Metaklasse ermittelt wird, die sich auf dem Pfad zwischen dem ersten Datenobjekt und der Wurzelmetaklasse und auf dem Pfad zwischen dem zweiten Datenobjekt und der Wurzelmetaklasse befindet,
- aus der ermittelten Metaklasse ein erstes Metaobjekt und ein zweites Metaobjekt erzeugt werden;
- eine erste Transformation durchgeführt wird, bei der das erste Datenobjekt in das erste Metaobjekt transformiert wird;
- eine zweite Transformation durchgeführt wird, bei der das zweite Datenobjekt in das zweite Metaobjekt transformiert wird;
- das erste Metaobjekt und das zweite Metaobjekt synchronisiert werden; und
- eine dritte Transformation durchgeführt wird, bei das erste Metaobjekt in das erste Datenobjekt transformiert wird und/oder das zweite Metaobjekt in das zweite Datenobjekt transformiert wird.
- Damit können in vorteilhafter Weise eine Anzahl unterschiedlicher Datenobjekte, die jeweils eine andere Datenstruktur aufweisen und sogar aus unterschiedlichen Softwaresystemen bzw. -anwendungen stammen können miteinander synchronisiert werden, ohne dass für jedes Paar von Datenobjekten einer Schnittstelle mit entsprechenden Synchronisationsvorschriften definiert und implementiert werden muss, um eine Datenstruktur auf die jeweils andere Datenstruktur abzubilden. Auf Schnittstellen bzw. Adapter zwischen jeweils zwei Datenobjekten unterschiedlicher Datenstruktur und auf die dazugehörigen Abbildungsvorschriften kann vollständig verzichtet werden
- Aus technischer Sicht wird durch die Erfindung vermieden, dass für n zu synchronisierende Datenobjekte (jedes Datenobjekt kann mit jedem anderen Datenobjekt synchronisiert werden), die jeweils eine andere Datenstruktur aufweisen,
- Vorzugsweise ist jedes Datenobjekt genau einer Metaklasse aus der Anzahl von Metaklassen zugeordnet.
- Die ermittelte Metaklasse ist eine Metaklasse, von der die Metaklassen, denen das erste Datenobjekt bzw. das zweite Datenobjekt zugeordnet wird, direkt oder indirekt abgeleitet sind. Demnach ist die ermittelte Metaklasse eine gemeinsame Vaterklasse jener Metaklassen, denen das erste Datenobjekt bzw. das zweite Datenobjekt zugeordnet wird.
- Die ermittelte Metaklasse kann jene Metaklasse sein, die sich auf dem Pfad zwischen dem ersten Datenobjekt und/oder zwischen dem zweiten Datenobjekt und der Wurzelmetaklasse in der Hierarchie der Baumstruktur am weitesten unten befindet.
- "Am weitesten unten" bedeutet, dass der Abstand zwischen der Wurzelmetaklasse und der ermittelten Metaklasse maximal ist. Werden mehrere Metaklassen ermittelt, die sich auf dem Pfad zwischen dem ersten Datenobjekt und der Wurzelmetaklasse und auf dem Pfad zwischen dem zweiten Datenobjekt und der Wurzelmetaklasse befinden, dann ist die ermittelte Metaklasse jene Metaklasse dessen Abstand zur Wurzelmetaklasse maximal ist.
- Vorteilhaft ist es, wenn
- bei der ersten Transformation Attributswerte der Attribute des ersten Datenobjektes in Attributswerte der Attribute des ersten Metaobjektes transformiert wird,
- bei der zweiten Transformation Attributswerte der Attribute des zweiten Datenobjektes in Attributswerte der Attribute des zweiten Metaobjektes transformiert wird, und
- bei der dritten Transformation
- Attributswerte der Attribute des ersten Metaobjektes in Attributswerte der Attribute des ersten Datenobjektes und/oder
- Attributswerte der Attribute des zweiten Metaobjektes in Attributswerte der Attribute des zweiten Datenobjektes
- Die erste Transformation und/oder die zweite Transformation und/oder die dritte Transformation können jeweils eine Anzahl von Teiltransformationen umfassen, wobei die Teiltransformationen einer Transformation hintereinander und in einer vorbestimmten Reihenfolge ausgeführt werden.
- Eine Teiltransformation kann
- das erste Datenobjekt oder das zweite Datenobjekt in ein temporäres Metaobjekt, oder
- ein temporäres Metaobjekt in das erste Datenobjekt oder in das zweite Datenobjekt, oder
- ein temporäres Metaobjekt in das erste Metaobjekt oder in das zweite Metaobjekt, oder
- das erste Metaobjekt oder das zweite Metaobjekt in ein temporäres Metaobjekt transformieren, wobei das temporäre Metaobjekt einer Instanz einer Metaklasse entspricht, die sich auf dem Pfad zwischen dem ersten Datenobjekt und/oder zwischen dem zweiten Datenobjekt und der ermittelten Metaklasse befindet.
- Bei der Synchronisation des ersten Metaobjektes mit dem zweiten Metaobjekt können Attributswerte der Attribute des ersten Metaobjektes auf Attributswerte der Attribute des zweiten Metaobjektes, oder umgekehrt, gemäß einer vorbestimmten Synchronisationsvorschrift abgebildet werden.
- Jeder Transformation und/oder jeder Teiltransformation können zumindest eine Transformationsregel zugeordnet werden, die eine Abbildungsvorschrift umfasst, die angibt, wie die Attribute eines Datenobjektes, eines temporären Metaobjektes oder eines Metaobjektes auf die Attribute eines Datenobjektes, eines temporären Metaobjektes oder eines Metaobjektes abzubilden sind.
- Zumindest eine Transformationsregel kann ein Gültigkeitskriterium umfasst, das angibt, ob die Transformationsregel für eine durchzuführende Transformation verwendet werden darf, wobei bei mehreren Transformationsregeln eine vorbestimmte Transformationsregel als Standard-Transformationsregel vorgesehen wird.
- Die Standard-Transformationsregel wird vorzugsweise verwendet, wenn die anderen Transformationsregeln aufgrund ihres Gültigkeitskriteriums nicht verwendet werden dürfen.
- Vorteilhaft ist es, wenn
- das erste Datenobjekt in einer ersten Speichereinrichtung gespeichert wird,
- das zweite Datenobjekt in der ersten Speichereinrichtung oder in einer zweiten Speichereinrichtung gespeichert wird,
wobei die beiden Speichereinrichtungen über ein Kommunikationsnetzwerk mit einer Datenverarbeitungseinrichtung koppelbar sind, und/oder - die Synchronisation des ersten Datenobjektes mit dem zweiten Datenobjekt von der Datenverarbeitungseinrichtung durchgeführt wird, wobei die Baumstruktur der Metaklassen und die Transformationsregeln in der Datenverarbeitungseinrichtung verwaltet und gespeichert werden.
- Die Datenobjekte können jeweils eine Kennung umfassen, die angibt, welcher Metaklasse das jeweilige Datenobjekt zugeordnet ist.
- Vor der zweiten Transformation oder nach bzw. während der dritten Transformation kann das zweite Datenobjekt erzeugt und gespeichert werden, wenn das zweite Datenobjekt vor der Synchronisation nicht vorhanden ist.
- Jedes Datenobjekt kann eine Instanz jener Metaklasse sein, der es zugeordnet ist.
- Jede Metaklasse mit Ausnahme der Wurzelmetaklasse kann von genau einer in der Baumstruktur übergeordneten Metaklasse abgeleitet sein.
- In einer Ausgestaltung der Erfindung kann es vorgesehen sein, dass die Datenobjekte zusammengesetzte Datenobjekte sind, wobei jedes zusammengesetzte Datenobjekt eine Anzahl von Datenobjekten umfasst, die in einer Beziehung zueinander stehen.
- Vorteilhaft ist es, wenn in dem zusammengesetzten Datenobjekt ein vorbestimmtes Datenobjekt ein Master-Datenobjekt ist. Dadurch wird es möglich, ein Master-Datenobjekt eines zusammengesetzten Datenobjektes zu synchronisieren, wobei die mit dem Master-Datenobjekt in Beziehung stehenden weiteren Datenobjekte des zusammengesetzten Datenobjektes automatisch mit synchronisiert werden können.
- In einer vorteilhaften Ausgestaltung der Erfindung werden bei einer Synchronisation eines Master-Datenobjektes bzw. eines zusammengesetzten Datenobjektes die Beziehungen der Datenobjekte zueinander bzw. des Master-Datenobjektes zu den weiteren Datenobjekten des zusammengesetzten Datenobjektes ebenfalls synchronisiert.
- Vorteilhaft ist es hierbei, wenn die Transformationsregel bzw. Transformationsregeln auch eine Abbildungsvorschrift umfasst bzw. umfassen, die angibt bzw. angeben, wie das Master-Datenobjekt und die mit dem Master-Datenobjekt in Beziehung stehenden weiteren Datenobjekte des zusammengesetzten Datenobjektes in ein temporäres Master-Metaobjekt bzw. in ein temporäres zusammengesetztes Metaobjekt abzubilden sind.
- Bei einem zusammengesetzten Datenobjekt kann es vorteilhaft sein, wenn
- in einem ersten Schritt die Datenobjekte des zusammengesetzten Datenobjektes unabhängig voneinander, vorzugsweise gemäß dem erfindungsgemäßen Synchronisationsverfahren synchronisiert werden, und
- in einem zweiten Schritt die Beziehungen der Datenobjekte zueinander synchronisiert werden.
- Es hat sich als Vorteilhaft erwiesen, wenn die eine Beziehung zwischen zwei Datenobjekten eines zusammengesetzten Datenobjektes ebenfalls ein Datenobjekt ist. Dadurch wird es möglich auch die Beziehung zwischen zwei Datenobjekten gemäß dem erfindungsgemäßen Synchronisationsverfahren zu synchronisieren.
- Bereitgestellt durch die Erfindung wird des Weiteren ein System zur Synchronisation eines ersten Datenobjektes mit zumindest einem zweiten Datenobjekt, wobei das System eine Datenverarbeitungseinrichtung umfasst, die angepasst ist, ein erfindungsgemäßes Verfahren auszuführen.
- Die Datenverarbeitungseinrichtung kann über ein Kommunikationsnetzwerk mit zumindest einer Speichereinrichtung koppelbar sein, und angepasst sein, das erste Datenobjekt über das Kommunikationsnetzwerk von der Speichereinrichtung entgegenzunehmen und das zweite Datenobjekt, nachdem es mit dem ersten Datenobjekt synchronisiert worden ist, zur Übertragung über das Kommunikationsnetzwerk auf die Speichereinrichtung bereitzustellen.
- Ferner wird durch die Erfindung ein Computerprogrammprodukt bereitgestellt, das in den Speicher einer Datenverarbeitungseinrichtung geladen werden kann und auf dieser zur Ausführung gebracht werden kann, und das Programmabschnitte umfasst, die angepasst sind, ein erfindungsgemäßes Verfahren zur Ausführung zu bringen.
- Weitere Einzelheiten und Merkmale der Erfindung sowie konkrete Ausführungsbeispiele der Erfindung ergeben sich aus der nachfolgenden Beschreibung in Verbindung mit der Zeichnung. Es zeigt:
- Fig. 1
- Datenobjekte, die gemäß einem aus dem Stand der Technik bekannten Synchronisationsverfahren zu synchronisieren sind;
- Fig. 2
- eine hierarchische Baumstruktur, zur Erläuterung des erfindungsgemäßen Synchronisationsverfahrens;
- Fig. 3
- einen Ausschnitt aus
Fig. 4 , mit dem ein Ausführungsbeispiel konkret beschrieben wird; - Fig. 4
- einen Ausschnitt aus
Fig. 2 , mit dem ein Ausführungsbeispiel der Erfindung konkret beschrieben wird; - Fig. 5
- eine alternative Lösung zu dem in
Fig. 4 gezeigten Ausführungsbeispiel; - Fig. 6
- ein Ausführungsbeispiel der Erfindung zur Synchronisation von zusammengesetzten Datenobjekten; und
- Fig. 7
- ein Ausführungsbeispiel eines erfindungsgemäßen Systems zur Synchronisation von Daten gemäß dem erfindungsgemäßen Synchronisationsverfahrens.
-
Fig. 2 zeigt eine Datenstruktur und eine Anzahl von Datenobjekte anhand derer das erfindungsgemäße Synchronisationsverfahren erläutert wird. - Eine hierarchische Baumstruktur B umfasst eine Anzahl von Metaklassen MK1 bis MK7. Die hierarchische Baumstruktur B weist einen Wurzelknoten auf, der hier als Wurzelmetaklasse MKw bezeichnet wird. Die Metaklassen, mit Ausnahme der Wurzelmetaklasse, haben jeweils genau einen Vaterknoten bzw. eine Vatermetaklasse. Jede Metaklasse inklusive der Wurzelmetaklasse kann ein oder mehrere Söhne bzw. Sohnmetaklassen aufweisen.
- Gemäß der vorliegenden Erfindung sind die Metaklassen jeweils von der dazugehörigen Vatermetaklasse abgeleitet, wobei die Wurzelmetaklasse MKw die Basisklasse bildet. Abgeleitet bedeutet, dass eine Metaklasse die Attribute der dazugehörigen Vatermetaklasse erbt. Beispielsweise erbt die Metaklasse MK2 die Attribute der Wurzelmetaklasse MK1 und die Metaklasse MK4 erbt die Attribute der Metaklasse MK2, wobei aufgrund der Vererbungshierarchie die Metaklasse MK4 auch die Attribute der Wurzelmetaklasse MK1 erbt. Jede Metaklasse, mit Ausnahme der Wurzelmetaklasse, MK1 kann zusätzlich zu den geerbten Attributen zusätzliche Attribute umfassen, sodass eine abgeleitete Metaklasse in der Regel mehr Attribute aufweist, als die dazugehörige Vatermetaklasse.
- In dem Beispiel gemäß
Fig. 2 kann die Metaklasse MK1 bzw. die Wurzelmetaklasse MKw eine Klasse für ein Basisterminobjekt sein. Das Basisterminobjekt kann beispielsweise die Attribute ID, Startzeit, Endzeit, Startdatum und Enddatum umfassen. D.h., dass alle von der Basisterminklasse direkt oder indirekt abgeleiteten Metaklassen diese fünf Attribute aufweisen. - Die von der Basisterminklasse MK1 abgeleitete Terminklasse MK2 kann beispielsweise das zusätzliche Attribut "Zeitzone" definieren, sodass die von der Terminklasse MK2 abgeleiteten Terminklassen dieses zusätzliche Attribut ebenfalls aufweisen.
- Die von der Basisterminklasse abgeleitete Terminklasse MK3 kann beispielsweise das zusätzliche Attribut "Kategorie" aufweisen.
- In der von der Terminklasse MK2 abgeleiteten Terminklasse MK4 kann das zusätzliche Attribut "Ort" definiert sein und in der von der Terminklasse MK2 abgeleiteten Terminklasse MK5 kann das zusätzliche Attribut "Betreff" definiert sein.
- In dem in
Fig. 2 gezeigten Beispiel ist den Blattknoten der Baumstruktur B bzw. den Metaklassen MK4, MK5, MK6 und MK7 jeweils ein Datenobjekt DO1, DO2, DO3 bzw. DO4 zugeordnet. Die Zuordnung der Datenobjekte DO1 bis DO4 zu der jeweiligen Metaklasse bedeutet, dass die Datenobjekte DO1 bis DO4 jeweils Instanzen der jeweiligen Metaklasse repräsentieren. - Erfindungsgemäß kann ein Datenobjekt aber auch einer anderen Metaklasse als den Blattmetaklassen zugeordnet sein. Beispielsweise kann ein Datenobjekt der Metaklasse MK2 zugeordnet sein, d.h., dieses Datenobjekt würde eine Instanz der Metaklasse MK2 repräsentieren. Das erfindungsgemäße Verfahren kann sowohl für Datenobjekte, die den Blattmetaklassen zugeordnet sind, als auch für Datenobjekte, die den anderen Metaklassen inklusive der Wurzelmetaklasse zugeordnet sind, durchgeführt werden.
- Erfindungsgemäß werden zwei zu synchronisierende Datenobjekte entlang ihres Pfades zwischen der Metaklasse, der sie zugeordnet sind, und der Wurzelmetaklasse, wobei dieser Pfad für jedes Datenobjekt eindeutig ist, solange nach oben transformiert, bis eine Metaklasse erreicht wird, die beide Datenobjekte gemeinsam haben. Beispielsweise ist die erste gemeinsame Metaklasse der Datenobjekte DO1 und DO2 die Metaklasse MK2. Die erste gemeinsame Metaklasse der Datenobjekte DO1 und DO4 ist die Metaklasse MK1, die gleichzeitig auch die Wurzelmetaklasse ist.
- In dem in
Fig. 2 gezeigten Beispiel werden die zu synchronisierenden Datenobjekte DO1 und DO2 bis zur Metaklasse MK2 transformiert. Die zu synchronisierenden Datenobjekte DO1 und DO4 werden bis zur Metaklasse MK1 transformiert. Die Transformationen sind hier als durchgängige Pfeile gezeigt. - Für die Synchronisation der Datenobjekte DO1 und DO4 gibt es zwei Möglichkeiten die Transformationen bis zur Metaklasse MK1 durchzuführen. Gemäß einer ersten Variante können die Datenobjekte DO1 und DO4 jeweils mit einer einzigen Transformation in die Metaklasse MK1 transformiert werden. Diese Transformationen sind hier als gestrichelte Pfeile gezeigt. Alternativ kann auch eine mehrstufige Transformation durchgeführt werden, wobei die Datenobjekte DO1 und DO4 zunächst in die Metaklassen MK2 bzw. MK3 transformiert werden und anschließend die Metaklassen MK2 und MK3 in die Metaklasse MK1 transformiert werden.
- Nachdem die zu synchronisierenden Datenobjekte bis zur gemeinsamen Metaklasse transformiert worden sind, können sie dort synchronisiert werden, wie mit Bezug auf
Fig. 3 bis Fig. 5 näher erläutert. Die Transformation der zu synchronisierenden Datenobjekte bis zu der gemeinsamen Metaklasse hat den Vorteil, dass die so transformierten Datenobjekte eine identische Datenstruktur aufweisen, sodass eine Synchronisation besonders einfach durchgeführt werden kann. - Nachdem die beiden transformierten Datenobjekte synchronisiert worden sind, können diese wieder nach unten transformiert werden und schließlich das jeweilige ursprüngliche Datenobjekt ersetzen. In dem in
Fig. 2 gezeigten Beispiel werden die Datenobjekte DO1 und DO2 bis zur Metaklasse MK2 transformiert. Die transformierten Datenobjekte werden dann synchronisiert und anschließend wieder nach unten transformiert, wobei die beiden synchronisierten Datenobjekte jeweils das entsprechende ursprüngliche Datenobjekt DO1 bzw. DO2 ersetzen bzw. überschreiben. - Mit diesem Verfahren kann auf Schnittstellen bzw. Adapter zwischen jeweils zwei Datenobjekten unterschiedlicher Datenstruktur und auf die dazugehörigen Abbildungsvorschriften bzw. Synchronisationsvorschriften verzichtet werden. Es müssen lediglich Transformationen in der Baumstruktur definiert werden, gemäß denen die Datenobjekte nach oben transformiert werden bzw. die synchronisierten Datenobjekte nach unten transformiert werden.
- Deutlich wird der Vorteil des erfindungsgemäßen Verfahrens, wenn in dem in
Fig. 2 gezeigten Beispiel ein zusätzliches Datenobjekt DO5, welches einer Metaklasse MK8 zugeordnet ist, die wiederum von der Metaklasse MK3 abgeleitet ist, mit den Datenobjekten DO1 bis DO4 synchronisiert werden soll. In diesem Fall muss lediglich eine Transformation zur Metaklasse MK3 und eine Transformation von der Metaklasse MK3 zum Datenobjekt bzw. zur Metaklasse MK8 definiert werden, während bei dem inFig. 1 gezeigten Verfahren vier zusätzliche Schnittstellen und acht zusätzliche Abbildungsvorschriften definiert werden müssten. Für die Synchronisation des zusätzlichen Datenobjektes DO5 mit beispielsweise dem Datenobjekt DO1 kann zur Transformation des Datenobjektes DO5 bis zur Metaklasse MK1 die von der Metaklasse MK3 zur Metaklasse MK1 vorhandene Transformation wiederverwendet werden. Dasselbe gilt die Transformation des synchronisierten Datenobjektes von der Metaklasse MK1 zur Metaklasse MK3. - Der Vorteil des erfindungsgemäßen Verfahrens liegt demnach insbesondere darin, dass für jedes zusätzliche zu synchronisierende Datenobjekt, das eine andere Datenstruktur aufweist als die bereits vorhandenen zu synchronisierenden Daten lediglich eine zusätzliche Metaklasse definiert werden muss, von der das zusätzliche zu synchronisierende Datenobjekt instanziiert wird bzw. instanziiert ist, und die von einer bereits vorhandenen Metaklasse in der Baumstruktur B abgeleitet ist. Für das zusätzliche zu synchronisierende Datenobjekt müssen zudem lediglich zwei Transformationen definiert werden, nämlich von der neuen Metaklasse zur dazugehörigen Vatermetaklasse und von der dazugehörigen Vatermetaklasse zur neuen Metaklasse. Damit kann nun das neue Datenobjekt, beispielsweise das Datenobjekt DO5, mit allen anderen Datenobjekten DO1 bis DO4 synchronisiert werden. Die geringe Anzahl von Transformationen führt zudem dazu, dass der Pflegeaufwand minimiert wird und neue Datenobjekte bzw. die dazugehörigen Metaklassen besonders einfach und schnell in die vorhandene Baumstruktur B eingefügt werden können.
-
Fig. 3 zeigt einen Ausschnitt der inFig. 2 gezeigten hierarchischen Baumstruktur, mit dem die Synchronisation der beiden Datenobjekte DO1 und DO2 verdeutlicht werden soll. - Das Datenobjekt DO1 ist eine Instanz der Metaklasse MK4. Das Datenobjekt DO2 ist eine Instanz der Metaklasse MK5. Die Metaklasse MK4 und die Metaklasse MK5 sind jeweils von der Metaklasse MK2 abgeleitet, d.h., die Metaklasse MK2 ist die gemeinsame übergeordnete Metaklasse der beiden Metaklassen MK4 und MK5. Wie mit Bezug auf
Fig. 2 erläutert, werden die Datenobjekte DO1 und DO2 jeweils in die Metaklasse MK2 transformiert. Für die Transformation des Datenobjektes DO1 ist die Transformation T1 und für die Transformation des Datenobjektes DO2 ist die Transformation T2 vorgesehen. - Um die beiden Datenobjekte DO1 und DO2 zu transformieren, werden zunächst zwei Metaobjekte MO1 und MO2 erzeugt. Die Metaobjekte MO1 und MO2 sind hierbei Instanzen der Metaklasse MK2. Mit Hilfe einer ersten Transformation T1 wird das Datenobjekt DO1 in das erste Metaobjekt MO1 transformiert. Mit Hilfe einer zweiten Transformation T2 wird das Datenobjekt DO2 in das zweite Metaobjekt MO2 transformiert. Beide Transformationen werden jeweils gemäß einer Transformationsregel durchgeführt, die jeweils angeben, welche Attribute des jeweiligen Datenobjektes in welche Attribute des jeweiligen Metaobjektes zu transformieren sind.
- Die transformierten Datenobjekte DO1 und DO2 bzw. die Metaobjekte MO1 und MO2 weisen eine identische Datenstruktur auf, denn die Metaobjekte MO1 und MO2 sind jeweils Instanzen der Metaklasse MK2. Weil die transformierten Datenobjekte DO1 und DO2 bzw. die Metaobjekte MO1 und MO2 die gleiche Datenstruktur aufweisen, können die Metaobjekte MO1 und MO2 gemäß einer Synchronisationsvorschrift S synchronisiert werden, auch wenn die ursprünglichen Datenobjekte DO1 und DO2 unterschiedliche Attribute aufweisen. Für die jeweiligen unterschiedlichen Attribute müssen in der Synchronisationsvorschrift S keine Ausnahmebehandlungen vorgesehen werden, weil die unterschiedlichen Attribute gemäß der ersten Transformation T1 und der zweiten Transformation T2 in Attribute der Metaobjekte MO1 bzw. MO2 transformiert worden sind.
- Nach erfolgreicher Synchronisation S der beiden Metaobjekte MO1 und MO2 werden diese in einer dritten Transformation T3 jeweils in das erste Datenobjekt DO1 bzw. DO2 transformiert. Die dritte Transformation T3 wird wiederum gemäß einer Transformationsregel durchgeführt, die angibt, welche Attribute eines Metaobjektes in welche Attribute eines Datenobjektes zu transformieren sind. Nach Abschluss der dritten Transformation T3 sind die Datenobjekte DO1 und DO2 synchronisiert.
- Mit Bezug auf
Fig. 2 undFig. 3 sowie nachfolgend mit Bezug aufFig. 4 undFig. 5 ist ein Verfahren beschrieben, bei dem für die erste, die zweite und die dritte Transformation jeweils eine Transformationsregel vorgesehen ist, gemäß der die Transformation durchgeführt wird. - In einer Ausgestaltung der Erfindung können jeder Transformation mehrere Transformationsregeln zugeordnet sein. Beispielsweise können der in
Fig. 3 gezeigten ersten Transformation T1 mehrere Transformationsregeln TR zugeordnet sein. Erfindungsgemäß wird dann beim Durchführen der ersten Transformation T1 eine der der Transformation T1 zugeordneten Transformationsregeln ausgewählt gemäß der die Transformation durchgeführt wird. Damit kann beispielsweise in Abhängigkeit eines bestimmten Attributwertes des ersten Datenobjektes DO1 eine bestimmte Transformationsregel ausgewählt werden. Hat beispielsweise das Attribut "Ort" des ersten Datenobjektes DO1 einen bestimmten Wert, kann eine erste Transformationsregel ausgewählt werden, während bei einem anderen Wert des Attributes "Ort" eine andere Transformationsregel ausgewählt werden kann. - Hierzu kann jede Transformationsregel ein Gültigkeitskriterium umfassen, welches angibt, unter welchen Voraussetzungen eine bestimmte Transformationsregel angewandt werden darf. Beispielsweise kann eine Transformationsregel ein Gültigkeitskriterium umfassen, das angibt, dass die entsprechende Transformationsregel nur dann angewandt werden darf, wenn ein bestimmtes Attribut des Datenobjektes einen bestimmten Wert aufweist. Sind mehrere Transformationsregel einer Transformation zugeordnet, kann es vorteilhaft sein, wenn eine vorbestimmte Transformationsregel als Standard-Transformationsregel vorgesehen wird, die dann angewandt wird, wenn die Gültigkeitskriterien der anderen Transformationsregeln nicht erfüllt werden.
-
Fig. 4 zeigt einen Ausschnitt der inFig. 2 gezeigten hierarchischen Baumstruktur, zur Verdeutlichung der Synchronisation der Datenobjekte DO1 und DO4. - Das Datenobjekt DO1 ist eine Instanz der Metaklasse MK4. Das Datenobjekt DO4 ist eine Instanz der Metaklasse MK7. Wie mit Bezug auf
Fig. 2 erläutert, ist die Metaklasse MK1 die gemeinsame Metaklasse, von der die Metaklassen MK4 und MK7 abgeleitet sind. Demzufolge werden die Datenobjekte DO1 und DO4 erfindungsgemäß in die Metaklasse MK1 transformiert. Hierzu werden zwei Instanzen MO1 und MO2 der Metaklasse MK1 angelegt. In einer ersten Transformation T1 wird dann das Datenobjekt DO1 in das Metaobjekt MO1 transformiert. In einer zweiten Transformation T2 wird das Datenobjekt DO4 in das zweite Metaobjekt MO2 transformiert. Nach erfolgreicher Transformation der beiden Datenobjekte werden die zwei Metaobjekte MO1 und MO2 gemäß einer Synchronisierungsvorschrift S synchronisiert. Nach erfolgreicher Synchronisation der Metaobjekte MO1 und MO2 werden diese in einer dritten Transformation T3 jeweils wieder in die Datenobjekte DO1 bzw. DO4 transformiert, sodass die Datenobjekte DO1 und DO4 synchronisiert sind. -
Fig. 5 zeigt eine alternative erfindungsgemäße Vorgehensweise zur Synchronisation der Datenobjekte DO1 und DO4 ausFig. 4 . - Im Unterschied zu dem in
Fig. 4 gezeigten Beispiel werden die beiden Datenobjekte DO1 und DO4 nicht direkt mittels der Transformationen T1 und T2 in die Metaklasse MK1 transformiert bzw. nicht direkt von der Metaklasse MK1 zu den Datenobjekten DO1 bzw. DO4. - In dem hier gezeigten Beispiel umfassen die Transformationen T1, T2 und T3 jeweils zwei Teiltransformationen.
- In einem ersten Schritt werden zu den Metaklassen MK2 und MK3, die jeweils in dem Pfad zwischen der Metaklasse MK4 und der Metaklasse MK1 bzw. zwischen der Metaklasse MK7 und der Metaklasse MK1 liegen, ein temporäres Metaobjekt MOT erzeugt.
- In einer ersten Teiltransformation der Transformation T1 wird das Datenobjekt DO1 in das der Metaklasse MK2 zugehörige temporäre Metaobjekt MOT transformiert. Anschließend wird das temporäre Metaobjekt MOT in einer zweiten Teiltransformation der ersten Transformation T1 in das erste Metaobjekt MO1 transformiert.
- Das zweite Datenobjekt DO4 wird mit einer ersten Teiltransformation der zweiten Transformation T2 in das der Metaklasse MK3 zugehörige temporäre Metaobjekt MOT transformiert. Anschließend wird das zweite temporäre Metaobjekt MOT in das Metaobjekt MO2 transformiert.
- Die beiden Metaobjekte MO1 und MO2 sind hierbei wiederum Instanzen der Metaklasse MK1. Die so jeweils mittels zweier Teiltransformationen transformierten Datenobjekte bzw. die Metaobjekte MO1 und MO2 werden dann gemäß einer Synchronisationsvorschrift S synchronisiert. Die nun synchronisierten Metaobjekte MO1 und MO2 werden anschließend jeweils mittels zweier Teiltransformationen in das jeweilige temporäre Metaobjekt MOT und dann in das jeweilige Datenobjekt DO1 bzw. DO4 transformiert, sodass die Datenobjekte DO1 und DO4 synchronisiert sind.
- Den Teiltransformationen können hierbei ebenfalls jeweils eine Anzahl von Transformationsregeln zugeordnet sein, die jeweils ein Gültigkeitskriterium umfassen können und von denen jeweils eine Transformationsregel als Standard-Transformationsregel vorgesehen ist.
- Mit Bezug auf
Fig. 2 bis Fig. 5 ist das erfindungsgemäße Synchronisationsverfahren für die Synchronisation von "einfachen" Datenobjekten beschrieben worden. Das erfindungsgemäße Synchronisationsverfahren kann aber auch für die Synchronisation von zusammengesetzten (komplexen) Datenobjekten verwendet werden. - Ein zusammengesetztes Datenobjekt besteht auch mehreren bzw. umfasst mehrere (einfache) Datenobjekte, die in einer Beziehung zueinander stehen. Ein Beispiel hierfür ist das zusammengesetzte Datenobjekt "Patentakte", das aus dem Datenobjekt "Akte", dem Datenobjekt "Dokumente" und dem Datenobjekt "Erfinder" besteht. Das Datenobjekt "Akte" kann hierbei das sogenannte Master-Datenobjekt sein und die Datenobjekte "Dokumente" und "Erfinder" stehen in einer Beziehung zu dem Datenobjekt "Akte". Die Beziehung kann beispielsweise eine 1:1 oder eine 1:n oder eine n:m-Relation sein.
- Bei der Synchronisation von solchen zusammengesetzten Datenobjekten werden die zu dem zusammengesetzten Datenobjekt gehörenden Datenobjekte synchronisiert. Ferner werden auch die Beziehung synchronisiert, denn die Referenzen von z.B. dem Master-Datenobjekt auf ein anderes Datenobjekt können sich ändern, wenn etwa das referenzierte Datenobjekt in dem Zielsystem eine andere eindeutige Kennung erhält.
- Die Synchronisation eines zusammengesetzten Datenobjektes bzw. der Datenobjekte eines zusammengesetzten Datenobjektes kann gemäß dem vorstehend beschriebenen erfindungsgemäßen Verfahren durchgeführt werden.
-
Fig. 6 zeigt ein Ausführungsbeispiel eines erfindungsgemäßen Synchronisationsverfahrens, mit dem zusammengesetzte Datenobjekte synchronisiert werden können. Das erste zusammengesetzte Objekt DO1 besteht aus den Datenobjekten A, E und D, wobei das Datenobjekt A in einer M:N-Beziehung zu dem Datenobjekt E und zu dem Datenobjekt D steht. Das Datenobjekt A ist der Metaklasse MK5, das Datenobjekt D des ersten zusammengesetzten Datenobjektes DO1 ist der Metaklasse MK4 und das Datenobjekt E des ersten zusammengesetzten Datenobjektes DO1 ist der Metaklasse MK6 zugeordnet. - Das zweite zusammengesetzte Datenobjekt DO2 besteht aus den Klassen A2, D und E, wobei zwischen den Datenobjekten A2 und dem Datenobjekt E bzw. D jeweils eine M:N-Beziehung besteht. Das Datenobjekt A2 ist der Metaklasse MK7 zugeordnet, wobei die Metaklasse MK7 von der Metaklasse MK5 direkt abgeleitet ist. Das Datenobjekt D des zweiten zusammengesetzten Datenobjektes DO2 ist der Metaklasse MK4 und das Datenobjekt E des zweiten zusammengesetzten Datenobjektes DO2 ist der Metaklasse MK6 zugeordnet.
- Obwohl die beiden zusammengesetzten Datenobjekte DO1 und DO2 jeweils mehrere Datenobjekte umfassen, die jeweils unterschiedlichen Metaklassen zugeordnet sind, ist es mit dem erfindungsgemäßen Synchronisationsverfahren möglich, die beiden zusammengesetzten Datenobjekte DO1 und DO2 miteinander zu synchronisieren.
- Bei dem in
Fig. 6 gezeigten Beispiel bildet die Metaklasse MK5 die erste gemeinsame Metaklasse der beiden Datenobjekte A und A2 entlang des Pfades zwischen den Datenobjekten nach oben zur Wurzelmetaklasse MK1. Wie mit Bezug aufFig. 3 bis Fig. 5 erläutert, können die beiden Datenobjekte A und A2 synchronisiert werden. Hierzu werden von der Metaklasse MK5 zwei Metaobjekte instanziert, wobei das Datenobjekt A des ersten zusammengesetzten Datenobjektes DO1 zum ersten Metaobjekt transformiert wird und das Datenobjekt A2 des zweiten zusammengesetzten Datenobjektes DO2 zum zweiten Metaobjekt transformiert wird, wie inFig. 6 anhand der nach oben gerichteten durchgängigen Pfeile gezeigt. Die beiden Metaobjekte der Metaklasse MK5 können dann wie vorstehend beschrieben synchronisiert werden und anschließend wieder zu den entsprechenden Datenobjekten A bzw. A2 nach unten transformiert werden, wie inFig. 6 anhand der nach unten gerichteten durchgängigen Pfeile gezeigt. - Die Datenobjekte A und A2 der beiden zusammengesetzten Datenobjekte DO1 und DO2 sind damit fertig synchronisiert.
- In einem nächsten Schritt können auch die restlichen Datenobjekte der beiden zusammengesetzten Datenobjekte DO1 und DO2 synchronisiert werden. Der besseren Übersicht halber sind in
Fig. 6 die entsprechenden Transformationen zu den entsprechenden Metaklassen MK4 bzw. MK6 und die entsprechenden Transformationen von den Metaklassen MK4 bzw. MK6 zu den Datenobjekten D bzw. E nicht dargestellt. Dennoch werden die Instanzen D und E der beiden Datenobjekte DO2 jeweils zu entsprechenden Metaobjekten der beiden Metaklassen MK6 und MK7 transformiert. Anschließend werden die so erzeugten Metaobjekte der Metaklassen MK4 und MK6 synchronisiert und anschließend wieder zu den jeweiligen Datenobjekten D bzw. E nach unten transformiert, wie beispielsweise mit Bezug aufFig. 3 gezeigt. - Damit sind nun auch die Datenobjekte D und E der beiden zusammengesetzten Datenobjekte DO1 und DO2 synchronisiert.
- In einem weiteren Schritt, der nur bei Bedarf und optional durchgeführt wird, können auch die Beziehungen zwischen den Datenobjekten der jeweiligen zusammengesetzten Datenobjekte DO1 und DO2 synchronisiert werden. Dies ist beispielsweise dann notwendig, wenn bei dem in
Fig. 6 gezeigten Beispiel das Datenobjekt D des ersten zusammengesetzten Datenobjektes DO1 einen neuen Primärschlüssel erhalten hat, anhand dessen die Verknüpfung zu dem Datenobjekt A hergestellt wird. Nach der Synchronisation der Datenobjekte der beiden zusammengesetzten Datenobjekte DO1 und DO2 wäre dann die in dem zweiten Datenobjekte DO2 vorhandene Verknüpfung zwischen dem Datenobjekt D und dem Datenobjekt A2 ungültig. Wenn nun auch die Verknüpfungen bzw. Beziehungen zwischen den Datenobjekten eines zusammengesetzten Datenobjektes synchronisiert werden, sind auch in dem synchronisierten Datenobjekt die Beziehungen bzw. Verknüpfungen wieder gültig. - Die Synchronisation der Beziehungen bzw. Verknüpfungen zwischen Datenobjekten von zusammengesetzten Datenobjekten kann erfindungsgemäß dadurch erfolgen, dass auch für die Verknüpfungen, sofern es sich hierbei um N:N-Verknüpfungen handelt, entsprechende Metaklassen in der Hierarchie von Metaklassen vorgesehen werden. Analog zu den vorstehend beschriebenen Beispielen können auch diese Verknüpfungen mittels entsprechender Transformationen synchronisiert werden. Damit müssen auch für die Synchronisation von zusammengesetzten Datenobjekten keine Schnittstellen bzw. Abbildungsvorschriften zwischen einzelnen zu synchronisierenden Datenobjekten bereitgestellt bzw. implementiert werden.
-
Fig. 7 zeigt ein Beispiel eines erfindungsgemäßen Systems zur Synchronisation von Datenobjekten. Das System umfasst eine Datenverarbeitungseinrichtung DV, die über ein Kommunikationsnetzwerk K, etwa das Internet, mit einer Anzahl von Speichereinrichtungen, etwa eines Computers oder eines Smartphones, gekoppelt sind. In den Speichereinrichtungen DB1 und DB2 können jeweils eine Anzahl von Datenobjekten gespeichert sein, wobei die Datenobjekte jeweils Instanzen unterschiedlicher Metaklassen sein können. - Die vorstehend genannte hierarchische Baumstruktur wird in der Datenverarbeitungseinrichtung DV hinterlegt und dort gegebenenfalls gepflegt. Die in den Speichereinrichtungen DB1 und DB2 gespeicherten Datenobjekte umfassen jeweils eine Kennung, die angibt, welcher Metaklasse der in der Datenverarbeitungseinrichtung DV gespeicherten hierarchischen Baumstruktur das Datenobjekt zugeordnet ist. Zur Synchronisation der in der ersten Speichereinrichtung DB1 gespeicherten Datenobjekte mit den in der zweiten Speichereinrichtung DB2 gespeicherten Datenobjekte werden diese gemäß dem vorstehend beschriebenen Verfahren in Metaobjekte transformiert, die Metaobjekte synchronisiert und die synchronisierten Metaobjekte in die jeweiligen Datenobjekte zurücktransformiert. Die zu transformierenden Datenobjekte können hierbei über das Kommunikationsnetzwerk K an die Datenverarbeitungseinrichtung DV übertragen werden, wo die Synchronisation abgewickelt wird, und die synchronisierten Datenobjekte können dann wiederum über das Kommunikationsnetzwerk in den entsprechenden Speichereinrichtungen gespeichert werden.
- Werden einer Speichereinrichtung neue Datenobjekte hinzugefügt, die Instanzen einer Metaklasse repräsentieren, die noch nicht Bestandteil der hierarchischen Baumstruktur ist, müssen für diese zusätzliche Metaklasse lediglich zwei Transformationen definiert werden, um die Instanzen dieser neuen Metaklasse mit allen anderen Datenobjekten synchronisieren zu können. Vorteilhaft ist hierbei, dass zur Definition der beiden Transformationen lediglich Kenntnis über die Datenstruktur der übergeordneten Metaklasse notwendig ist (beispielsweise ist bei dem in
Fig. 2 gezeigten Beispiel für die Transformation der neu hinzukommenden Metaklasse MK8 nur Kenntnis über die Datenstruktur der Metaklasse MK3 notwendig, um die beiden Transformationen zwischen MK8 und MK3 zu definieren). Der Aufbau und die Datenstruktur der übrigen Metaklassen in der hierarchischen Baumstruktur müssen hierzu nicht bekannt sein. - Bei der Datenverarbeitungseinrichtung DV kann es sich beispielsweise um eine in der Cloud angeordnete Servereinrichtung handeln.
- Für die Ausführung des erfindungsgemäßen Verfahrens kann ein Prozessor bzw. Mikroprozessor vorgesehen sein, der angepasst ist, in einer Baumstruktur eine Metaklasse zu ermitteln, die die gemeinsame Metaklasse der zu synchronisierenden Datenobjekte ist. Ferner ist der Prozessor bzw. Mikroprozessor angepasst, aus der ermittelten Metaklasse zwei Metaobjekte zu erzeugen und entsprechende Transformationen der Datenobjekte zu den Metaobjekten bzw. von den Metaobjekten zu den Datenobjekten, wie vorstehend beschrieben, durchzuführen. Die Definition der Baumstruktur der Metaklassen kann beispielsweise in einer externen Datei, etwa in einem Dateisystem oder in einer Datenbank gespeichert sein, wobei der Mikroprozessor auf diese Definition der Baumstruktur Zugriff hat und im Rahmen einer Synchronisation darauf zugreift. Die zu synchronisierenden Datenobjekte können auf unterschiedlichen Systemen, beispielsweise unterschiedlichen Rechnern gespeichert sein. Der Mikroprozessor ist hierbei so ausgestaltet, dass er zu den jeweiligen Rechnersystemen eine Kommunikationsverbindung, etwa über das Internet, herstellen kann, um die dort gespeicherten Datenobjekte in einen Arbeitsspeicher des Mikroprozessors laden zu können und anschließend die geladenen Datenobjekte in die entsprechenden Metaobjekte transformieren zu können. Die synchronisierten Metaobjekte werden dann wiederum über die Kommunikationsverbindung an die entsprechenden Rechnersysteme übertragen und dort gespeichert.
-
- A, A2
- Datenobjekt
- B
- Baumstruktur (hierarchisch)
- D
- Datenobjekt
- DB1, DB2
- Speichereinrichtungen
- DO1 bis DOn
- Datenobjekte bzw. zusammengesetzte Datenobjekte
- DV
- Datenverarbeitungseinrichtung, z.B. eine Servereinrichtung in der Cloud
- E
- Datenobjekt
- K
- Kommunikationsnetzwerk
- MK1 bis MKn
- Metaklassen in der Baumstruktur B
- MKW
- Wurzelmetaklasse in der Baumstruktur B
- MO1, MO2
- erstes und zweites Metaobjekt (Instanzen einer Metaklasse)
- MOT
- temporäres Metaobjekt (Instanz einer Metaklasse)
- S
- Synchronisierung
- TR
- Transformationsregeln
- T1 bis Tn
- Transformationen zwischen Datenobjekte und Metaobjekte bzw. zwischen Metaobjekte und Datenobjekte
Claims (15)
- Computer-implementiertes Verfahren zur Synchronisation eines ersten Datenobjektes (DO1) mit zumindest einem zweiten Datenobjekt (DO2), wobei jedes Datenobjekt (DO1; DO2) eine Anzahl von Attribute n umfasst, wobei das Verfahren auf einem Prozessor ausgeführt wird, dadurch gekennzeichnet, dass- jedes Datenobjekt (DO1; DO2) einer Metaklasse aus einer Anzahl von Metaklassen (MK1 bis MKn) zugeordnet wird, wobei die Metaklassen in einer Baumstruktur (B) mit einer Wurzelmetaklasse (MKw) organisiert werden, und wobei die Metaklassen jeweils eine Anzahl von Attribute n umfassen;- in der Baumstruktur eine Metaklasse ermittelt wird, die sich auf dem Pfad zwischen dem ersten Datenobjekt (DO1) und der Wurzelmetaklasse (MKw) und auf dem Pfad zwischen dem zweiten Datenobjekt (DO2) und der Wurzelmetaklasse (MKw) befindet,- aus der ermittelten Metaklasse ein erstes Metaobjekt (MO1) und ein zweites Metaobjekt (MO2) erzeugt werden;- eine erste Transformation (T1) durchgeführt wird, bei der das erste Datenobjekt (DO1) in das erste Metaobjekt (MO1) transformiert wird;- eine zweite Transformation (T2) durchgeführt wird, bei der das zweite Datenobjekt (DO2) in das zweite Metaobjekt (MO2) transformiert wird;- das erste Metaobjekt (MO1) und das zweite Metaobjekt (MO2) synchronisiert (S) werden; und- eine dritte Transformation (T3) durchgeführt wird, wobei das erste Metaobjekt (MO1) in das erste Datenobjekt (DO1) transformiert wird und/oder das zweite Metaobjekt (MO2) in das zweite Datenobjekt (DO2) transformiert wird.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die ermittelte Metaklasse jene Metaklasse ist, die sich auf dem Pfad zwischen dem ersten Datenobjekt (DO1) und der Wurzelmetaklasse (MKw) und/oder zwischen dem zweiten Datenobjekt (DO2) und der Wurzelmetaklasse (MKw) in der Hierarchie der Baumstruktur (B) am weitesten unten befindet.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass- bei der ersten Transformation (T1) Attributswerte der Attribute des ersten Datenobjektes (DO1) in Attributswerte der Attribute des ersten Metaobjektes (MO1) transformiert wird,- bei der zweiten Transformation (T2) Attributswerte der Attribute des zweiten Datenobjektes (DO2) in Attributswerte der Attribute des zweiten Metaobjektes (MO2) transformiert wird, und- bei der dritten Transformation (T3)- Attributswerte der Attribute des ersten Metaobjektes (MO1) in Attributswerte der Attribute des ersten Datenobjektes (DO1) und/oder- Attributswerte der Attribute des zweiten Metaobjektes (MO2) in Attributswerte der Attribute des zweiten Datenobjektes (DO2) transformiert werden.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die erste Transformation (T1) und/oder die zweite Transformation (T2) und/oder die dritte Transformation (T3) jeweils eine Anzahl von Teiltransformationen umfasst, wobei die Teiltransformationen einer Transformation (T1, T2, T3) hintereinander und in einer vorbestimmten Reihenfolge ausgeführt werden.
- Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass eine Teiltransformation- das erste Datenobjekt (DO1) oder das zweite Datenobjekt (DO2) in ein temporäres Metaobjekt (MOT), oder- ein temporäres Metaobjekt (MOT) in das erste Datenobjekt (DO1) oder in das zweite Datenobjekt (DO2), oder- ein temporäres Metaobjekt (MOT) in das erste Metaobjekt (MO1) oder in das zweite Metaobjekt (MO2), oder- das erste Metaobjekt (MO1) oder das zweite Metaobjekt (MO2) in ein temporäres Metaobjekt (MOT)transformiert, wobei das temporäre Metaobjekt (MOT) einer Instanz einer Metaklasse entspricht, die sich auf dem Pfad zwischen dem ersten Datenobjekt (DO1) und der ermittelten Metaklasse und/oder zwischen dem zweiten Datenobjekt (DO2) und der ermittelten Metaklasse befindet.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Synchronisation (S) des ersten Metaobjektes (MO1) mit dem zweiten Metaobjekt (MO2) Attributswerte der Attribute des ersten Metaobjektes (MO1) auf Attributswerte der Attribute des zweiten Metaobjektes (MO2), oder umgekehrt, gemäß einer vorbestimmten Synchronisationsvorschrift abgebildet werden.
- Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass jeder Transformation (T1, T2, T3) und/oder jeder Teiltransformation zumindest eine Transformationsregel (TR) zugeordnet wird, die eine Abbildungsvorschrift umfasst, die angibt, wie die Attribute eines Datenobjektes (DO1, DO2), eines temporären Metaobjektes oder eines Metaobjektes (MO1, MO2) auf die Attribute eines Datenobjektes (DO1, DO2), eines temporären Metaobjektes oder eines Metaobjektes (MO1, MO2) abzubilden sind.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Datenobjekte (DO1, DO2) jeweils eine Kennung umfassen, die angibt, welcher Metaklasse (MK1 bis MKn) das jeweilige Datenobjekt zugeordnet ist.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass vor der zweiten Transformation (T2) oder nach bzw. während der dritten Transformation (T3) das zweite Datenobjekt (DO2) erzeugt und gespeichert wird, wenn das zweite Datenobjekt vor der Synchronisation nicht vorhanden ist.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Datenobjekte (DO1; DO2) zusammengesetzte Datenobjekte sind, wobei jedes zusammengesetzte Datenobjekt eine Anzahl von Datenobjekte umfasst, die in einer Beziehung zueinander stehen, wobei in dem zusammengesetzten Datenobjekt ein vorbestimmtes Datenobjekt ein Master-Datenobjekt ist, wobei die Master-Datenobjekte der zu synchronisierenden zusammengesetzten Datenobjekte synchronisiert werden, wobei die mit den Master-Datenobjekten in Beziehung stehenden weiteren Datenobjekte des zusammengesetzten Datenobjektes automatisch mitsynchronisiert werden und wobei bei der Synchronisation der zusammengesetzten Datenobjekte die Beziehungen der Datenobjekte der zusammengesetzten Datenobjekte zueinander ebenfalls synchronisiert werden.
- Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die Transformationsregel bzw. Transformationsregeln auch eine Abbildungsvorschrift umfasst bzw. umfassen, die angibt bzw. angeben, wie das Master-Datenobjekt und die mit dem Master-Datenobjekt in Beziehung stehenden weiteren Datenobjekte des zusammengesetzten Datenobjektes in ein temporäres Master-Metaobjekt oder in ein temporäres zusammengesetztes Metaobjekt abzubilden sind.
- Verfahren nach einem der beiden vorhergehenden Ansprüche, dadurch gekennzeichnet, dass- in einem ersten Schritt die Datenobjekte des zusammengesetzten Datenobjektes unabhängig voneinander, vorzugsweise gemäß dem Verfahren nach einem der Ansprüche 1 bis 9 synchronisiert werden, und- in einem zweiten Schritt die Beziehungen der Datenobjekte zueinander synchronisiert werden,wobei die Beziehung zwischen zwei Datenobjekten eines zusammengesetzten Datenobjektes vorzugsweise ebenfalls ein Datenobjekt ist, wobei die Beziehung vorzugsweise gemäß dem Verfahren nach einem der Ansprüche 1 bis 9 synchronisiert wird.
- System zur Synchronisation eines ersten Datenobjektes (DO1) mit zumindest einem zweiten Datenobjekt (DO2), wobei das System eine Datenverarbeitungseinrichtung (DV) umfasst, die angepasst ist, ein Verfahren gemäß einem der vorhergehenden Ansprüche auszuführen.
- System nach dem vorhergehenden Anspruch, wobei die Datenverarbeitungseinrichtung (DV) über ein Kommunikationsnetzwerk (K) mit zumindest einer Speichereinrichtung (DB1; DB2) koppelbar ist, und angepasst ist, das erste Datenobjekt (DO1) über das Kommunikationsnetzwerk von der Speichereinrichtung (DB1) entgegenzunehmen und das zweite Datenobjekt (DO2), nachdem es mit dem ersten Datenobjekt synchronisiert worden ist, zur Übertragung über das Kommunikationsnetzwerk auf die Speichereinrichtung (DB2) bereitzustellen.
- Computerprogrammprodukt, das, wenn es in den Speicher einer Datenverarbeitungseinrichtung (DV) geladen wird und auf dieser zur Ausführung gebracht wird, diese Datenverarbeitungseinrichtung ein Verfahren nach einem der vorhergehenden Ansprüche 1 bis 12 ausführen lässt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013108306.4A DE102013108306A1 (de) | 2013-08-01 | 2013-08-01 | Verfahren und System zur Synchronisation von Daten |
PCT/EP2014/066531 WO2015014955A1 (de) | 2013-08-01 | 2014-07-31 | Verfahren und system zur synchronisation von daten |
Publications (3)
Publication Number | Publication Date |
---|---|
EP3028182A1 EP3028182A1 (de) | 2016-06-08 |
EP3028182B1 true EP3028182B1 (de) | 2017-11-29 |
EP3028182B8 EP3028182B8 (de) | 2018-02-21 |
Family
ID=51298729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP14748164.2A Active EP3028182B8 (de) | 2013-08-01 | 2014-07-31 | Verfahren und system zur synchronisation von daten |
Country Status (5)
Country | Link |
---|---|
US (1) | US10402422B2 (de) |
EP (1) | EP3028182B8 (de) |
CN (1) | CN105659226B (de) |
DE (1) | DE102013108306A1 (de) |
WO (1) | WO2015014955A1 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11461739B2 (en) * | 2020-02-18 | 2022-10-04 | CalendarBridge Inc | Privacy-sensitive, multi-calendar synchronization |
CN114840393B (zh) * | 2022-06-29 | 2022-09-30 | 杭州比智科技有限公司 | 一种多数据源数据同步监控方法及系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5392390A (en) * | 1992-04-10 | 1995-02-21 | Intellilink Corp. | Method for mapping, translating, and dynamically reconciling data between disparate computer platforms |
US7490112B1 (en) * | 1997-04-15 | 2009-02-10 | Intellisync Corporation | System and methods for synchronizing information among disparate datasets |
US7359926B1 (en) * | 2003-02-13 | 2008-04-15 | Stampede, Technologies, Inc. | System for optimization of database replication/synchronization |
US7904340B2 (en) * | 2003-03-24 | 2011-03-08 | Siebel Systems, Inc. | Methods and computer-readable medium for defining a product model |
US7693888B2 (en) * | 2005-05-10 | 2010-04-06 | Siemens Communications, Inc. | Data synchronizer with failover facility |
US7565365B2 (en) * | 2005-08-31 | 2009-07-21 | Sap Ag | Object storage and synchronization hooks for occasionally-connected devices |
EP2005330A1 (de) * | 2006-04-07 | 2008-12-24 | Mag Productions Holding B.V. | Verfahren und system zur synchronisation von datenbanken |
US8694972B2 (en) * | 2006-11-10 | 2014-04-08 | The Mathworks, Inc. | System and method for interoperating with foreign objects from a single language computing environment |
CN101043641B (zh) * | 2007-03-07 | 2011-11-30 | 中兴通讯股份有限公司 | 一种rnc间mbms数据同步方法及系统 |
US8078749B2 (en) * | 2008-01-30 | 2011-12-13 | Microsoft Corporation | Synchronization of multidimensional data in a multimaster synchronization environment with prediction |
US8209437B2 (en) * | 2008-09-25 | 2012-06-26 | Rockliffe Systems, Inc. | Personal information management data synchronization |
WO2010046734A1 (en) * | 2008-10-21 | 2010-04-29 | Accenture Global Services Gmbh | Model transformation unit |
CN102054035B (zh) * | 2010-12-29 | 2013-01-02 | 北京播思软件技术有限公司 | 一种基于数据范围的数据库数据同步方法 |
CN103136231B (zh) * | 2011-11-25 | 2016-03-02 | 中国移动通信集团江苏有限公司 | 一种异构数据库间的数据同步方法及系统 |
CN103051729A (zh) * | 2013-01-14 | 2013-04-17 | 南京轨道交通系统工程有限公司 | 一种异构数据同步实现方法 |
-
2013
- 2013-08-01 DE DE102013108306.4A patent/DE102013108306A1/de not_active Ceased
-
2014
- 2014-07-31 WO PCT/EP2014/066531 patent/WO2015014955A1/de active Application Filing
- 2014-07-31 CN CN201480043611.2A patent/CN105659226B/zh not_active Expired - Fee Related
- 2014-07-31 EP EP14748164.2A patent/EP3028182B8/de active Active
-
2016
- 2016-01-29 US US15/010,893 patent/US10402422B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10402422B2 (en) | 2019-09-03 |
DE102013108306A1 (de) | 2015-02-05 |
EP3028182A1 (de) | 2016-06-08 |
US20160147857A1 (en) | 2016-05-26 |
CN105659226B (zh) | 2019-05-31 |
WO2015014955A1 (de) | 2015-02-05 |
EP3028182B8 (de) | 2018-02-21 |
CN105659226A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112011102242T5 (de) | Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit | |
EP3480672B1 (de) | Verfahren zum erkennen und anzeigen von operator-zugriffen auf prozessobjekte sowie operator-system | |
EP2648094B1 (de) | Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses | |
EP2466406B1 (de) | Verfahren zur automatischen Erzeugung von Dynamic Frame Packgruppen | |
EP3028182B1 (de) | Verfahren und system zur synchronisation von daten | |
DE102011107646A1 (de) | Verfahren und System zur dynamischen Verteilung von Programmfunktionen in verteilten Steuerungssystemen | |
EP1638028A2 (de) | Rechnergestützte Erzeugung und Änderungsmanagement für Bedienoberflächen | |
DE102014117431A1 (de) | Simulationsvorrichtung, Simulationsverfahren und Programm | |
EP1437655A2 (de) | Rechner- und/oder Software-Architektur unter Verwendung von Micro-Kernel- und Multi-Tier-Konzept mit Komponententechnik | |
EP3396919A1 (de) | Verfahren zur datenübertragung von einem gerät an ein datenverwaltungsmittel, vermittlungseinheit, gerät und system | |
EP3796161A1 (de) | Verfahren zur bestimmung einer container-konfiguration eines systems, system, computerprogramm und computerlesbares medium | |
DE102007049958A1 (de) | Verfahren und System zur Aktualisierung einer mehrschichtigen Applikation | |
EP0825525B1 (de) | Verfahren zur Unterstützung des Erzeugens eines Objektes | |
DE102021200191B3 (de) | Verfahren zum Verarbeiten von Konfigurations-Daten einer Vielzahl von Entitäten, damit zusammenwirkende Verfahren und Vorrichtungen sowie Computerprogrammprodukt und Signalfolge | |
DE102004023634B4 (de) | Verfahren zur Vollständigkeits- und Konsistenzprüfung einer Informationsbibliothek | |
EP3800864B1 (de) | Verfahren zum konfigurieren eines opc ua pubsub teilnehmers, automatisierungssystem, computerprogramm und computerlesbares medium | |
EP3432139B1 (de) | Computerimplementiertes verfahren zum generieren von computerprogrammcode | |
DE102013108309A1 (de) | Verfahren zum Konnektieren von Objekten in einer Softwareanwendung | |
EP3374891B1 (de) | Verfahren zur entwicklung einer baugruppe, die mindestens eine mechatronische komponente aufweist, und eine entsprechende anordnung | |
EP3764298A1 (de) | Verfahren zur änderungskonfiguration einer produktionsanlage und/oder eines produkts und verfahren zur herstellung eines produkts, sowie konfigurationsvorrichtung und system | |
AT16972U1 (de) | ||
EP3163444B1 (de) | Rechnerverbund mit automatisierter anforderung und zuordnung von cloud-ressourcen | |
EP2518644A1 (de) | Verfahren zur Steuerung der Übersetzung von vorgegebenen Regeln und/oder eingehenden Daten eines Datenstroms | |
DE102006037968B4 (de) | Universelle und erweiterbare Datenverwaltung mit Beobachtungs- und Interprozesskommunikations-Mechanismen | |
WO2014146686A1 (de) | Werkzeug und verfahren zur simulation einer technischen anlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20160301 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAX | Request for extension of the european patent (deleted) | ||
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
INTG | Intention to grant announced |
Effective date: 20170623 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 951013 Country of ref document: AT Kind code of ref document: T Effective date: 20171215 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D Free format text: LANGUAGE OF EP DOCUMENT: GERMAN |
|
RAP2 | Party data changed (patent owner data changed or rights of a patent transferred) |
Owner name: OMS SOFTWARE GMBH |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 502014006416 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R082 Ref document number: 502014006416 Country of ref document: DE Representative=s name: 2S-IP SCHRAMM SCHNEIDER BERTAGNOLL PATENT- UND, DE Ref country code: DE Ref legal event code: R081 Ref document number: 502014006416 Country of ref document: DE Owner name: OMS SOFTWARE GMBH, DE Free format text: FORMER OWNER: OMS SOFTWARE GMBH, 81241 MUENCHEN, DE |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20171129 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180228 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180228 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180301 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 5 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 502014006416 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20180830 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Ref document number: 502014006416 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: G06F0017300000 Ipc: G06F0016000000 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20180731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MM4A |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20190724 Year of fee payment: 6 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20171129 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20140731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20171129 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180329 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MM01 Ref document number: 951013 Country of ref document: AT Kind code of ref document: T Effective date: 20190731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200731 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240719 Year of fee payment: 11 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20240723 Year of fee payment: 11 |