Popis tématu

Oborový projekt v oboru Softwarové inženýrství.

Architectural refactoring pro experimentální úložiště CRCE

*WARNING* Téma pro makáče (jednoho až tři), kteří chtějí "real challenge" :-)

Projekt CRCE [1] zahrnuje analýzu softwarových komponent a služeb a ukládání výsledků v takové podobě, která umožňuje jejich využití pro ověřování kompatibility mezi klienty a poskytovateli služeb. Technologicky jde o modulární aplikaci v Javě, využívající např. OSGi a MongoDB, sestavovanou nástrojem Maven.

Stávající implementace trpí nadměrnou složitostí (30+ Maven modules) a koncepčním nesouladem Maven a OSGi technologií. Výsledkem je, že až příliš často dochází k problémům při sestavení (build) a/nebo spuštění, typicky kvůli problematickým závislostem, a dohledat "root cause" není většinou moc jednoduché. Vzhledem k účelu CRCE -- být experimentálním úložištěm pro podporu našich výzkumných aktivit -- se tyto potíže časem zhoršují s tím, jak vznikají potřeby nových funkcionalit.

Cílem tohoto projektu je tedy podívat se na architekturu CRCE, pokusit se ji "rozbít" do větších oddělitelných subsystémů, a překopat implementaci (vč. procesu sestavení) do takové podoby, která stávající build/dependency hell odstraní a umožní snazší údržbu subsystémů v delším horizontu. Jednou z možných cest je použití Spring frameworku namísto OSGi, další z možných cest (nevylučují se navzájem) je rozdělení stávajícího jediného run-time do více samostatných nástrojů vzájemně integrovaných předávanými daty (uložených v databázích a/nebo předávaných v podobě souborů) nebo webovými službami, ve spojení s jiným tématem [2] se dá uvažovat i o architektuře postavené na mikroslužbách a kontejnerech.

Projekt může být pěkným zadáním na 1-3 OPSWI projekty pro spolupracující makáče, ve zmenšeném rozsahu pro KIV/SAR, přejít do pokračování na diplomky, a může být protažen přes více semestrů. Není pro "faint-hearted" a pro ty, kdo by se teprve chtěli seznámit s výše zmiňovanými technologiemi; na druhou stranu, dobrou práci lze ocenit finančně z již běžícího projektu ;-)

[1] http://relisa.kiv.zcu.cz/areas/repository-based-application-consistency.html
[2] http://www.kiv.zcu.cz/cz/pro-studenty/temata-projektu/temata-projektu-detail.html?tema_id=3933

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

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

Zadáno komu: KIV/SAR tým + Z.Valeš (dokončeno: 2019-11-30)

Aktualizováno 0