bakalářská práce

Klientská aplikace pro jazykový server Apache Camel

Text práce 1.86 MB Příloha 2.62 MB

Autor práce: Bc. Filip Pospíšil

Ak. rok: 2022/2023

Vedoucí: Ing. Ondřej Vašíček

Oponent: Ing. Jan Fiedor, Ph.D.

Abstrakt:

Předmětem této bakalářské práce je návrh a implementace zásuvného modulu poskytujícího jazykovou podporu pro Apache Camel v integrovaném vývojovém prostředí Apache NetBeans. Cílem práce je umožnit integraci jazykového klienta pro integrované vývojové prostředí Apache NetBeans. Klient ke své funkci využívá již existující jazykový server pro Apache Camel vytvořený společností Red Hat. Práce poskytuje základní úvod k jazykovému protokolu Microsoft Language Protocol, rámci Apache Camel a integrovanému vývojovému prostředí Apache NetBeans. Dále je popsán návrh, implementace a testování vytvořeného jazykového klienta. Výsledkem této práce je zásuvný modul poskytující komplexní jazykovou podporu pro rámec Apache Camel ve vývojovém prostředí Apache NetBeans. Zásuvný modul bude v budoucnu zveřejněn v repozitáři zásuvných modulů Apache NetBeans Plugin Portal.

Klíčová slova:

Apache Camel, Apache NetBeans, JSON-RPC, Language Server Protocol, LSP

Termín obhajoby

13.06.2023

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaCznamka

Klasifikace

C

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázku oponenta. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědi studenta na dotaz oponenta rozhodla práci hodnotit stupněm dobře / C.

Otázky k obhajobě

  1. U Apache NetBeans issue #5822, kde navrhujete úpravy LSP modulu v Apache NetBeans umožňující předávání konfigurace při inicializaci, je komentář ilustrující předání konfigurace bez nutnosti změn v LSP modulu. Můžete diskutovat, proč jste nepoužil tento přístup?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (IT-BC-3)

Studijní obor

Informační technologie (BIT)

Složení komise

doc. Ing. Vladimír Janoušek, Ph.D. (předseda)
doc. Ing. Lukáš Burget, Ph.D. (člen)
prof. Ing. Jan M. Honzík, CSc. (člen)
Ing. Vojtěch Mrázek, Ph.D. (člen)
Ing. Radek Kočí, Ph.D. (člen)

Posudek vedoucího
Ing. Ondřej Vašíček

S aktivitou studenta v průběhu semestru jsem byl spokojen.


Výsledek práce splnil očekávání a předpokládá se jeho praktické využití po zveřejnění v marketplace vývojového prostředí. 

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Práce byla zadána a technicky vedena firmou RedHat. Jejím předmětem byl návrh a implementace jazykového klienta pro Apache Camel do vývojového prostředí Apache NetBeans. Náročnost implementace samotné funkcionality klienta považuji za spíše jednodušší. To ale na druhou stranu vyvažují komplikace, které přináší integrace klienta do vývojového prostředí (např. zastaralá dokumentace ze strany IDE). Celkově tedy náročnost hodnotím jako průměrnou. Zadání bylo splněno. Technický vedoucí z firmy RedHat je s výsledkem práce také spokojen.

Práce s literaturou

Student si relevantní zdroje informací hledal sám a nebo ve spolupráci s technickým vedoucím. 

Aktivita během řešení, konzultace, komunikace

Student se práci věnoval v průběhu celého semestru, účastnil se pravidelných schůzek a dodržoval domluvené termíny. 

Aktivita při dokončování

Práce byla dokončována v dostatečném předstihu. V průběhu sepisování jsem měl možnost pročíst několik pracovních verzí a poskytnout zpětnou vazbu, kterou se student snažil zapracovat.

Publikační činnost, ocenění

Výsledek práce je v plánu zveřejnit v marketplace vývojového prostředí. Zveřejnění aktuálně brání nedostatky na straně vývojového prostředí (tedy problémy mimo kontrolu studenta).

Výsledný počet bodů navržený vedoucím: 80

Známka navržená vedoucím: B

Posudek oponenta
Ing. Jan Fiedor, Ph.D.

Jde o průměrně obtížné zadání, které bylo splněno. Technická zpráva je slušná po jazykové i typografické stránce, obsahově zahrnuje vše potřebné, ovšem forma podání obsahu není vůbec ideální. Více než technickou zprávu spíše připomíná slovník pojmů sloučený s vývojovým manuálem s minimem vysvětlených souvislostí mezi pojmy a cíli práce. Pochopení práce je tedy pro čtenáře značně obtížné.


Implementace je plně funkční a řádně otestována. Mírnou nevýhodou je nutnost restartu prostředí Apache NetBeans při změně konfigurace klienta.


Celkově bych tedy tuto práci označil za průměrnou a navrhuji hodnocení C.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: průměrně obtížné zadání

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno

Všechny body zadání byly splněny.

Rozsah technické zprávy

Stupeň hodnocení: je v obvyklém rozmezí

Prezentační úroveň technické zprávy

Hodnotit prezentační úroveň technické zprávy je obtížné. Obsahově zahrnuje zpráva všechny potřebné informace, logické členění a návaznost kapitol je také v pořádku. Kapitoly popisující související techologie mají ovšem formu blízkou slovníku pojmů než že by popisovaly a diskutovaly tyto technologie. Kapitoly věnované implementaci by zase šly označit jako vývojové manuály než o nich mluvit jako o technickém textu.

Hlavním problémem tohoto přístupu je absence vysvětlení souvislostí mezi jednotlivými technologiemi a jejich návaznost a důležitost pro řešení práce. Práce je takto mnohem náročnější na pochopení čtenářem, protože si musí řadu souvislostí vydedukovat sám, aby mu text začal dávat smysl.

65
Formální úprava technické zprávy

Práce je psána v češtině s minimem chyb a překlepů. Po typografické stránce je práce na slušné úrovni.

75
Práce s literaturou

Práce je primárně implementačního charakteru, takže převážná většina citovaných zdrojů jsou online manuály souvisejících a použitých technologií. Všechny zdroje jsou řádně odcitovány.

75
Realizační výstup

Cílem práce bylo vytvořit LSP klienta pro Apache Camel ve formě zásuvného modulu pro nástroj Apache NetBeans. Implementované řešení je plně funkční a bylo otestováno na sadě uživatelských scénářů.

Samotná implementace klienta nebyla nikterak náročná, jelikož bylo možné využit existující knihovnu LSP4J poskytující většinu potřebné funkcionality. Během vývoje byly ovšem zjištěny nedostatky LSP modulu Apache NetBeans a bylo potřeba navrhnout úpravy tohoto modulu, aby bylo možné LSP klienta úspěšně implementovat.

75
Využitelnost výsledků

Jde o zadání vypsané ve spolupráci s firmou Red Hat a předpokládá se tedy využití vytvořeného modulu firmou Red Hat, případně komunitou uživatelů Apache NetBeans.

Otázky k obhajobě:
  1. U Apache NetBeans issue #5822, kde navrhujete úpravy LSP modulu v Apache NetBeans umožňující předávání konfigurace při inicializaci, je komentář ilustrující předání konfigurace bez nutnosti změn v LSP modulu. Můžete diskutovat, proč jste nepoužil tento přístup?
Výsledný počet bodů navržený oponentem: 72

Známka navržená oponentem: C

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová