Nabídka témat bakalářských a diplomových prací společnosti

Transkript

Nabídka témat bakalářských a diplomových prací společnosti
Nabídka témat bakalářských a diplomových prací společnosti
Red Hat
(last update on August 3rd 2012)
base-os
Vylepšení vícevláknové podpory v TCL
Nástroj pro monitorování využití systému a automatické vytváření Tuned profilů
Multiplatformní podpora zoneinfo databáze pro Ruby
Nástroj pro testování knihoven pro přístup do Informačního systému datových schránek
Odlehčený modulární nástroj pro refaktoring zdrojového kódu
Podpora vícebytových znaků v základních CLI utilitách v OS GNU/Linux
Desktop
Berusky (2D logic game) – Android conversion
Tage/Skripty pro generátor terénu
Tage/Implementace triangulačního algoritmu
Tage/Optimalizace generovaného meshe (LOD)
FreeIPA
Support of DNS sites in SSSD
Extending the REST interface of Dogtag CA system
SSSD API for web applications
Password strenght checker for FreeIPA
Tool for querying SSSD database
FS_utilities
Optimalization of e2fsprogs tools for enterprise class storage
Java
Monitoring aplikací běžících v JVM pomocí JVM Tool Interface (JVMTI)
Studie frameworku Lombook
CACAO: alternativní virtuální stroj Javy
JamVM: alternativní virtuální stroj Javy
Virtuální stroj Javy JamVM na architektuře ARM
Testování výkonu Jboss AS v závislosti na použité JVM
Studie optimalizátoru bajtkódu pro JamVM
Optimalizace bajtkódu Javy s ohledem na jeho velikost
Disassembler Javovského bajtkódu
Porovnávanie API a ABI kompatibility knižníc napísaných v jazyku Java
Skriptovací jazyky na platformě Java (JSK 223)
Použití OpenGL z jazyka Java
Měření výkonnosti Java Virtual Machine
Vlastnosti a výkonnost garbage collectorů v JVM
Použití velkých stránek (huge pages) pro zvýšení výkonnosti JVM
Studie frameworku Squander
Testování výkonnosti JCF (Java Collections Framework) na víceprostorových systémech
Moderní principy testování třívrstvých enterprise aplikací
Programová zvuková syntéze v Javě – projekt Gervill
Testovací framework pro Java applety
Testovací framework pro Java Web Start
JBoss
Convert BPMN2 to canonical form
BPMN2 validator for jBPM5
Optimalization of CI grid structure using Drools Planner
Design and implement support for OSGi bundles in JBoss ESB
WS-I Basic Profile compatibility verification inside WS-enabled ESB services
Implement automatic registry federation in jUDDI
Extensible project management tooling environment (based on Maven and Maven
Archetypes)
Comparison of existing Data Grid solutions
Create a AJAX-enabled JSF component to work with chart-plotting libraries
Tolerant XML comparator
JUnit support for testing Eclipse instance
Automatic Reporting Tool for Eclipse
Performance Evaluation of Teiid Data Virtualization
Cassandra NoSQL Teiid Connector
RHQ Bundle Editor plugin for Eclipse
Alternativní podpora tranzitivního získávání závislostí pro ShrinkWrap
Library for manipulating native widgets used by SWT
Eclipse test recorder
Comparison of WSRP 2 support in current portal implementations
Java Security Policy Centralization
Groupware implementation as a set of portlets
Implement missing WS specification for Apache CXF framework
JBossWS interoperability with other WS implementations
Create ModeShape sequencers for selected multimedia formats
Create a generic tool to support fail-over testing
EJB timers in cluster and failover support for AS7
Použití Infinispan-u pro implementaci CDI kontextu
Integrace se sociálními sítěmi v Seam Social
Create AJAX-enabled JSF component for WYSIWYG editing
Implementation of WSO2 performance scenarios in SwitchYard
Design and implement Testing framework for JAAS login modules
Design and implement GUI tool for debugging HornetQ journal
Visualization and tracing of messages between Infinispan nodes
Proof of correctness for complex distributed patterns
Abstraktní model pro automatizované testování uživatelského rozhraní webových aplikací
Comparison of existing OSS BPEL engines
Design and implement grid testing system
Implement topology change updates in Infinispan Hot Rod Python client
Infinspan node control based on SLA
Side-by-side comparison of memcached to Infinispan
Communication center as a set of portlets
Jenkins CI plugin investigation
Integration of Jenkins CI with JBoss AS 7
Improvement of Delta cloud plugin for Jenkins CI
Jenkins CI plugin development in Python
Srovnání RAD platforem Seam Forge a Spring Roo
Srovnání Seam Forge a Spring Roo
KDE_&_Qt_Libraries
Usability Session Recording Tool
Parental mode in KDE
Shared board - Sdílená tabule
Nástroje pro práci s google službami v KDE
Dotykové uživatelské rozhrani
Kernel
Optimize ext4 unlink process to make recovering deleted files easier
Efficient way to allocate and read directory entries in ext4 file system
kernel-qe
Sada nástrojov pre testovanie výkonnosti súborového systému gfs2
KOffice
Collaborative editing of documents over a network + version control integration
qa
Sada testů pro vybrané open source nástroje
Měření výkonu software v GNU/Linux
Automatic static code analysis of Linux kernel
RedBot
Implementace pravidel a strategií soutěže !RedBot
RHNSatellite
Yum plugin for suggesting packages based on usage (data mining)
Analysis tool for entitlement dependencies (data mining)
Satellite_QA
Vytvoření sady testů pro Spacewalk použitelných pro IPv6 testování
Security
Analysis of entropy levels in the kernel entropy pool in virtual guests
Design and support better SCAP content development process
Verifying and improving cryptographic key security in PKCS#11 implementations
base os
Name: Vylepšení vícevláknové podpory v TCL
b/d: B
Sekce: base-os
University: VUT,MUNI
Leader: Škarvada Jaroslav, [email protected]
Text:
1. Seznamte se s projektem TCL a se současnou implementací vícevláknové podpory.
2. Navrhněte úpravy, které umožní pracovat s více vlákny a současně používat systémové volání
fork. Dbejte na zpětnou kompatibilitu navrženého řešení.
3. Spolupracujte s upstream a pokuste se vytvořené řešení dostat do upstream.
Name: Nástroj pro monitorování využití systému a automatické vytváření Tuned profilů
b/d: B
Sekce: base-os
University: VUT,MUNI
Leader: Škarvada Jaroslav, [email protected]
Text:
1. Seznamte se s problematikou správy napájení v distribuci Fedora, s projektem Tuned
(http://fedorahosted.org/tuned/) a se způsobem vytváření Tuned profilů.
2. Navrhněte nástroj, který umožní monitorovat využití systému a dle sesbíraných informací
automaticky sestaví Tuned profil, jež bude optimalizovat nastavení systému pro daný typ zátěže
(cíle optimalizace: zvýšení propustnosti, snížení příkonu).
3. Návrh implementujte.
4. Demonstrujte funkčnost řešení pomocí vhodných experimentů.
Name: Multiplatformní podpora zoneinfo databáze pro Ruby
b/d: B
Sekce: base-os
Leader: Vít Ondruch, [email protected]
Text:
The tz database, also called the zoneinfo database or IANA Time Zone Database, is a collaborative
compilation of information about the world's time zones, primarily intended for use with computer
programs and operating systems. Ruby provides this database by tzinfo gem. However, this library
relies on its own copy of zoneinfo database, instead system wide one. Goal of this thesis are:
• Explore various operating systems and their APIs to access zoneinfo data.
• Update the tzinfo gem to support operating system's API.
• Provide fallback to bundled copy of database if there is no supported API provided by
operating system.
• Collaborate with tzinfo gem upstream and provide the patches for integration.
Name: Nástroj pro testování knihoven pro přístup do Informačního systému datových schránek
b/d: B
Sekce: base-os
University: VUT,MUNI
Leader: Petr Písař, [email protected]
Text:
Informační systém datových schránek nabízí rozhraní SOAP, které implementuje několik
nezávislých knihoven. Úkolem je najít nebo vytvořit sadu nástrojů pro automatické testování shody
knihoven se specifikací rozhraní. Protože každá knihovna má jiné aplikační rozhraní a protože
specifikace se mění, je třeba poskytnout takový nástroj, v němž testy budou vyjádřeny na jednom
místě způsobem nezávislým na knihovně. Poté pro vybranou knihovnu bude napsána překladová
vrstva, která testy vykoná voláním knihovny proti simulovanému serveru.
Name: Odlehčený modulární nástroj pro refaktoring zdrojového kódu
b/d: B/D
Sekce: base-os
Leader: Jaromír Cápík, [email protected]
Text:
1. Seznamte se s běžně dostupnými nástroji pro refaktoring kódu (indent, eclipse, NetBeans, ...)
2. Navrhněte odlehčenou C/C++ aplikaci pro refaktoring kódu běžně používaných jazyků (C/C++,
python, perl, ruby, java, bash, PHP, ...) tak, že výkonný základ bude tvořit CLI aplikace, kterou
budou následně volat tři nezávislá uživatelská rozhraní využívající (n)curses, GTK+ a Qt knihovny.
Uživatelské rozhraní zde bude plnit pouze funkci přehledného zobrazení kódu, grafického nastavení
refaktoringu a bude vhodnou formou napomáhat manuálnímu hromadnému přejmenování
proměnných, funkcí, popřípadě definic preprocesoru a volitelně může barevně odlišovat konstrukce,
které jsou vhodným kandidátem na refaktoring. Aplikace by měla provádět změny konzistentně nad
všemi moduly refaktorovaného projektu (tedy s úpravou názvu proměnné v hlavičkovém souboru
by mělo dojít ke změně názvu i v modulu, kde je tento hlavičkový soubor použit).
3. Návrh implementujte.
4. Demonstrujte funkčnost řešení pomocí vhodných experimentů.
Name: Podpora vícebytových znaků v základních CLI utilitách v OS GNU/Linux
b/d: B
Sekce: base-os
University: VUT,MUNI
Leader: Ondřej Vašík, [email protected]
Text:
Prozkoumejte rozsah podpory vícebytových znaků v základních CLI utilitách používaných pro
operace s řetězci(třídění, spojování, vyhledávání, nahrazování...) pod systémem GNU/Linux. V
případě existující podpory prozkoumejte její dopad na výkonnost operace, navrhněte možnosti
optimalizace této podpory tak, aby nepostihovala vstupní data bez vícebytových znaků. U
vybraných utilit se tyto změny pokuste dostat do zdrojových kódu upstreamu.
Desktop
Name: Berusky (2D logic game) - Android conversion
b/d: D/B
Sekce: Desktop
University: VUT,MUNI
Leader: Martin Stránský, [email protected]
Text: Rewrite the Berusky game (http://anakreon.cz/en/Berusky.html) for mobile devices based on
Android. It includes redesign of game control and interface, menus and so. The target devices
would be Samsung Galaxy and similar devices.
Name: Tage/Skripty pro generátor terénu
b/d: D/B
Sekce: Desktop
University: VUT,MUNI
Leader: Martin Stránský, [email protected]
Text: Navrhněte a implementujte vlastní generátor různých druhů terénu (textura povrchu,
geometrie povrchu, osvětlení/stínování). Použijte skriptovací jazyk generátoru tage a nebo vytvořte
vlastni C++ modifikátor pro projekt TAGE - http://anakreon.cz/tage/.
Name: Tage/Implementace triangulačního algoritmu
b/d: D/B
Sekce: Desktop
University: VUT,MUNI
Leader: Martin Stránský, [email protected]
Text: Seznamte se ze současnými metodami triangulace (vytvoření minimálního 3D modelu ze
skupiny bodu v prostoru), navrhněte a implementujte vybraný algoritmus jako C++ modifikátor pro
projekt TAGE - http://anakreon.cz/tage/. Tento triangulační algoritmus bude sloužit pro generování
geometrických objektů (kamení, klacky, tráva, křoví).
Name: Tage/Optimalizace generovaneho meshe (LOD)
b/d: D/B
Sekce: Desktop
University: VUT,MUNI
Leader: Martin Stránský, [email protected]
Text: V C++ implementujte optimalizátor (LOD) pro 3D mesh modely (sítě trojúhelníku).
Implementaci proveďte jako součást exportního modulu generátoru Tage (http://anakreon.cz/tage/).
FreeIPA
Name: Support of DNS sites in SSSD
b/d: D
Sekce: FreeIPA
University: any
Leader: Jan Zelený, [email protected]; Simo Sorce, [email protected]
Text: Work up the architecture of FreeIPA and SSSD, work up how the concept of DNS sites
works in MS Active Directory, design an extensions to FreeIPA and SSSD adding DNS sites
functionality, implement the designed extensions, evaluate your implementation, its advantages and
shortcomings.
Name: Extending the REST interface of Dogtag CA system
b/d: D
Sekce: FreeIPA
University: any
Leader: Jan Zelený, [email protected]
Text: Work up the architecture of Dogtag Certificate System with focus on
authentication/authorization of admin operations, work up the REST interface of Dogtag Certificate
System, work up the functionality of client program pkiconsole, design an extension to the REST
interface which would cover functionality of pkiconsole that is not yet covered, implement and test
the designed extension, evaluate your implementation and its eventual shortcomings
Name: SSSD API for web applications
b/d: B
Sekce: FreeIPA
University: any
Leader: Jan Zelený, [email protected]
Text: Seznamte se s projektem SSSD, jeho strukturou a využitím; Nastudujte mechanismy
autentizace na webových stránkách v jazycích PHP, Python, Java a Ruby; Navrhněte a
implementujte API využívající možností SSSD ve výše uvedených jazycích; API otestujte a
porovnejte s podobnými mechanismy.
Name: Password strength checker for FreeIPA
b/d: D
Sekce: FreeIPA
University: any
Leader: Jan Zelený, [email protected]
Text: Work up architecture of FreeIPA with focus on password policies it uses, work up
possibilities of modern password checkers, design a password policy plugin for FreeIPA utilizing
functionality of modern password checkers, implement and test the plugin, evaluate your
implementation, its advantages and shortcomings
Name: Tool for querying SSSD database
b/d: B
Sekce: FreeIPA
University: any
Leader: Jan Zelený, [email protected]
Text: Work up the work with ldb database, work up the design of SSSD internal cache and data
that are already there, design a program for querying the database for all types of data that are
stored in it, implement and test your solution, evaluate your solution, its possibilities and
shortcomings
FS utilities
Name: Optimization of e2fsprogs tools for enterprise class storage
b/d: D
Sekce: FS utilities
University: VUT,VŠB,MUNI
Leader: Lukáš Czerner, [email protected]
Text: The goal of this project is to improve reliability of solution based on second, third and fourth
extended file system (ext2, ext3, ext4) especially in enterprise environment by optimizing e2fsprogs
tools. Reliability in this case represents not only the ability to recover from the critical situations,
but also the ability to recover quickly without additional costs and the ability to quickly deploy new
solutions on demand. This project is specifically aimed to optimize memory utilization on enterprise
storage which tends to grow in size and to optimize CPU utilization in certain scenarios.
Additionally IO patterns can be optimized as well to take advantage of advanced storage features
and lower the running time of the e2fsprogs tools.
• Get familiar with the e2fsprogs package, which consists of a set of utilities for creating,
checking, modifying and repairing second, third and fourth extended file system (ext2, ext3,
ext4).
• Study the implementation of utilities, mainly the algorithms for reading, storing and writing
out meta data from/to the file system.
• Test and analyze e2fsprogs utilities and informally determine the time and spatial
complexity for various situations.
• Based on the previous results propose optimizations to lower the CPU and memory
utilization of the e2fsprogs utilities. Discuss your propositions with upstream project
developers.
• Implement optimizations as came out from your results and from discussions with
developers. Test your implementation with existing and new tests and cooperate with
upstream developers of e2fsprogs to merge your changes into the main tree of the project.
• Summarize your results and present the real contribution of the changes made in this project
scope. Discuss further possible optimization.
Java
Name: Monitoring aplikací běžících v JVM pomocí JVM Tool Interface (JVMTI)
b/d: B
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte specifikaci JVM Tool Interface (JVMTI)
• Popište základní vlastnosti JVMTI a způsob jejího použití
• Vytvořte jednoduchou aplikaci s GUI, která bude sloužit pro připojení k JVM a sledování v
ní běžící aplikace
• Sledovat by se mělo zejména obsazení operační paměti haldou (heapem) a zásobníkem
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Studie frameworku Lombok
b/d: B
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte framework Lombok i způsob jeho využití současně s JVM/JRE
• Popište vlastnosti, které framework Lombok vnáší do programovacího jazyka Java
• Vytvořte jednoduchou demonstrační aplikaci, ve které budou vhodným způsobem ukázány
základní vlastnosti Lomboku
• Napište, které části aplikace bylo možné zjednodušit a vytvořit robustněji s využitím
Lomboku
• Porovnejte oba použité přístupy k tvorbě aplikací (čistá Java vs Lombok)
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje této práce
Name: CACAO: alternativní virtuální stroj Javy
b/d: B
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte základní vlastnosti alternativního virtuálního stroje Javy s názvem CACAO
• Popište nejdůležitější vlastnosti JVM CACAO
• Porovnejte klady a zápory JVM CACAO v porovnání s JVM HotSpot
• Vytvořte sadu jednoduchých výkonnostních testů (benchmarků), na nichž porovnáte
výkonnost JVM HotSpot a CACAO
• Výsledky výkonnostních testů vhodným způsobem prezentujte a okomentujte
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: JamVM: alternativní virtuální stroj Javy
b/d: B
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte základní vlastnosti alternativního virtuálního stroje Javy s názvem JamVM
• Popište vlastnosti JVM JamVM
• Porovnejte výhody a zápory JVM JamVM v porovnání s JVM HotSpot
• Vytvořte sadu jednoduchých výkonnostních testů (benchmarků), na nichž porovnáte
výkonnost JVM HotSpot a JamVM
• Výsledky výkonnostních testů vhodným způsobem prezentujte a okomentujte
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Virtuální stroj Javy JamVM na architektuře ARM
b/d: B
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte základní vlastnosti alternativního virtuálního stroje Javy s názvem JamVM
• Popište vlastnosti JVM JamVM
• Porovnejte výhody a zápory JVM JamVM v porovnání s JVM HotSpot
• Přeložte a nainstalujte JDK/JRE s podporou JamVM na libovolném zařízení s
mikroprocesorem ARM (může se jednat o notebook, tablet či smartphone)
• Vytvořte demonstrační aplikaci, která ukáže funkcionalitu JamVM na platformě ARM
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Testování výkonu JBoss AS v závislosti na použité JVM
b/d: B+D
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Cílem této práce je porovnání výkonu JBoss AS v závilosti na použité JVM a parametrech
JVM
• Seznamte se s metodikou testování výkonnosti aplikačních serverů a popište základní
parametry, které se testují
• Navrhněte sadu testů vhodných pro základní otestování výkonu JBoss AS
• Spusťte výkonnostní testy proti JBoss AS a následujícími JVM: Oracle JVM, OpenJDK,
IBM JDK, popř. i JRockit
• Výsledky výkonnostních testů vhodným způsobem prezentujte a okomentujte
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Studie optimalizátoru bajtkódu pro JamVM
b/d: B+D
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
Prostudujte základní vlastnosti alternativního virtuálního stroje Javy s názvem JamVM
Prostudujte a popište způsob interpreteru bajtkódu virtuálního stroje JamVM
Analyzujte typické vzory (sekvence instrukcí), které s bajtkódu vyskytují
Pokuste se navrhnout možnosti optimalizace bajtkódu před jeho interpretací
(pro BP postačuje jen nějaká jednoduchá optimalizace)
Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Optimalizace bajtkódu Javy s ohledem na jeho velikost
b/d: B+D
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte a popište způsob překladu Javovských programů ze zdrojových textů do
bajtkódu
• Popište základní strukturu bajtkódu použitého v JRE
• Popište vlastnosti instrukčního souboru JRE i způsob předávání operandů instrukcím
• Analyzujte typické vzory (sekvence instrukcí), které s bajtkódu vyskytují
• Pokuste se navrhnout možnosti optimalizace bajtkódu s ohledem na jeho velikost
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Disassembler Javovského bajtkódu
b/d: B+D
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte a popište způsob překladu Javovských programů ze zdrojových textů do
bajtkódu
• Popište základní strukturu bajtkódu
• Popište vlastnosti instrukčního souboru JRE i způsob předávání operandů instrukcím
• Navrhněte základní strukturu disassembleru Javovského bajtkódu
• Vytvořte jednoduchou aplikaci s GUI, která bude sloužit pro zobrazení zdrojového kódu
Javovské třídy současně s bajtkódem odpovídajícím jednotlivým programovým řádkům
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Porovnávanie API a ABI kompatibility knižníc napísaných v jazyku Java
b/d: D
Sekce: Java
University: VUT,MUNI
Leader: Stanislav Ochotnický, [email protected]
Text: Java libraries can add, remove and modify methods in their public interfaces used by other
libraries or applications. While addition of new function is rarely a problem, a change of method
signature or method removal can cause malfunctions or errors that can be hard to trigger and
diagnose. There is currently no simple way to determine effect of changing dependency to a new or
different version of the same library. Few tools exist that can already partially analyze changes
between two version of a library. Goal of the thesis would be to create a catalogue of source code
changes that affect API or ABI and then create a tool able to determine at least subset of these
changes between two versions of Java source code.
Name: Skriptovací jazyky na platformě Java (JSK 223)
b/d: B
Sekce: Java
University: VUT,MUNI
Leader: Pavel Tišnovský, [email protected]
Text: Cílem tohoto projektu je zhodnocení možností skriptovacích jazyků postavených nad JVM
• Popište přednosti a zápory použití skriptovacích jazyků na platformě Java
• Prostudujte specifikaci JSR-223 (Scripting for the Java)
• Popište základy API využívaného pro komunikaci mezi skripty a programy napsanými v
Javě
• Vytvořte demonstrační aplikaci, na které budete prezentovat možnosti komunikace mezi
skripty a Javovským programem (jako skriptovací jazyk lze vybrat například JavaScript
implementovaný enginem Rhino)
• Zhodnoťte dosažené výsledky
Name: Použití OpenGL z jazyka Java
b/d: B
Sekce: Java
University: VUT,MUNI
Leader: Pavel Tišnovský, [email protected]
Text:
Cílem tohoto projektu je zhodnocení možností použití grafické knihovny OpenGL v programech
napsaných v Javě
• Prostudujte a popište základní vlastnosti grafické knihovny OpenGL
• Popište, jakým způsobem je možné používat grafickou knihovnu OpenGL v programech
napsaných v Javě. Zaměřte se na projekt Java OpenGL (JOGL)
• Vytvořte jednoduchou aplikaci napsanou v programovacím jazyce Java, která bude
demonstrovat základní vlastnosti OpenGL při vykreslování 3D scén - hraniční popis
geometrie prostorových těles, texturování, osvětlovací model, double buffering, popř. i
stencil buffer a accumulation buffer
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Měření výkonnosti Java Virtual Machine
b/d: B
Sekce: Java
University: VUT,MUNI
Leader: Pavel Tišnovský, [email protected]
Text: Cílem tohoto projektu je zmapování vlastností nástrojů vhodných pro měření výkonnosti
různých implementací JVM i reálných možností použití těchto nástrojů.
• Prostudujte dostupné nástroje pro měření výkonnosti různých implementací JVM, zaměřte
se především na nástroje SPECjvm2008, SPECjbb2005 a Java2Dbenchmark
• Popište, které výkonnostní testy jsou v těchto nástrojích implementovány i vlastnosti JVM,
jejichž výkonnost je těmito testy měřena
• Proveďte měření výkonnostních parametrů různých JVM, především OpenJDK, Sun JDK a
IBM Java s vhodnou prezentací výsledků
• Zhodnoťte dosažené výsledky
Name: Vlastnosti a výkonnost garbage collectorů v JVM
b/d: B
Sekce: Java
University: VUT,MUNI
Leader: Pavel Tišnovský, [email protected]
Text: Cílem tohoto projektu je zhodnocení vlastností garbage collectorů implementovaných v
OpenJDK
• Prostudujte problematiku správy paměti z hlediska JVM a Javovských programů běžících
nad JVM
• Prostudujte a popište typy garbage collectorů implementovaných v OpenJDK, zaměřte se
především na nový typ garbage collectoru "G1"
• Otestujte výkonnost i paměťové nároky aplikací při použití různých typů garbage collectorů
s využitím nástroje SPECjvm2008
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje tohoto projektu
Name: Použití velkých stránek (huge pages) pro zvýšení výkonnosti JVM
b/d: B
Sekce: Java
University: VUT,MUNI
Leader: Pavel Tišnovský, [email protected]
Text: Cílem tohoto projektu je zhodnocení míry zvýšení výkonu JVM při využití velkých
paměťových stránek (huge pages)
• Prostudujte problematiku stránkování prováděného procesorem při přístupu do paměti
• Prostudujte princip velkých paměťových stránek (huge pages)
• Popište přednosti a zápory použití huge pages
• Zjistěte, jakým způsobem lze zapnout podporu huge pages v JVM
• Otestujte výkonnost i paměťové nároky Javovských aplikací při použití huge pages a naopak
při použití běžných velikostí paměťových stránek
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje tohoto projektu
Name: Studie frameworku Squander
b/d: B
Sekce: Java
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte framework Squander, který vnáší deklarativní způsob popisu algoritmů do
programovacího jazyka Java
• Popište základní principy, na nichž je Squander postaven (především z hlediska uživatele vývojáře)
• Navrhněte demonstrační příklady, v nichž budou vhodným způsobem ukázány základní
vlastnosti Squanderu
• Každý demonstrační příklad by měl být zapsán deklarativně a taktéž imperativním
způsobem
• Porovnejte oba použité přístupy k tvorbě aplikací
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje této práce
Name: Testování výkonnosti JCF (Java Collections Framework) na víceprocesorových systémech
b/d: B
Sekce: Java
Student: Husar Martin, [email protected]
University: VUT FIT
Start: podzim 2011
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte a popište hierarchii rozhraní a tříd tvořících JCF (Java Collections Framework)
• Popište a vzájemně porovnejte interní způsob reprezentace datových kolekcí ArrayList a
LinkedList
• Popište a vzájemně porovnejte interní způsob reprezentace datových kolekcí HashMap a
TreeMap
• Vytvořte vhodné zátěžové testy (benchmarky) pro měření výkonnosti datových kolekcí
implementujících rozhraní List i Map
• Benchmarky by měly otestovat i přístup do kolekcí z více vláken na systému s více
procesory (jádry)
• Porovnejte výkonnost kolekcí při explicitní synchronizaci a při použití již
synchronizovaných implementací kolekcí
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Moderní principy testování třívrstvých enterprise aplikací
b/d: D
Sekce: Java
Student: Lukáš Fryč, [email protected]
University: FI MU
Start: podzim 2011
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte a popište způsob testování business modelu enterprise aplikací. Zaměřte se
především na projekt Arquillian.
• Prostudujte metodiky používané při testování front-endu enterprise aplikací, především s
ohledem na mobilní zařízení a webové prohlížeče
• Popište způsob provádění zátěžových testů třívrstvých aplikací
• Navrhněte a popište nástroj pro testování klientského kódu naprogramovaných v jazyce
JavaScript
• Popište rozdíl mezi testováním reálného a mockovaného prostředí
• Zhodnoťte dosažené výsledky
Name: Programová zvuková syntéza v Javě - projekt Gervill
b/d: B
Sekce: Java
Student: Antolík Pavel, [email protected]
University: VUT,MUNI
Start: podzim 2011
Leader: Pavel Tišnovský, [email protected]
Text: Cílem tohoto projektu je zhodnocení možností programové zvukové syntézy
implementované v projektu Gervill
• Prostudujte a popište základní způsoby vytváření zvuků a hudby na počítačích
• Prostudujte vlastnosti zvukového syntetizéru Gervill, který je standardní součástí OpenJDK
• Vytvořte jednoduchou demonstrační aplikaci, ve které budou vhodným způsobem ukázány
základní vlastnosti zvukového syntetizéru Gervill
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Testovací framework pro Java applety
b/d: B
Sekce: Java
University: VUT FIT
Start: podzim 2012
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte a popište technologii Java appletů a porovnejte ji s podobnými konkurenčními
technologiemi
• Navrhněte testovací framework, který bude kontrolovat základní funkcionalitu Java appletů
ve vybraném prohlížeči
• Navrhněte sadu testů pro tento framework
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
Name: Testovací framework pro Java Web Start
b/d: B
Sekce: Java
University: VUT FIT
Start: podzim 2012
Leader: Pavel Tišnovský, [email protected]
Text:
• Prostudujte a popište technologii Java Web Start a porovnejte ji s podobnými
konkurenčními technologiemi
• Navrhněte testovací framework, který bude kontrolovat základní funkcionalitu Java Web
Start (kontrola JNLP atd.)
• Navrhněte sadu testů pro tento framework
• Zhodnoťte dosažené výsledky a navrhněte možnosti dalšího vývoje projektu
JBoss
Name: Convert BPMN2 to canonical form
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Lukáš Petrovický, [email protected]
Text: Goal: Implement a tool that would attempt to convert BPMN2 to a canonical format.
• Convert BPMN2 to a canonical XML.
• Get rid of BPMNDI
• Unify names of variables, nodes etc.
• Compare two canonical BPMN2 process definitions.
• Explore options for minimization of BPMN2 process definitions.
Name: BPMN2 validator for jBPM5
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Lukáš Petrovický, [email protected]
Text: Goal: Implement a tool that would validate a BPMN2 file with respect to what is supported
by jBPM5 and relevant Red Hat tooling
• First simple XSD validation
• Then validation of script tasks (whether they compile, etc.), variables...
• Basically everything that could cause a RuntimeException in jBPM5.
• Requires extensive knowledge of the engine, supported use cases and corner cases.
Name: Optimalization of CI grid structure using Drools Planner
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Lukáš Petrovický, [email protected]
Text: Goal: CI grid is a computer lab where continuous integration jobs run. Various jobs have
different requirements as for machine operating system, architecture, available memory etc.
expressed in term of machine labels. Your goal is to optimize the structure of the CI grid (structure
of labels, i.e. how many machines should have given label) based on available data on job
requirements, usage of the labels (i.e. how frequently jobs requiring given label run) and other
constraints like budget for buying new machines.
• Get familiar with Drools planner
• Propose optimal structure of the CI grid under assumption that number of machines in the
grid is arbitrary (i.e. new machines can be bought).
• Propose optimal structure of the CI grid under assumption that the number of machines in
grid is fixed (i.e. new machines cannot be bought).
• Propose optimal structure of CI grid under assumption that the budget for new machines is
limited (i.e. new machines can be added, but only limited number, as budget allows)
Name: Design and implement support for OSGi bundles in JBoss ESB
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Jiří Pechanec, [email protected]
Text: The goal of this work is to provide an OSGi support in JBossESB
The student will:
• Analyze the features of OSGi specification
• Specify the level of support of OSGi in JBossESB
• Integrate JBossESB with OSGi to support deploying of ESB actions in OSGi bundles
• Create JBossESB action to call arbitrary service form OSGi bundle
• Create at least two samples to demonstrate functionality
• Donate the code to JBossESB project or breakingwoods repository
Name: WS-I Basic Profile compatibility verification inside WS-enabled ESB services
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Jiří Pechanec, [email protected]
Text: The goal of this work is to create a tool that will automatically verify the conformance of
ESB service with WS-I specification
The student will:
• Study the contents of WS-I specifications
• Get familiar with WS-I testing kit
• Create a tool that will run WS-I testing kit agains ESB services
• Create ESB services that will server as endpoints for WS-I testing
• Create Hudson CI server job to ensure automatic execution of verification tool
Name: Implement automatic registry federation in jUDDI
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Jiří Pechanec, [email protected]
Text: The goal of this work is to extend jUDDI 3 implementation to support delegating links in
UDDI registry.
The student will:
• Study UDDI v3 specification
• Create an architecture and specification for the solution to propagate UDDI records between
registries via delegation links
• Implement the solution
• Create at least two samples to demonstrate functionality
• Donate the code to Apache jUDDI project
Name: Extensible project management tooling environment (based on Maven and Maven
Archetypes)
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Jiří Pechanec, [email protected]
Text: seam-gen is a tool to rapidly scaffold your project, and additionally provides generation of
CRUD screens. The tool started as an ant script, which has quickly grown out of control, making
adding new features hard. The next generation of seam-gen should allow:
• scaffolding a project
• generation of crud screens
• post-generation adding of features to the seam project
• targeting multiple runtimes (such as JBoss AS, Weld SE or GlassFish)
• producing screens using different view technologies (such as JSF, GWT, or Wicket)
The idea behind this project is to reuse Maven and Maven archetypes to create an extensible
framework which allows plug-ins to guide the creation and manipulation of the generated project.
To do this, a wrapper around Maven
Archetypes will need to be introduced which provides a questionnaire for the user to complete, as
well as defining the generation/manipulation lifecycle, and providing sensible callbacks.
The scope of this project is quite large, so it is recommended that you have an existing
understanding of the problem domain, as well as familiarity with Maven.
Name: Comparison of existing Data Grid solutions
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Martin Gencur, [email protected]
Text: The goal of this work is to:
• Gather and study the documentation for existing Data Grid solutions (Infinispan, Oracle
Coherence, Terracota EHCache, Gigaspaces, Hazelcast, ...)
• Create a comparison matrix to highlight weak and strong points of each product/project
• Analyze memory requirements of freely available solutions
• Measure the amount of additional memory that is required to store a unit of data payload
• Propose improvements to Infinispan project to be more competitive
Name: Create a AJAX-enabled JSF component to work with chart-plotting libraries
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Lukas Fryc, [email protected]
Text: The goal of this work is to improve or rewrite existing JSF components that interacts with
libraries for plotting charts.
• Design the component configuration and parametrization for big flexibility
• Develop the component following best practices for component development
• Create a simple demo application using the component developed
• Donate the code to RichFaces project
Name: Tolerant XML comparator
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Martin Večeřa, [email protected]
Text: The goal of this work is to design and implement a sophisticated and tolerant XML
comparator that will deal with issues like:
• different namespaces' acronyms, namespace order, and default namespace
• different form of empty tags
• different attribute order
• different string delimiters
Name: JUnit support for testing Eclipse instance
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Vlado Pakan, [email protected]
Text: Goal: Provide a better overview for JUnit execution on tested Eclipse instance
• A plug-in will provide JUnit-like view on tested Eclipse instance during SWTBot test
execution
• There can be reported some additional information related to test execution time, etc.
• The tool will allow to create specified number of screen-shot generated in selected interval
and a log output containing information preceding test failure
• The feature should be accessible via eclipse update site
Name: Automatic Reporting Tool for Eclipse
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Pavol Srna, [email protected]
Text: Goal: Automate Eclipse exceptions reporting (evaluate the integration with ABRT tool)
• The objective is to create a plug-in that will track newly occurred exceptions in the Error
Log view and can send a report to JIRA (or any other tool via appropriate connector)
• The plug-in will watch basic operation (like menu operation, button clicks etc) which could
be used as replication text for the bug report
• The feature will be accessible via eclipse update site
Name: Performance Evaluation of Teiid Data Virtualization
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Filip Nguyen, [email protected]
Text: Data operations are integral part of a development of Enterprise Information Systems. Open
Source project JBoss Teiid aims to solve data federation across heterogeneous data sources (files,
RDBMS, web services). It is very powerfull concept for any Java EE developer. Through usage of
Teiid it is possible to provide simplified and coherent view of data for higher layers of an EIS
regardless of their origin. Goal of this bachelor thesis is to compare performance of Teiid 8
deployed on JBoss AS 7 with similar tools on the market e.g. OpenLink Data Integration, Power
Center (www.informatica.com), RadiantOne. The evaluation will be performed using standard
performance measurement practices.
Name: Cassandra NoSQL Teiid Connector
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Filip Nguyen, [email protected]
Text: Data operations are integral part of a development of Enterprise Information Systems. Open
Source project JBoss Teiid aims to solve data federation across heterogeneous data sources (files,
RDBMS, web services). It is very powerfull concept for any Java EE developer. Through usage of
Teiid it is possible to provide simplified and coherent view of data for higher layers of an EIS
regardless of their origin. Goal of this diploma thesis is to create a connector that will allow usage
of Cassandra NoSQL database in at least read mode. Gathering of requirements as well as the
development itself will be driven using agile methodology, the design will use UML diagrams.
Development will be test driven. Tests will contain both unit tests and integration tests. The project
will be built using Apache Maven.
Name: RHQ Bundle Editor plugin for Eclipse
b/d: B
Sekce: JBoss
University: UP
Leader: Libor Zoubek, [email protected]
Text: Goal : Provide eclipse plugin to create and deploy RHQ bundles
• Explore RHQ bundles and RHQ remote APIs
•
Impelement eclipse plugin that will be able to create and deploy bundles to RHQ server.
•
The tool will be available via Eclipse update site
Name: Alternativní podpora tranzitivního získávání závislostí pro ShrinkWrap
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Karel Piwko, [email protected]
Text:
Zadání
• Nastudujte Ivy, Gradle nebo jiný systém získávání tranzitivních závislostí (mimo Maven)
• Srovnejte jeho možnost a složitost použití oproti Apache Maven
• Nastudujte ShrinkWrap a jeho Resolvers API
• Implementujte podporu a testy pro daný systém pro ShrinkWrap Resolvers API
• Zhodnoťte dosažené výsledky
Name: Library for manipulating native widgets used by SWT
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Jiří Peterka, [email protected]
Text: Goal: Implement missing functionality for controlling native parts used by SWT
• The API will be able to control basic operations for native GTK, Win32 and MacOS X
Cocoa controls used by SWT (like native file dialogs, message dialogs, etc.).
• It can be implemented as SWTBot contribution or as a single project providing API via
Eclipse update site
Name: Eclipse test recorder
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Libor Zoubek, [email protected]
Text: Goal : Provide working recorder implementation for Eclipse platform
• Implement a tool which allows to record operation done in Eclipse workbench as a script or
Java code and allows to play it back
• It can use SWTBot or any other appropriate API
• The tool will be available via Eclipse update site
Name: Comparison of WSRP 2 support in current portal implementations
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Michal Vančo, [email protected]
Text: The goal of this work is to
• Identify the list of open-source portal implementations (Liferay, GateIn, eXo Portal)
• Study the details of WSRP 2
• Build a comparison matrix based on WSRP 2 features
• Verify the interoperability of the different implementations
• Analyze the achieved result
Name: Java Security Policy Centralization
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Peter Škopek, [email protected]
Text: Create an application to allow edit and distribute Java Security Manager policies to number
of servers (even for Cloud based deployment scales). It will be able to refresh itself without the
need of the server restart. Design, implement and execute tests of new Java Policy Provider
implementation in terms of security functionality and performance comparing to some production
implementations available on the market (e.g. Oracle Java, IBM Java, OpenJDK).
Name: Groupware implementation as a set of portlets
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Michal Vančo, [email protected]
Text: The goal of this work is to
• Develop a set of portlets that implement groupware functionality (calendar, task list, address
book)
• Use modern technologies like RichFaces and AJAX for the portlet implementation
• Integrate the portlets with Zimbra and Google groupware
• Prepare a configured GateIn instance with pre-configured portlets to demonstrate achieved
results
Name: Implement missing WS specification for Apache CXF framework
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Rostislav Svoboda, [email protected]
Text: The goal of this work is to implement one missing WS standard for Apache CXF
framework. The student will:
• Study WS specifications and their structure and relations
• Select one from not implemented transaction specifications in Apache CXF project
- WS-Transfer (Resource Specification) - WS-Eventing (Messaging Specification)
• Get familiar with selected specification and Apache CXF project structure
• Introduce yourself to Apache CXF developers and discuss with them your plans
• Please note any development around the 2 specs above needs to actually be based on the
WS-ResourceAccess version of them.
There's a convenient links list of the WS-RA specs at
http://jbossws.blogspot.it/2011/12/web-services-resource-access.html
• Implement selected specification and work with Apache CXF developers to fulfill their
expectations
Name: JBossWS interoperability with other WS implementations
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Rostislav Svoboda, [email protected]
Text: The goal of this work is to create a tool/set of tests that will automatically check
interoperability between JBossWS Native, JBossWS CXF and other WS implementations. The
student will:
• Study the contents of WS-I specifications
• Get familiar with WS-I tests inside existing testsuites
• Create a tool/set of tests that will check interoperability between JBossWS CXF and other
non JBoss stacks
• Create Hudson CI server matrix job/jobs to ensure automatic test execution
Name: Create ModeShape sequencers for selected multimedia formats
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Jiří Pechanec, [email protected]
Text: ModeShape is a JBoss implementation of JCR. It allows interesting features like automatic
extraction of meta-data from the content placed in the repository. The goal of this work is to
develop new sequencers that will extract meta-data from different multimedia file types like ogg,
mpg, etc.
The student will:
• Analyze and document architecture of ModeShape solution
• Define a set of multimedia formats that should be supported
• Document the meta-data relevant to each file format and implement a sequencers for the
extraction
• Design a solution for processing of files with DRM
• Donate the code to ModeShape project
Name: Create a generic tool to support fail-over testing
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Jiří Pechanec, [email protected]
Text: The goal of this work is to design and develop a tool that will simplify fail-over testing of
different Red Hat projects.
The student will:
• Gather and analyze requirements for such tool
• Design and implement the tool
• Integrate the tool with Hudson CI server used in Red Hat
• Verify the tool operation on one of Red Hat projects
• Convert the tool into open-source project
Name: EJB timers in cluster and failover support for AS7
b/d: D
Sekce: JBoss
University: MUNI,VUT
Leader: Radoslav Husar, [email protected]
Text: Implement EJB times support for cluster in AS7. There are 2 kinds of timers in Java EE:
Single Action Timer and Interval Timer which both apply for clustering support. This involves
ability to create timers once per cluster and includes failover support to make sure no timers are lost
during outages in the cluster. The upstream tracking Jira is https://issues.jboss.org/browse/AS73962.
Name: Použití Infinispan-u pro implementaci CDI kontextu
b/d: B+D
Sekce: JBoss
University: VUT,MUNI
Leader: Jozef Hartinger, [email protected]
Text:
Implement an infrastructure necessary for creating a CDI context that uses Infinispan as the
underlying state storage. This involves researching a strategy for checking of the modified state.
Use the infrastructure for implementing a cluster scope (globally-shared context) and a user scope
(user-specific context).
Name: Integrace se sociálními sítěmi v Seam Social
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Marek Schmidt, [email protected]
Text:
• Seznamte se se specifikací CDI, projektem Seam3, moduly Seam Security a Seam Social, a
protokolem OAuth.
• Navrhněte a implementujte rozšíření modulu Seam Social pro snadnou integraci s
vybranými sociálními sítěmi.
• Demonstrujte výslednou implementaci na ukázkové aplikaci využívající integraci mezi
Seam Security, Seam Social a různými sociálními sítěmi.
Name: Create AJAX-enabled JSF component for WYSIWYG editing
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Lukas Fryc, [email protected]
Text: The goal of this work is to improve or rewrite existing JSF components that interacts with
libraries for plotting charts.
• Design the component configuration and parametrization for big flexibility
• Develop the component following best practices for component development
• Create a simple demo application using the component developed
• Donate the code to RichFaces project
Name: Implementation of WSO2 performance scenarios in SwitchYard
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Martin Večeřa, [email protected]
Text: Goal: Create a set of performance scenarios for SwitchYard based on WSO2 test suite.
• Analyze and describe WSO2 performance scenarios.
• Create a performance test toolkit for SwitchYard or choose one available on the market
• Implement scenarios for SwitchYard
• Measure and compare the performance of WSO2 to SwitchYard
• Identify bottlenecks in performance and propose solutions
• Donate the code to SwitchYard project to make it a standard part of the testsuite
Name: Design and implement Testing framework for JAAS login modules
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Josef Cacek, [email protected]
Text: The LoginModule interface gives developers the ability to implement different kinds of
authentication technologies that can be plugged in under an application. For example, one type of
LoginModule may perform a username/password-based form of authentication. Other
LoginModules may interface to hardware devices such as smart cards or biometric devices.
The student will:
• Get familiar with Java Authentication and Authorization Service (JAAS)
• Design and implement Java library (framework) which helps to test if a login module
implementation goes correctly through the authentication process defined by the JAAS
specification, all methods of the login module work as required by the JAAS Specification initialize(), login(), commit(), abort() and logout()
• The framework has to be easy pluggable to the common Java testing frameworks such as
JUnit and TestNG
• Donate the code to the JBoss security project
Name: Design and implement GUI tool for debugging HornetQ journal
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Pavel Slavíček, [email protected]
Text: HornetQ is an open source project to build a multi-protocol, embeddable, very high
performance, clustered, asynchronous messaging system. HornetQ server has its own ultra high
performance persistent journal, which it uses for message and other persistence. Journal consists of
a set of binary files on disk. Main aim of this thesis is to implement GUI tool for debugging stored
information in the journal.
The student will:
• Get familiar with HornetQ server
• Analyze and document structure of HornetQ journal
• Design and implement swing application which can be used as debugger for HorentQ
journal
• Tool must provide information about queues, stored messages, transactions etc.
• Donate the code to HornetQ project
Name: Visualization and tracing of messages between Infinispan nodes
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Michal Linhard, [email protected]
Text: We know what kind of messages should be generated between nodes to perform specific
operations - in theory -, still to debug problems of configuration or implementation on the whole
stack (application + Infinispan + JGroups) we often need to look into the logs, having thousands of
trace lines even when sampling for small periods of time. It would be very useful to have a way to
automatically extrapolate the interesting patterns out of a running system, we could collect reliable
information for example using (just ideas):
• A custom JGroups protocol
• Byteman to instrument JGroups for specific events (like network socket usage, or thresholds
being reached in internal structures like resend tables or threadpool sizes)
• Simple log file parsing
The collected information could then be used to generate condensed reports highlighting the
patterns being used in practice to compare them with expected patterns. I have two different
kinds if output in mind:
• A graphical visualization, showing the cluster nodes and a sequence of colored arrows
showcasing what is being done
• A short text representation, to be used by:
• automated tests to verify invariant expectations are not broken on code changes
• future possible tool to formally proof correctness / race conditions
Name: Proof of correctness for complex distributed patterns
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Michal Linhard, [email protected]
Text: The core of Infinispan can be represented in very simple "primitives": a set of nodes send
messages to each other. The fundamental rules are also relatively simple:
•
•
•
•
•
a message can't be received before it's sent
a message could be lost
a node could be killed at any time
From these basic building blocks one can start building some logical consequences:
messages sent to multiple nodes might arrive at different times
multiple messages sent to multiple nodes might be delivered in different order
Some of these problems are resolved by JGroups - but even then it must be configured accordingly,
meaning Infinispan' s usage of it is sensible to using the wrong method or flags. While the
Java/Scala code in Infinispan is not overly complex, it's not suited for reasoning on the
consequences of often-needed changes in the codebase. It would be very useful to be able to define
patterns in an ad-hoc meta language, and provide a proof correctness of the patterns it uses, or at
least proof the events it should avoid can not happen.
A great help for the project would be to sketch such a language and try it out on some of the
distribution schemes Infinispan uses to proof they are correct or identify flaws in correctness. In a
second step (optional) one could build some tooling around this to provide automatic demonstration
/ simulation for proposed changes expressed in this meta language. The Promela language could be
used for this purpose; so one could build tooling around it, try to apply it on Infinispan, and
possibly work on ad-hoc extesions.
See also previous proposal: "Visualization and tracing of messages between Infinispan nodes" ->
that would make it possible to trace the real Infinispan behaviour and then demonstrate it's
correctness or identify problems before they happen.
Name: Comparison of existing OSS BPEL engines
b/d: B
Sekce: JBoss
University: FI, VUT
Leader: Marek Baluch, [email protected]
Text: The goal of this work is to make a comparison between different OSS BPEL engines
implementations (Riftsaw, ODE, ActiveBPEL, OpenESB, ...) and identify their strengths and
weaknesses.
The student will:
• Gather and study the documentation to the related projects
• Create a comparison matrix to highlight weak and strong points of each product
• Design and implement a process in Riftsaw
• Execute the process on all examined engines and compare the results
• Propose improvements to Riftsaw project to be on par with competitors
Name: Design and implement grid testing system
b/d: D
Sekce: JBoss
University: MUNI, VUT
Leader: Jiří Pechanec, [email protected]
Text: The goal of the work is to create high-performance solution for test execution based on grid
architecture.
The student will:
• Research available Java open-source grid software implementations
• Design the grid testing software that will partition, dirstribute and execute test cases from
the test suite
• Use TestNG as the base testing framework
• Develop and implement algorithm to partition test suite based on the test cases dependencies
• Optimize the execution to minimize the execution time
Name: Implement topology change updates in Infinispan Hot Rod Python client
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Radoslav Husar, [email protected]; Michal Linhard, [email protected]
Text: Hot Rod protocol is a binary, plattform independent, protocol created to enable clients to
communicate with Infinispan servers. Hot Rod protocol clients can receive, as part of operation
responses, cluster topology update information. The aim of this work is to implement this logic in
Hot Rod's Python client.
Name: Infinspan node control based on SLA
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Radoslav Husar, [email protected]
Text: Infinispan currently uses RHQ - an open source management console - to visualize and
present statistics. Such statistics are also available in JMX. This project is about making use of a
rules engine - such as Drools - to capture such statistics, and to allow for users to pass in thresholds
and service level agreements as rules, which may trigger firing up more Infinispan nodes - or even
taking some down (see https://issues.jboss.org/browse/ISPN-127).
Name: Side-by-side comparison of memcached to Infinispan
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Radoslav Husar, [email protected]
Text: The goal of this work is to
• Study the functionality of Infinispan and memcached
• Build a comparison matrix based on the features identified
• Design, develop and execute performance test suite
• Analyze the achieved result
Name: Communication center as a set of portlets
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Michal Vančo, [email protected]
Text: The goal of this work is to
• Develop a set of portlets that implement modern communication center (e-mail client, chat,
social networks, blogging)
• Use modern technologies like RichFaces and AJAX for the portlet implementation
• Integrate the portlets using industry or de-facto standards (POP3, IMAP, IRC,
Jabber/XMPP, Facebook, Twitter, Blogspot)
• Prepare a configured GateIn instance with pre-configured portlets to demonstrate achieved
results
Name: Jenkins CI plugin investigation
b/d: B
Sekce: JBoss
Leader: Vojtěch Juránek, [email protected]
Text: Advanced usage of continuous integration server Jenkins CI. Jenkins CI is the most popular
continuous integration server. There are several hundreds plugin for Jenkins CI which allows to
implement sophisticated scenarios of building, testing and deploying software and thus automate
substantial part of software development life cycle.
The student will
•
Gather the list of the Jenkins CI plug-ins,
•
identify plug-ins which can be used for managing software life cycle,
•
install and verify the usability of each plug-in,
•
describe and categorize each verified plug-in,
•
propose several patterns for software life cycle automation using these plug-ins,
•
apply proposed patterns to selected project in JBoss QE and eventually propose
improvements in project automation,
•
donate the text to Jenkins CI community (can be considered as an extension to Jenkins: The
definite guide book).
Name: Integration of Jenkins CI with JBoss AS 7
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Vojtěch Juránek, [email protected]
Text: Jenkins CI is the most popular continuous integration server which contains embedded
servlet container Winstone, which is archaic and not maintained. The aim of this thesis is to replace
Winstone by JBoss AS 7.
The student will:
• get familiar with Jenkins CI, especially with extras-executable-war package,
• get familiar with JBoss AS 7,
• compare Winsotne with AS 7 and identify all possible backward compatibility issues (e.g.
configuration options available in Winstone, but missing in AS 7),
• resolve possible backward compatibility issues by implementing new features into AS 7 or
by modification of appropriate part of Jenkins,
• replace embedded Winstone servlet container by AS 7,
• donate project to Jenkins community.
Name: Improvement of Delta cloud plugin for Jenkins CI
b/d: B
Sekce: JBoss
University: VUT,MUNI
Leader: Vojtěch Juránek, [email protected]
Text: The aim of this thesis is to improve Delta cloud plugin and extend its functionality to cover
all features provided by Delta cloud API. Jenkins CI is the most popular continuous integration
server. Delta cloud API is Apache project which tries to unify API for different cloud providers and
thus allows the user to implement cloud provider independent application.
The student will:
• get familiar with Jenkins CI,
• get familiar Delta cloud API,
• analyze which API features can be used by Jenkins,
• improve Delta cloud plugin to cover all cover all features provided by Delta cloud API
identified in previous step,
• contribute the code back to the Delta cloud plugin project.
Name: Jenkins CI plugin development in Python
b/d: D
Sekce: JBoss
University: VUT,MUNI
Leader: Vojtěch Juránek, [email protected]
Text: Jenkins CI is the most popular continuous integration server with strong support for plugins.
Jenkins is written in Java, but it also provides possibility to implement plugins in Ruby. The aim of
this thesis is to provide similar support for Python which would allow developers to implement
plugins in Python.
The student will:
• get familiar with Jenkins CI and its plugin mechanism,
• analyze Jenkins support for implementing plugin in Ruby,
• propose similar mechanism for implementing plugin in Python,
• implement proposed mechanism,
• verify the functionality by implementing simple plugin in Python,
• contribute the code back to the Jenkins project.
Name: Srovnání RAD platforem Seam Forge a Spring Roo
b/d: B
Sekce: JBoss
University: MUNI
Leader: Karel Piwko, [email protected]
Text: Zadání:
• Načrtněte výhody nástrojů pro rapid-application development
• Nastudujte Seam Forge a Spring Roo
• Zaměřte se na rozšitelnost jednotlivých technologií
• Vytvořte vzorové rozšíření pro vývoj webových aplikací pro Spring Roo a JBoss
Forge se shodnou funkcionalitou
• Zhodnoťte dosažené výsledky
Name: Srovnání Seam Forge a Spring Roo
b/d: B
Sekce: JBoss
University: VUT
Leader: Karel Piwko, [email protected]
Text: Zadání:
• Načrtněte výhody nástrojů pro rapid-application development
• Nastudujte Seam Forge a Spring Roo
• Vytvořte vzorovou aplikaci se stejnou funkcionalitou pomocí Spring Roo a Seam Forge
běžící na JBoss AS
• Zhodnoťte dosažené výsledky
KDE & QtLibraries
Name: Usability Session Recording Tool
b/d: B
Sekce: KDE & Qt Libraries
University: UPOL
Leader: Lukáš Tinkl, [email protected]
Text: Explanation: Usability engineers regularly administer usability sessions. Within these
sessions there are a number of things that they need to record:
The three most notable are the screen of the user being tested
• An external camera source
• An external microphone
These must be compressed and multiplexed together, compressed. The tool must be able to open
these files, export them to other more conventional types, i.e. an OGG simply of the users screen.
Expected results: An application which can record, playback, do very basic export (i.e. export
camera feed to an avi file) the required information and that can be used by the people of the KDE
Usability Project for usability testing.
Prerequisites:
• C++, Qt, some C (potentially for GStreamer plugins)
• Basic knowledge of multimedia development (i.e. what multiplexing, encoding, basic
synchronization issues are)
Name: Parental mode in KDE
b/d: B
Sekce: KDE & Qt Libraries
University: UPOL
Leader: Lukáš Tinkl, [email protected]
Text: Extend KDE's Kiosk framework to make it easy to set global parental controls. Make sure
all KDE applications respect the Kiosk settings. This will ensure that KDE is a family-friendly,
family-safe distribution and increase its uptake by concerned parents. KDE Kiosk mode
disappeared from KDE4. The tool has to be rewamped and new features should be added (time
limited access, parental control)
Name: Shared board - Sdílená tabule
b/d: D
Sekce: KDE & Qt Libraries
University: VUT, MUNI
Leader: Jaroslav Řezník, [email protected]
Text: Cílem diplomové práce je pokračování ve vývoji aplikace Makneto, která slouží k real-time
komunikaci uživatelů skrze pracovní plochu - sdílenou tabuli. Mezi možné rozšíření patří podpora
konferencí více uživatelů (MUC), multimediální/interaktivní objekty na tabuli, port komunikační
části na architekturu Telepathy (v KDE 4 ji implementuje Decibel), real-time hlas/video. Součástí
vývoje aplikace jsou i opravy existujících chyb tak, aby bylo možné aplikaci začlenit do prostředí
KDE PIM. Zadání práce je možné individuálně upravit.
Požadavky: programovací jazyk C++, prostředí Qt 4/KDE 4
1. Prostudujte existující aplikaci Makneto (http://makneto.sf.net/).
2. Prostudujte existující řešení pro týmovou spolupráci přes Internet pomocí interaktivních
sdílených tabulí.
3. možné alternativy, doplňují se
• Navrhněte rozšíření protokolu XMPP whiteboarding o sdílení
multimediálního/interaktivního obsahu.
• Navrhněte rozšíření aplikace o podporu komunikace více uživatelů.
• Přeportujte komunikační část na architekturu Telepathy.
• Navrhněte rozšíření o real-time přenos hlasu/videa.
• Vlastní nápad!
4. Implementujte navržená rozšíření do stávající aplikace v jazyce C++ s využitím prostředí Qt
4/KDE 4.
5. Zhodnoťte přínos vytvořené aplikace pro podporu komunikace ve vývoji open source
projektů. Diskutujte budoucí vývoj aplikace.
Name: Nástroje pro práci s google službami v KDE
b/d: B
Sekce: KDE & Qt Libraries
University: VUT,UPOL
Leader: Jaroslav Řezník, [email protected]
Text:
1. Seznamte se s operačním systémem GNU/Linux, prostředím KDE (poslední verzí 4.1.1) a s
aplikacemi Plasma (případně Superkaramba).
2. Seznamte se se službami poskytovanými společností Google (vyhledávání, email, kalendář).
3. Navrhněte sadu plasmoidů (widgetů) pro výše zmíněné služby. Podrobnosti konzultujte s
vedoucím práce.
4. Navržený nástroj implementujte.
5. Ověřte funkčnost nástroje ve více distribucích OS GNU/Linux.
6. Zhodnoťe dosažené výsledky a navrhněte další psotup.
Name: Dotykové uživatelské rozhraní
b/d: B/D
Sekce: KDE & Qt Libraries
University: VUT,MUNI
Leader: Jaroslav Řezník, [email protected]
Text: Prostudujte problematiku dotykových uživatelských rozhraní. Navrhněte vlastní uživatelské
rozhraní nebo úpravy stávajících uživatelských rozhraní pro použití pomocí dotykového ovládání.
Implementujte navržené rozhraní. Zhodnoťte dosažené výsledky a pokuste se o začlenění změn do
upstreamu. Navrhněte možné pokračování práce.
Kernel
Name: Optimize ext4 unlink process to make recovering deleted files easier
b/d: B
Sekce: Kernel
University: VUT,VŠB,MUNI,UPOL
Leader: Lukáš Czerner, [email protected]
Text: Ext4 file system is deployed on huge variety of systems which indirectly amplifies the
overall impact of human errors on file system reliability. One of the common data loss scenarios
induced by human error is removing files unintentionally. The simple fact that the file has been
removed from the file system, does not imply that the data are no longer present on the storage.
Several projects can be found which benefits from this by trying to find and reconstruct inodes and
associated data blocks. However ext4 file system does not make this operation any easier which
greatly limits its actual success rate. The goal of this project is to study the design and behavior of
the ext4 file system in order to identify and change its actions which are making deleted file
recovery harder, or even impossible and use the new characteristics in a existing or new recovery
tool.
• Get familiar with ext4 desing and implementation. Pay special attention to the file system
layout and how file system operations are performed.
• Find out how recovering deleted files can be done in ext4 file system and compare your
findings with some existing tools.
• Based on previous research identify the main problems when recovering deleted files and
discuss why it can not be done in some situations.
• Propose optimizations of ext4 file system in order to make deleted files recovery easier
without any format change, or noticable negative performance impact and discuss your
proposal with upstream developers.
• Implement you design based on the discussion and cooperate with project developers to
merge your changes into the main branch of the Linux kernel tree.
• Modify any existing recovery tool, or create a new implementation in order to present
benefits of your file system change.
Name: Efficient way to allocate and read directory entries in ext4 file system
b/d: D
Sekce: Kernel
University: VUT,VŠB,MUNI
Leader: Lukáš Czerner, [email protected]
Text: The goal of this project is to improve performance of ext4 file system in the specific case of
sequentially walking the directory entries which tends to be very unefficient. Since this issue is
rather specific for third and fourth extended file system it makes it easily identifiable problem
which is affecting real work load and putting additional unnecessary burden to the application
developers. This project aims to eliminate or limit this weak spot of ext4 file system.
• Get familiar with the on-disk layout of the ext4 file system and focus on the inode allocation
algorithms and the directory entry layout.
• Test and analyze existing implementation and identify weak spots caused by the way the file
system stores the directory entries. Present the results and compare it with the other file
systems, at least xfs and btrfs.
• Based on previous results crate a set of easily applicable tests for verification and
benchmarking the process of creating and reading the directory entries and associated data.
• Propose possible optimization eliminating the weak spots identified in previous steps.
Proposed optimization should be as compatible with existing implementation as possible.
Discuss the proposition with upstream developers of ext4 file system.
• Implement optimizations as came out from your results and from discussions with
developers. Test your implementation with existing and newly created tests. Compare the
performance of your solution with the existing and cooperate with upstream ext4 developers
to merge your changes into the main branch of the Linux kernel tree.
• Summarize your results and present the real contribution of the changes made in this project
scope. Discuss further possible optimization.
kernel-qe
Name: Sada nástrojov pre testovanie výkonnosti súborového systému gfs2
b/d: D
Sekce: kernel-qe
University: FI, VUT
Leader: Adam Okuliar, [email protected]
Text: GFS2 je súborový systém vhodný pre nasadenie v cluster prostredí.Umožnuje zdieľať SAN
blokové zariadenie medzi viacerými uzlami clusteru, pričom každý uzol môže mať pripojený
súborový systém v read-write móde.Predmetom práce je:
• návrh vhodnej testovacej siete obsahujúcej niekoľko uzlov testovacieho clusteru.
• implementácie nástrojov pre meranie výkonnosti rôznych implementácii súborového
systému gfs2.
• otestovanie implementovaných nástrojov na virtuálnych a reálnych strojoch
• porovnanie výkonnosti jednotlivých implementácii a diskusia nad výsledkami
KOffice
Name: Collaborative editing of documents over a network + version control integration
b/d: D
Sekce: KOffice
University: VUT,MUNI
Leader: Lukáš Tinkl, [email protected]
Text: Make it possible for two or more users to work at the same document in a Koffice
application at the same time over a network. Both users would open the same document, and
changes made by each user are synchronized to the other user's editing session. Also integrate
version control system support with KWord to allow easy control over revisions of documents. It
should be possible to connect with remote revision control systems, to allow collaborative work on
projects, similarly to how software is developed. It should be easy for the user to browse through
the history of document versions in the version control system, to see what has changed. Webdav,
CVS, Subversion and git should be supported.
qa
Name: Sada testů pro vybrané open source nástroje
b/d: B
Sekce: qa
University: VUT,MUNI
Leader: Ondřej Hudlický, [email protected]
Text: Popište specifika zajištění kvality open source software. Pro zvolené nástroje v Red Hat
Enterprise Linux / Fedora vytvořte nebo rozšiřte sadu automatických testů. Unit testy přidejte přímo
do zdrojového kódu projektu tak, aby je uživatelé mohli spouštět po instalaci balíku. Integrační a
zátěžové testy budou určeny pro spouštění v AutoQA test system.
Name: Měření výkonu software v GNU/Linux
b/d: B
Sekce: qa
University: VUT
Leader: Ondrej Hudlicky, [email protected]
Text:
1. Seznamte se s problematikou měření výkonu software. Popište různé typy performance testů na
příkladech užití.
2. Prostudujte metodologii měření výkonu na GNU/Linux a porovnejte dostupné testovací nástroje.
3. Identifikujte skupinu služeb a aplikací v distribuci Fedora / Red Hat Enterprise Linux
4. Implementujte sadu testů pro regresní kontrolu výkonnosti vybraných aplikací.
5. Zhodnoťte výsledné řesení a navrhněte možnosti rozšíření.
Name: Automatic static code analysis of Linux kernel
b/d: B
Sekce: qa
University: VUT,MUNI
Leader: Stanislav Kozina, [email protected]
Text: Goal: Implement an automatic build system, which would for each/scheduled commit run
some static code analysis and report the authors of the commits differences in the report.
• Analyse current existing stastic code analysis tools (Lint, Clang, Coverity, Parfait, ...)
• Design and implement build system for dispatching, running and comparing tool output
- Allow usage of git/hg/cvs/svn source code repositories as well as RedHat internal git
repositories and RPM/SRPM packages
- Create a simple web interface for viewing current build/result status of the dispatched
jobs
RedBoot
Name: Implementace pravidel a strategií soutěže RedBot
b/d: B/D
Sekce: RedBot
University: VUT,MUNI
Leader: Jan Hutař, [email protected]
Text: RedBot je programátorská soutěž pro studenty středních a vysokých škol sponzorovaná
firmou Red Hat, která v každém ročníku přichází s novým zadáním. Obecně jde o implementaci
strategií soutěžících proti sobě v rámci předem zadaných pravidel. Úkolem studenta je
implementovat vyhodnocovací server, visualizační utilitu a 3 (nebo více) různé strategie rozdílné
inteligence a rozhodovacího principu (například neuronová síť). Student popíše princip, výsledky a
výpočetní náročnost strategií. Možné je též jednu strategii implementovat ve více programovacích
jazycích a porovnat rychlost a paměťovou náročnost jejich vyhodnocování. Cílem práce je vytvořit
imlementaci daných pravidel (budou zadány po konzultaci se studentem), kterou bude možné s
malými změnami použít jako jeden ročník soutěže RedBot (http://red-bot.rhcloud.com/).
RHNSatellite
Name: Yum plugin for suggesting packages based on usage (data mining)
b/d: D
Sekce: RHNSatellite
University: UPOL
Leader: Lukas Zapletal, [email protected]
Text: Goal: Implement a yum plugin and analytic tool for suggested packages database Yum/RPM
package database does not have static recommended packages entries. Create new program in a
language of choice that builds this database from Fedora public repositories statistical data and Pulp
package sets using Formal Conceptual Analysis (FCA). The approach should allow to recommend
packages from a set of current and/or packages being installed. As a part of this theme develop new
yum plugin that will periodically download the database from repositories and recommends
packages upon installation. The key is to design and implement efficient, fast and bandwidth lowcost data format for storing and transmitting of package statistical database. Links: Pulp http://pulpproject.org Yum - http://yum.baseurl.org
Name: Analysis tool for entitlement dependencies (data mining)
b/d: D
Sekce: RHNSatellite
University: UPOL
Leader: Lukas Zapletal, [email protected]
Text: Goal: Implement an analytic tool for entitlement dependencies Candlepin is an open source
entitlement management system. It tracks the products which an owner has subscribed too, and
allows the owner to consume the subscriptions based on conifgurable business rules. Develop an
analysis program in a language of choice that will run on Candlepin server and periodically create
reports of consumed entitlements. Data should be kept for historical purposes. Data presentation
must be via HTML. The key is not to overload the Candlepin database during analysis - data must
be transfered to a different format (datafiles, memory) prior to analysis process. Links: Candlepin https://fedorahosted.org/candlepin/
Satellite QA
Name: Vytvoření sady testů pro Spacewalk použitelných pro IPv6 testování
b/d: B
Sekce: Satellite QA
University: VUT,MUNI
Leader: Jan Hutar, [email protected]
Text: Spacewalk je systém pro správu Linuxových systémů. Mezi jeho možnosti patří instalace
aktualizací na klienty, správa a centralizovaná distribuce vlastních balíků a konfiguračních souborů,
vzdálená reinstalace klientů, vykonávání vzdálených příkazů a monitoring. Většina těchto vlastností
je závislá na funkční síťové infrastruktuře. Cílem této práce je tedy vytvořit sadu testů, které by
prováděy maximální množství různých volání kterými klienti komunikují se Spacewalk serverem
(nebo kterými dva Spacewalk servery komunikují mezi sebou) s cílem odhalit problémy způsobené
přechodem na infrastrukturu založenou na IPv6. V součesnosti Spacewalk a jeho nástroje IPv6
nepodporují. Konkrétní zadání bude dohodnuto až přímo se studentem.
Security
Name: Analysis of entropy levels in the kernel entropy pool in virtual guests
b/d: D/B
Sekce: Security
Leader: Tomáš Mráz, [email protected]
Text: Analyse the behavior of Linux kernel in regards to amount of entropy in the kernel entropy
pool during the boot of virtual machine guests. Find out whether the type of the host hypervisor
(KVM, XEN) affects the values of the available entropy. Provide methods for improving the
entropy contents in the kernel pool in such situations.
Name: Design and support better SCAP content development process
b/d: D/B
Sekce: Security
Leader: Peter Vrabec, [email protected]
Text: Broader adoption of Security Content Automation Protocol (SCAP) specifications in opensource community has been problematic . One of the main barriers is complexity of each
specification. This complexity makes SCAP content authoring and maintenance a painful job. The
aim of this thesis is to come up with a solution that will make OVAL-5.10.1 and XCCDF-1.2
content development process easier and more user friendly. That involves:
• get familiar with content development process
• identify the shortcomings
• search for, study and compare different approaches that try to solve these issues
• design a new solution or improvements to the existing efforts
• implement the solution
Name: Verifying and improving cryptographic key security in PKCS#11 implementations
b/d: D
Sekce: Security
Leader: Miloslav Trmač, [email protected]
Text: The PKCS#11 interface for cryptographic modules should be able to provide services
without giving its users access to the raw values of the cryptographic keys. In practice, however,
both the design and existing implementations have various problems and inconsistencies that allow
extraction of the key data.
• Study the PKCS#11 interface standard, focusing on key protection facilities available in
various versions
• Familiarize with existing attacks and existing tools for automatic implementation
verification (e.g. Tookan)
• Write an open-source tool that performs an automated analysis of a PKCS#11
implementation to find ways to extract the key data; use it to validate the NSS "software
token" and perhaps other open-source implementations of PKCS#11.
• If relevant, suggest and implement improvements to the tested PKCS#11 implementations to
mitigate the discovered attacks
• If relevant, suggest and prototype improvements to the PKCS#11 standard to mitigate the
discovered attacks