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