Extending Data Lineage Analysis Platform with Support for Dependency Injection Frameworks
Rozšíření platformy pro analýzu datových toků o podporu knihoven na vkládání závislostí
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/127818Identifikátory
SIS: 230748
Kolekce
- Kvalifikační práce [11993]
Autor
Vedoucí práce
Oponent práce
Hnětynka, Petr
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové a datové inženýrství
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
29. 6. 2021
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
vkládání závislostí|graf volání|Spring Framework|statická analýza|datové tokyKlíčová slova (anglicky)
data lineage|dependency injection|call graph|Spring Framework|static analysisDatové toky tvoří důležitý aspekt dnešního podnikového prostředí. MANTA Flow je platforma pro analýzu datových toků, která již má základní podporu pro analýzu Java programů poskytovanou jednou z jejích komponent zvaných Bytecode Scanner. Přesto je v dnešním podnikovém prostředí jen velmi málo aplikací, které nepoužívají vkládání závis- lostí alespoň ve velmi omezené míře. Proto představujeme rozšíření komponenty Bytecode Scanner v platformě MANTA Flow, abychom také umožnili automatickou analýzu da- tových toků v aplikacích, které využívají vkládání závislostí. Rozšíření dokáže zpracovat i složité definice standardních kontejnerů pro vkládání závislostí. Vzhledem k tomu, že vkládání závislostí ovlivňuje výběr cílů volání metody, popisujeme také strukturu grafu volání a jeho modifikace pro podporu vkládání závislostí. Nakonec použijeme tuto infras- trukturu k návrhu a implementaci pluginu do komponenty Bytecode Scanner pro Spring Framework, populární knihovnu pro vkládání závislostí pro platformu Java. Plugin byl úspěšně testován na malém, ale realistickém softwarovém systému, který umí číst data ze souboru, transformovat je a zapisovat do databáze. 1
Data lineage forms an important aspect of today's enterprise environment. MANTA Flow is a data lineage analysis platform that already has basic support for analysis of Java programs, provided by one of its components called Bytecode Scanner. Neverthe- less, there are very few applications in today's enterprise environment that do not use dependency injection at least in a very limited way. Therefore, we present an extension of Bytecode Scanner in the MANTA Flow platform to support data lineage analysis of dependency injection frameworks as well. The extension is able to process even complex definitions of standard dependency injection containers. Since the dependency injec- tion influences a selection of method call targets, we also provide a description of call graph structure and its modification to support dependency injection. Last, we use this infrastructure to design and implement a plugin into Bytecode Scanner for the Spring Framework, a popular dependency injection framework targeting Java Platform. The plugin has been successfully tested on a small but realistic software system that can read data from a file, transform them, and write them into a database. 1
