bakalářská práce

Úvod do Mainframe

Text práce 891.31 kB

Autor práce: Bc. Tomáš Najman

Ak. rok: 2024/2025

Vedoucí: Ing. Bohuslav Křena, Ph.D.

Oponent: Ing. Jan Fiedor, Ph.D.

Abstrakt:

Tato práce představuje komplexní přehled historického vývoje, současného využití i budoucích trendů Mainframe, pro zájemce o toto technologické odvětví. Poskytuje přehled hlavních aspektů mainframových systémů, se zaměřením na IBM Z Series a související technologie, včetně detailního popisu architektury, operačních systémů (zejména z/OS a z/VM) a specifických aplikačních metod, které zajišťují jejich bezkonkurenční spolehlivost, škálovatelnost a bezpečnost. Dále je věnována pozornost tradičním programovacím jazykům používaným na mainframech - COBOL, JCL a Rexx, přičemž je také představen způsob, jakým se na IBM Z Series uplatňuje Python. Součástí práce jsou také demonstrační úlohy, které slouží jako praktický nástroj pro zájemce o hlubší seznámení s funkcionalitami a možnostmi mainframových systémů.

Klíčová slova:

Mainframe, IBM Z, z/OS, COBOL, JCL, Rexx, Python, virtualizace, bezpečnost, demonstrační úlohy, transakční zpracování, historie počítačů

Termín obhajoby

19.06.2025

Výsledek obhajoby

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

znamkaAznamka

Klasifikace

A

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ázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Otázky k obhajobě

  1. V kapitole 5.8 zmiňujete jako zajímavost u příkladu CHART GENERATOR implementovaného v jazycích COBOL/JCL, že varianta s vertikálním výstupem, obsahující složitější logiku vykreslování, je stejně rychlá jako varianta s horizontálním výstupem. Stejný příklad implementovaný v jazyce Python se ovšem vyznačuje tím, že jeho varianta s vertikálním výstupem je dokonce rychlejší než varianta s horizontálním výstupem, ač má být také mnohem složitější. Máte pro to nějaké vysvětlení?
  2. U příkladu EMPLOYEESREPORT zmiňujete využití souborů JSON jako vstupů pro implementaci v jazyce Python, namísto datasetů tvořících vstupy pro implementaci v jazycích COBOL/JCL. Co je důvodem tohoto rozhodnutí a nemá tento fakt dopad na celkovou rychlost vykonávání Python varianty tohoto příkladu?
  3. V kapitole 5.1 diskutujete využití GDG pro uchovávání až 10 verzí zálohovaných dat a zmiňujete parametr SCRATCH, jenž zajišťuje fyzické odstranění nejstarších verzí při dosažení maximálního počtu uchovávaných verzí, na rozdíl od parametru NOSCRATCH. Jaké bude chování při použití parametru NOSCRATCH?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

prof. Ing. Lukáš Sekanina, Ph.D. (předseda)
Ing. Marcela Zachariášová, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)
Ing. Miloš Musil, Ph.D. (člen)
Ing. Petr Veigend, Ph.D. (člen)

Posudek vedoucího
Ing. Bohuslav Křena, Ph.D.

Spolupráce se studentem byla v průběhu celého řešení bezproblémová a výsledná práce je moc pěkná (zde si to mohu jako vedoucí dovolit napsat, protože je to především zásluha studenta a odborných konzultantů z Kyndrylu). Jenom obtížně by se mi hledalo, co podstatného by se dalo na předložené práci vylepšit.

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

Toto zadání bylo vytvořeno ve spolupráci se společností Kyndryl, za kterou řešení práce po odborné stránce konzultoval Ondřej Zmund a v závěru i Petr Drahoš Filip. Práce přináší zevrubný úvod do systémů mainframe se zaměřením na porovnání tradičního a moderního přístupu k administraci úloh. Práce obsahuje i srovnání výkonnosti obou přístupů, které podle mého soudu poskytuje cenné podněty.

Práce s literaturou

Základní studijní zdroje (včetně výukové platformy IBM Z Xplore) poskytl studentovi odborný konzultant. Stěžejní zdroje pochopitelně pochází od IBM, jakožto tvůrce IBM Z mainframů, student je nicméně doplnil celou řadou dalších zdrojů. Rozsah použité literatury je na bakalářskou práci nezvykle dlouhý, nicméně s ohledem na téma práce a hloubku jejího zpracování přiměřený.

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

Za sebe jsem byl s aktivitou studenta spokojen a podle dostupných informací byl se studentem spokojen i odborný konzultant.

Aktivita při dokončování

Technická zpráva byla dokončena v předstihu, byl tak čas nejenom technickou práci prodiskutovat a (lehce) opravit, ale také doplnit o některé další experimenty.

Publikační činnost, ocenění

Práci jsem vzhledem k pečlivě zpracované a čtivé technické zprávě navrhl na ocenění stipendiem v rámci partnerského programu fakulty.

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

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

Posudek oponenta
Ing. Jan Fiedor, Ph.D.

Celkově jde o průměrně obtížnou práci ovšem velmi kvalitně zpracovanou jak po obsahové stránce, tak po stránce realizace. Prezentační a formální stránky technické zprávy jsou trochu slabší, ale s přihlédnutím k rozsahu a informační bohatosti práce lze tyto nedostatky tolerovat.

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

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

