Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-14391
Autor(en): Spaney, Patrick
Titel: Implementing an enumerative semantic differencing operator for OPC UA
Erscheinungsdatum: 2022
Dokumentart: Abschlussarbeit (Master)
Seiten: xv, 63
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-144108
http://elib.uni-stuttgart.de/handle/11682/14410
http://dx.doi.org/10.18419/opus-14391
Zusammenfassung: The OPC Unified Architecture (OPC UA) is a widely adopted set of communication standards for industrial automation that provides its own extensible data model. To understand the evolution of models over time and the differences between model versions, differencing is an essential tool. Differencing is commonly done syntactically, e.g., consisting of add and delete operations for model elements that transform one version into the other. In contrast to the usual syntactic approach, differencing can also be done on a semantic level by providing a model or an enumeration of instances, so-called witnesses, that can be derived from one model but not from another. OPC UA’s semantics, i.e., the rules for instantiation of its types, are rather complicated. This can make the precise semantic differences between model versions difficult to see. Furthermore, OPC UA information models may often be designed by domain experts of various engineering disciplines with little prior modeling experience. To tackle this problem, we introduce uadiff, an enumerative semantic differencing operator for OPC UA models. Moreover, uadiff uses a complete interpretation, i.e., references are only present on instances if they are present in the type definition. We aim to simplify comparisons of model versions and thus model development, reduce redundant models and through our stricter instantiation rules improve the overall model quality. To our knowledge, no semantic differencing operator exists for OPC UA models. However, such operators have been described and implemented for other modeling languages, such as UML class diagrams (CDs). We present an ATL transformation from OPC UA to CD, which, in composition with a slightly modified CD semantic differencing operator, forms uadiff. The combination of these components lets uadiff preserve many semantic intricacies that are not present in UML. The uadiff operator is implemented as a Java demonstrator application executing the transformation and applying the modified CD differencing solution to the results. We demonstrate the operator and its implementation with a simple example and evaluate the performance on models relevant in practice. We conclude the thesis with a discussion on the applicability and limitations of our approach, as well as an outlook on possible future research.
Die OPC Unified Architecture (OPC UA) ist eine verbreitete Sammlung von Kommunikationsstandards für industrielle Automatisierung, welche ihr eigenes erweiterbares Datenmodell bereitstellt. Differencing ist ein essentielles Werkzeug um die zeitliche Evolution von Modellen nachzuvollziehen. Gewöhnlich handelt es sich um syntaktisches Differencing, welches beispielsweise aus add und delete Operationen besteht, die eine Version des Modells in die andere überführen. Im Gegensatz zum üblichen syntaktischen Ansatz kann Differencing auch auf semantischer Ebene betrieben werden, indem man ein Modell oder eine Aufzählung der Instanzen erzeugt, welche aus einem Modell instanziiert werden können, nicht aber aus dem anderen. OPC UAs Semantik, also die Regeln für die Instanziierung der Typen, sind verhältnismäßig kompliziert. Dadurch kann es schwierig sein die exakte semantische Differenz zwischen zwei Versionen eine Modells zu erkennen. Darüber hinaus kommt es vor, dass OPC UA Informationsmodelle von Domänenexperten anderer Ingenieursdisziplinen erstellt werden, welche wenig Erfahrung mit Modellierung haben. Um dieses Problem anzugehen stellen wir uadiff vor, einen enumerativen semantic Differencing Operator für OPC UA Modelle. Darüber hinaus nutzt uadiff eine vollständige Interpretation von OPC UA Modellen, d.h. Referenzen von Instanzen sind nur dann vorhanden, wenn der jeweilige Typ diese auch definiert. Wir streben damit an, Vergleiche verschiedener Versionen von Modellen zu vereinfachen sowie eine Reduktion redundanter Modelle und eine allgemeine Verbesserung der Qualität von OPC UA Modellen zu erreichen. Unserem besten Wissen nach existiert bislang kein semantic Differencing Operator für OPC UA Modelle. Jedoch wurden solche Operatoren für andere Modellierungssprachen beschrieben und implementiert, so z.B. für UML Klassendiagramme (CDs). Wir stellen eine ATL Transformation vor, welche zusammen mit einem leicht modifizierten Differencing Operator für CDs uadiff bildet. Die Kombination beider Komponenten erlaubt es uadiff, viele semantische Feinheiten der OPC UA beizubehalten, welche so nicht in UML vorkommen. Der uadiff Operator wird als eine Java Demonstrator-Anwendung implementiert, welche die Transformation ausführt und die modifizierte OPC UA Differencing Lösung auf die Ergebnisse anwendet. Wir führen eine Demonstration des Operators und seiner Implementierung an einem einfachen Beispiel durch und evaluieren die Performanz für praxisrelevante Modelle. Abschließend erörtern wir die praktische Anwendbarkeit sowie die Einschränkungen unseres Ansatzes und geben einen Ausblick auf mögliche zukünftige Forschung.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
MA_Spaney.pdf908,07 kBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.