Popis tématu

Diplomová práce v oboru Softwarové inženýrství.

Rekonstrukce API volaných webových služeb

lang:en Reconstruction of outgoing web service APIs

Cílem práce je vytvořit experimentální nástroj pro získání API (rozhraní) webových služeb, které implementace nějakého sw systému volá. Motivací je snaha získat kompletní "dependency graph" systému založeného na architektuře mikroslužeb, přičemž získání popisu API webových služeb jednotlivými "komponentami" poskytovaných již umíme [1,2] pro platformu Java.

Bude žádoucí použít stejný přístup jako v práci [1] tj. reverse engineering implementace s analýzou zdrojových kódů a/nebo bytecode a vyhledáváním typických programových konstrukcí odpovídajících použití konkrétní technologie pro implementaci WS klienta. Dále bude potřeba využít již existující doménový model pro persistentní podobu získaného popisu WS API. Primárně chceme analyzovat Java implementace, ale zaměření na jiné jazyky/platformy (node.js, .NET, python, ...) je určitě možné alespoň prodiskutovat.

[1] http://www.kiv.zcu.cz/cz/pro-studenty/temata-projektu/temata-projektu-detail.html?tema_id=3788
[2] http://www.kiv.zcu.cz/cz/pro-studenty/temata-projektu/temata-projektu-detail.html?tema_id=3168


Body zadání:

1. Seznamte se s typy webových služeb a způsoby implementace jejich klientské a servisní části. Vyhledejte a analyzujte nejpoužívanější technologie v jazyce Java pro vytváření klientů webových služeb.
2. Prostudujte metody a nástroje pro analýzu již existujících implementací softwarových modulů. Seznamte se s účelem úložiště CRCE a jím používanou reprezentací rozhraní softwarových komponent a služeb.
3. Navrhněte algoritmus pro získání informací o volaném ("required") rozhraní webových služeb pro nejběžnější případy užití technologií vybraných na základě bodu 1.
4. Implementujte rozšíření CRCE pro získání vhodné formy reprezentace rozhraní těchto vyžadovaných webových služeb a pro její uložení ve strojově čitelné podobě.
5. Ověřte funkčnost navrženého řešení vč. použití reálných implementací webových služeb jako testovacích dat.

Literatura:

* Brada, Premek, and Kamil Jezek. "Repository and meta-data design for efficient component consistency verification." Science of Computer Programming 97 (2015): 349-365.
* Dietrich, Jens, David J. Pearce, Kamil Jezek, and Premek Brada. "Contracts in the wild: A study of java programs." In 31st European Conference on Object-Oriented Programming (ECOOP 2017). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2017.
* další položky dodá vedoucí práce

Téma vypsal: Doc. Ing. Přemysl Brada, MSc., Ph.D. (UC 354)

Vypsáno pro akademický rok 2020/2021 dne: 2018-04-17

Zadáno komu: Tomáš Ballák (Zadané)

Aktualizováno 0