Práce se zabývá návrhem sady příkladů pro správu systému mainframe ilustrující rozdíly mezi tradičním přístupem využívajícím jazyky jako je COBOL nebo JCL a moderním přístupem založeným na programech v jazyce Python.

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

Prezentační úroveň technické zprávy je na slušné úrovni. Práce má dobrou logickou strukturu, někdy jsou ovšem důležité pojmy vysvětleny až o 1-2 stránky později než jsou poprvé použity, což ztěžuje čtenáři pochopení diskutované problematiky. Občas se také objevuje vložený kód v textu bez patřičného uvedení, kdy není čtenáři zřejmé proč se na daném místě vůbec objevil.

V technickém textu bych se také vyvaroval výroků jako Tato ukázka je jasná i neprogramátorovi na první pohled a využití řetězce tři tečky (...) pro reprezentaci neuvedeného kusu kódu, jelikož tento řetězec, nebo podobný řetězec dvě tečky (..), se může používat jako validní část některých programů např. v jazyce COBOL.

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

Práce je psaná v češtině a po gramatické stránce je slabší. Vyskytují se problémy s interpukcí, občasné překlepy a některé věty nedávají úplně smysl. Největším problémem je ovšem označování stejného pojmu v českém i anglickém jazyce zároveň. Text místy budí dojem, že ruzné části práce psali dva různí lidé, jeden preferující pojmy psát v anglickém originálu a druhý v českém překladu. Tato nekonzistence je pro čtenáře velmi matoucí, jelikož u českých překladů musí neustále uvažovat, zda označují daný pojem nebo nikoliv. U pojmů obecnějšího významu jako člen (member) to způsobuje značné zmatení.

80
Realizační výstup

Výsledkem práce je 8 dvojic demonstračních příkladů ilustrujících rozdíly mezi tradičním a moderním přístupem pro správu systémů mainframe. Navíc byly vytvořeny 3 demonstrační ukázky JCL utilit a Python knihoven pro manipulaci s datasety a práci s joby.

Většina dvojic demonstračních příkladů byla navzájem porovnána z pohledu výkonnosti, ovšem jen s malým množstvím vstupních dat. Uvítal bych navíc evaluaci závislosti vstupních dat na časové náročnosti vykonávání uvedených příkladů.

90
Využitelnost výsledků

Během evaluace bylo zjištěno, že varianty příkladů napsaných moderním přístupem v jazyce Python běží výrazně pomaleji (10-100x) oproti variantám napsaným tradičním přístupem v jazycích JCL, COBOL, atd. Student navíc identifikoval konkrétní funkce, které k tomuto zpomalení přispívají nejvíce. Tato zjištění mají přímý vliv na využití a nasazení programů využívajících tyto operace v praxi a jsou určitě cennou informací pro společnost Kyndryl.

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

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

Zadání bylo splněno s mírným rozšířením demonstračních příkladů o 3 demonstrační ukázky JCL utilit a Python knihoven pro manipulaci s datasety a práci s joby.

Rozsah technické zprávy

Stupeň hodnocení: přesahuje obvyklé rozmezí

Práce do detailu popisuje historii systémů mainframe a tradičních nástrojů a programovacích jazyků na nich používaných. Také podrobně popisuje větší množství vytvořených demonstračních příkladů. Jelikož práce by měla sloužit k uvedení čtenáře do oblasti tradiční a moderní práce se systémy mainframe, je tato úroveň detailů (a tedy i rozsah práce) velmi vítaný. Veškterý informace diskutované v práci jsou pro čtenáře přínosné.

Práce s literaturou

Práce cituje téměř stovku zdrojů. I přesto, že velká řada zdrojů jsou manuály k jednotlivým technologiím a jiné online zdroje, práce se odkazuje i na řadu knih a odborných publikací. Všechny zdroje jsou v textu práce řádně citovány.

95
Otázky k obhajobě:
  1. V kapitole 5.1 diskutujete využití GDG pro uchovávání až 10 verzí zálohovaných dat a zmiňujete parametr SCRATCH, jenž zajišťuje fyzické odstranění nejstarších verzí při dosažení maximálního počtu uchovávaných verzí, na rozdíl od parametru NOSCRATCH. Jaké bude chování při použití parametru NOSCRATCH?
  2. V kapitole 5.8 zmiňujete jako zajímavost u příkladu CHART GENERATOR implementovaného v jazycích COBOL/JCL, že varianta s vertikálním výstupem, obsahující složitější logiku vykreslování, je stejně rychlá jako varianta s horizontálním výstupem. Stejný příklad implementovaný v jazyce Python se ovšem vyznačuje tím, že jeho varianta s vertikálním výstupem je dokonce rychlejší než varianta s horizontálním výstupem, ač má být také mnohem složitější. Máte pro to nějaké vysvětlení?
  3. U příkladu EMPLOYEESREPORT zmiňujete využití souborů JSON jako vstupů pro implementaci v jazyce Python, namísto datasetů tvořících vstupy pro implementaci v jazycích COBOL/JCL. Co je důvodem tohoto rozhodnutí a nemá tento fakt dopad na celkovou rychlost vykonávání Python varianty tohoto příkladu?
Výsledný počet bodů navržený oponentem: 88

Známka navržená oponentem: B

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