Ji, X. (2011). MDA support for constraint checking framework in EJB [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-45495
dedisys; mda; uml; ocl; code generator; ocl to java; ocl to stored routines; ocl to stored functions; constraints; constraint checking
de
dedisys; mda; uml; ocl; code generator; ocl to java; ocl to stored routines; ocl to stored functions; constraints; constraint checking
en
Abstract:
In den heutigen Systemen ist der Quellcode für Bedingungsüberprüfung (Constraint) oft mit anderen Quelltexten vermischt (z.B. mit dem Code der Geschäftslogik). Der Ansatz mit expliziten Constraint-Klassen ist hingegen flexibler. Metadata werden eingesetzt um diese Constraint-Klassen zu managen und für Applikationen unterschiedlicher Zwecken anzupassen. Im Rahmen dieser Diplomarbeit wird ein Code-Generator erforscht und implementiert, um MDA-Unterstützung (Model Driven Architecture) für ein Software-Toolkit, das auf EJB (Enterprise Java Bean) und explizite Integritätsbedingungen basiert, anzubieten. Dieser Code-Generator unterstützt den Trade-off-Ansatz zwischen Verfügbarkeit und Konsistenz, nach dem im Rahmen des europäischen Forschungsprojekts DeDiSys geforscht wird. Infolgedessen unterstützt das Tool, dass während dieser Diplomarbeit entwickelt wurde, Metadata-Spezifikation für Constraints mit der Möglichkeit EJB-Quelltexte, explizite Constraint-Klassen und Metadata-Konfigurations-Informationen zu erzeugen.<br />Die Evaluierungsergebnissen zeigen, dass das generierte Code vom neuen implementierten Codegenerator hilfreich ist, aber weitere Erweiterungen, wie zum Beispiel Performanceverbesserung für das generierte Code, nötig sind um ein Codegenerator in ein Produktionssystem unbesorgt einsetzen zu können. Die generierte Constraints während der Evaluierungsphase waren direkt anwendbar ohne jegliche Änderungen, insbesondere jene Constraints mit einfachen Bedingungsanweisungen. Jedoch, wenn in Bedingungsanweisungen Schleifen oder komplexe Datentypen verwendet wurden, war der generierte Code zu langsam bei einer immer weiter steigenden Menge von eingefügten Objekten. Die Evaluierung zeigt, dass eine manuelle Optimierung nötig war um die Effizienz zu erhöhen. Eine weitere Möglichkeit ist andere Transformationssprachen zu verwenden wie zum Beispiel SQL, das vom implementierten "OCL-to-stored routines"-Transformer unterstützt wird. Der erreichte Effekt war, dass die Evaluierungsdauer linear mit der Anzahl der eingefügten Objekte stieg oder auf ein Maximum für jede einzelne Constraint-Validation begrenzt werden konnte.<br />
de
In today's systems, the code for constraint checking is often tangled with other code (e.g. the code for the business logic). However, the approach with explicit constraint classes is more flexible. Metadata can be used to manage and to customize these constraint classes on applications with different purposes. In this diploma thesis, a code generator is investigated and implemented that provides MDA (Model Driven Architecture) support for a software development toolkit building upon EJB (Enterprise Java Bean) and explicit integrity constraints. This code generator supports the trade-off between availability and consistency as investigated by the European research project DeDiSys.<br />Consequently, the tool produced within this diploma thesis supports metadata specification for constraints along with the ability to generate EJB source code, explicit constraint checking classes and metadata deployment information.<br />The evaluation results illustrate that the generated code of the new build code generator is helpful, but many enhancements such as performance improvement of the generated code are necessary to use the code generator in a production system without worrying. The generated constraints during the evaluation phase were ready-to-use without any changes, particularly the constraints with simple condition statements.<br />However, when condition statements used loops or complex data types, the generated code was too slow with the increasing number of added objects.<br />The evaluation shows that manual optimization was necessary to increase the efficiency. Another possibility is using other transformation languages such as SQL that is supported by the implemented OCL-to-stored-routines transformer. The reached effect was that the evaluation duration increased linearly with the number of added objects or could be limited to a maximum for each constraint validation.