Analyzing Data Lineage in Database Frameworks
Analýza datových toků ve databázových systémech
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/110206Identifikátory
SIS: 206786
Kolekce
- Kvalifikační práce [10690]
Autor
Vedoucí práce
Oponent práce
Hnětynka, Petr
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Umělá inteligence
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
16. 9. 2019
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Dobře
Klíčová slova (česky)
dátové toky, statická analýza programu, Java frameworkyKlíčová slova (anglicky)
data lineage, data flow visualization, static program analysis, Java frameworksInformačné systémy často vo svojej implementácií využívajú už existujúce frameworky a knižnice. Dôležitou vlastnosťou takýchto systémov sú ich dátové toky. Dáta sú načítané zo zdrojového systému (napríklad databáze), pokračujú cez aplikačný kód a zapísané sú do ďalšieho, cieľového systému. Ako súčasť práce sme implementovali nástroj Java Resolver schopný získavať dátové toky Java aplikácií. Program využíva existujúcu knižnicu Symbolic analysis library, ktorá je shopná počítať dátové toky jednoduchých Java aplikácií. Ako zdrojové a cieľové systémy však knižnica rozpoznáva iba JDBC a I/O API. V našom riešení sme navrhli zmenu architektúry knižnice, aby bola jednoducho rozšíriteľná pomocou pluginov, ktoré môžu pridať podporu pre nové frameworky. Tieto pluginy sme implementovali pre niekoľko frameworkov (Spring JDBC, MyBatis a Kafka). Naše testy ukazujú, že tento prístup môže byť v praxi využiteľný. 1
Large information systems are typically implemented using frameworks and libraries. An important property of such systems is data lineage - the flow of data loaded from one system (e.g. database), through the program code, and back to another system. We implemented the Java Resolver tool for data lineage analysis of Java programs based on the Symbolic analysis library for computing data lineage of simple Java applications. The library supports only JDBC and I/O APIs to identify the sources and sinks of data flow. We proposed some archi- tecture changes to the library to make easily extensible by plugins that can add support for new data processing frameworks. We implemented such plugins for few frameworks with different approach for accessing the data, including Spring JDBC, MyBatis and Kafka. Our tests show that this approach works and can be usable in practice. 1