VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií
Návrh a implementace přehrávače PowerPoint prezentací a integrace do televizního CMS Bakalářská práce
Autor: Miroslav Kružík Vedoucí práce: Ing. Helena Munduchová Jihlava 2016
Abstrakt Tato bakalářská práce se v první části zabývá analýzou současného prostředí televizního systému pro správu obsahu Vysoké školy polytechnické v Jihlavě, následným hledáním možných řešení pro přehrání PowerPoint prezentací na webových stránkách a výběrem vhodných řešení pro dané prostředí. Ve druhé části se práce zabývá implementací RPC služby pro změnu formátu prezentace, vytvořením nových šablon ve webové aplikaci a upravením aplikace pro integraci řešení.
Klíčová slova prezentace, ODF, Thrift, PowerPoint, SVG, PHP, Java
Abstract This bachelor thesis deals with an analysis of the current TV system for content management of the College of Polytechnics Jihlava, followed by finding possible solutions for playing a PowerPoint slideshow on a web page and choosing the appropriate solution for the given environment in the first part. The second part deals with the implementation of an RPC service for changing the format of a presentation, creation of new templates in the web application and modification of the application to integrate the solution.
Key words slideshow, ODF, Thrift, PowerPoint, SVG, PHP, Java
Prohlašuji, že předložená bakalářská práce je původní a zpracoval jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též „AZ“). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ . Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména § 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutím licence. V Jihlavě dne 19. 5. 2016 ...................................................... Podpis
Poděkování Zde bych rád poděkoval celému programátorskému týmu na oddělení koncepce a vývoje informačního systému Vysoké školy polytechnické Jihlava za rady a poskytnutí materiálů, zejména Ing. Heleně Munduchové za vedení bakalářské práce.
Obsah 1
Úvod.......................................................................................................................... 9
2
Použité technologie ................................................................................................. 11 2.1
2.1.1
PHP ........................................................................................................... 11
2.1.2
HTML ....................................................................................................... 12
2.1.3
CSS ........................................................................................................... 12
2.1.4
JavaScript .................................................................................................. 13
2.1.5
WebODF ................................................................................................... 13
2.1.6
SVG .......................................................................................................... 14
2.2
Vzdálené volání metody................................................................................... 14
2.2.1
RPC ........................................................................................................... 14
2.2.2
Java ........................................................................................................... 15
2.2.3
Apache Thrift ............................................................................................ 15
2.3
3
Webová aplikace .............................................................................................. 11
Formáty prezentací ........................................................................................... 16
2.3.1
OpenDocument Presentation .................................................................... 16
2.3.2
PresentationML ......................................................................................... 17
Analýza ................................................................................................................... 19 3.1
Současný stav televizního CMS VŠPJ ............................................................. 19
3.1.1
Vytvoření prezentace ................................................................................ 19
3.1.2
Aplikace .................................................................................................... 20
3.1.3
Přehrávání prezentace ............................................................................... 22
3.1.4
Požadované rozšíření ................................................................................ 22
3.2
Možnosti přehrání PowerPoint prezentace na webové stránce ........................ 23
3.2.1
Přehrání za pomoci JavaScriptu ................................................................ 23
3.2.2
Uložení ve formátu HTML ....................................................................... 24
3.2.3
Převod prezentace na obrázky .................................................................. 24
3.2.4
Převod na video ........................................................................................ 25
3.2.5
Využití online služeb ................................................................................ 26
3.3 4
Výběr řešení ..................................................................................................... 26
Implementace .......................................................................................................... 27 4.1
RPC pro konverzi prezentace ........................................................................... 27
4.1.1
Definice rozhraní služby ........................................................................... 28
4.1.2
Třídy pro konverzi formátu....................................................................... 30
4.1.3
Handler služby .......................................................................................... 32
4.1.4
Server ........................................................................................................ 32
4.1.5
Klient ........................................................................................................ 34
4.2
Vytvoření nové šablony ................................................................................... 35
4.2.1
BackendController .................................................................................... 35
4.2.2
FrontendController.................................................................................... 36
4.2.3
Pohled pro backend ................................................................................... 36
4.2.4
WebODF ................................................................................................... 38
4.2.5
SVG .......................................................................................................... 39
4.3
Vytvoření modelu............................................................................................. 40
4.3.1
WebODF ................................................................................................... 40
4.3.2
SVG .......................................................................................................... 41
4.4
Zakomponování do frontendu .......................................................................... 42
4.4.1
WebODF ................................................................................................... 42
4.4.2
SVG .......................................................................................................... 43
5
Testování ................................................................................................................. 44
6
Závěr ....................................................................................................................... 45
Seznam použité literatury ............................................................................................... 46 Seznam obrázků .............................................................................................................. 48 Seznam zkratek ............................................................................................................... 49
Seznam pojmů................................................................................................................. 50 Přílohy............................................................................................................................. 51 Obsah přiloženého CD ................................................................................................ 51 Diagram užití .............................................................................................................. 52
1 Úvod Vysoká škola polytechnická v Jihlavě (dále jen VŠPJ), má na chodbách svého sídla rozmístěno několik televizorů, které jsou využívány k promítání snímků zpravidla o nadcházejících událostech. Tyto televizory poskytují skvělou možnost, jak studentům sdělit důležité informace formou prezentací. Všechny tyto informace jsou sice studentům doručovány vzkazy a elektronickou poštou, nicméně mnoho studentů nevěnuje vzkazům a poště dostatečnou pozornost, zvláště pokud se nejedná o informace přímo ovlivňující jejich studium. V tom je výhoda televizorů na chodbách, kudy studenti nejen prochází, nebo kde také čekají na začátek přednášky či cvičení, a zvláště během čekání si přečtou vše, co jim zkrátí čas, tudíž se zadívají i na přehrávanou prezentaci a věnují jí dostatek pozornosti. Kdyby se systém rozšířil o možnost vložení powerpointové prezentace, zjednodušilo by se vytváření promítaných snímků a mohla by se ještě zvýšit využitelnost. Firmy by mohly zaslat škole vlastní prezentaci, aby inspirovaly budoucí absolventy k vyhledání práce právě v jejich firmě. Tímto způsobem by se tedy studenti dozvěděli o nabídkách praxí, brigád či stáží z dalšího zdroje. Cílem práce je nalezení vhodného řešení pro přehrávání prezentací ve formátu PresentationML, tedy prezentací vytvořených v komerčním produktu Microsoft Office PowerPoint verze 2007 nebo novější, a zakomponování tohoto řešení do existujícího televizního CMS (Content Management System) na VŠPJ. Televizory na chodbách VŠPJ jsou připojeny k vlastnímu minipočítači, kterému slouží jako monitor. Minipočítač je připojen do vnitřní sítě a zobrazovaný obsah je vygenerovaná webová stránka v prohlížeči. Motivací pro umožnění vkládání powerpointových prezentací je fakt, že v současné době mohou být prezentace v CMS vytvořeny pouze jako samostatné snímky obsahující text, obrázek nebo video, a ty následně poskládány jako prezentace. Pokud bude firma chtít zobrazovat svoji prezentaci na VŠPJ, tak ji pravděpodobně škole dodá ve formě powerpointové prezentace, kterou nyní nelze do systému vložit. Vhodným řešením přehrávání prezentace na webové stránce se zdá být převod PowerPoint souboru do HTML a CSS, nebo použití javascriptové knihovny, která dokáže soubor s prezentací převést do HTML a kaskádových stylů na straně klienta. Tyto i další možnosti v analýze zhodnotím a zvolím vhodná řešení, která implementuji.
9
Při vytváření bakalářské práce použiji různé Open Source programy. Programovat budu v jazycích PHP, JavaScript a Java. Pro zpracování PowerPoint souboru vytvořím vzdálenou metodu v jazyce Java. Zpracované soubory budu ukládat na souborový systém a informace o nich vložím do objektově-relační databáze v PostgreSQL. Zdrojový kód v jazyce PHP budu psát ve vývojovém prostředí Netbeans 8.1, kód v jazyce Java vytvořím v Open Source verzi vývojového prostředí IntelliJ IDEA. S databází budu pracovat přes grafické uživatelské rozhraní programu pgAdmin III. Pro jednoznačnost bude v práci používán pojem „slide“ pro snímek vytvořený v CMS, který by jinak mohl být zaměněn se snímkem powerpointové prezentace.
10
2 Použité technologie 2.1 Webová aplikace 2.1.1 PHP Původně zkratka znamenala Personal Home Page, ale dnes se uvádí význam zkratky jako PHP: Hypertext Preprocessor. PHP je velmi rozšířený skriptovací jazyk pro vytváření webového obsahu, který je zpracováván na straně serveru. Vytvořil jej Rasmus Lerdorf v roce 1994 pro vlastní účely, avšak v červnu roku 1995 zdrojový kód zveřejnil. PHP slouží převážně k vytváření webových stránek a webových aplikací, které pracují s databází. [1] PHP vývojář může programovat jak procedurálně, tak i objektově. V současné době je žádoucí využívat pro vývoj webových aplikací moderní PHP frameworky, které na jedné straně výrazně snižují výkon aplikace, ale na straně druhé značně usnadňují programátorům práci, zvyšují bezpečnost a zpřehledňují kód. 2.1.1.1 Symfony Symfony je Open Source PHP framework, podporovaný širokou komunitou, určený k vývoji webových aplikací. Projekt Symfony byl původně koncipován pouze pro vnitřní potřeby agentury SensioLabs, nicméně v roce 2005 byl publikován pod licencí MIT Open Source. V současné době se jedná o jeden z nejoblíbenějších frameworků pro vývoj v PHP, ke kterému existuje bohatá dokumentace a online podpora. [2] Framework používá architekturu model-view-controller (česky model-pohled-kontroler). V modelu se nachází logika aplikace, v pohledu naopak klientská část, a kontroler je prostředníkem zajišťujícím komunikaci mezi modelem a pohledem. V Symfony se používají tzv. bundly. Bundle je složka obsahující všechny soubory, které dohromady vytvářejí samostatnou funkcionalitu. Díky tomu lze aplikaci rozšiřovat již vytvořenými bundly.
11
2.1.1.2 Doctrine Doctrine jsou PHP knihovny zaměřené na poskytování databázových služeb. Jádrem je ORM (Object-Relational Mapping), tedy technika pro konverzi dat mezi relační a objektovou databází, a vrstva DBAL (Database Abstraction & Access Layer), která umožňuje snadnou práci s různými systémy řízení báze dat. Doctrine podporuje následující systémy řízení báze dat: MySQL, Oracle, Microsoft SQL Server, PostgreSQL, SAP Sybase SQL Anywhere, SQLite a Drizzle. [3] Pro základní dotazy, jako je výběr záznamu podle jeho primárního klíče, není potřeba psát vlastní SQL (Structured Query Language) dotaz, ale lze použít metodu entity, automaticky vytvořenou díky Doctrine. 2.1.1.3 Twig Jedná se o moderní šablonový systém pro PHP, který kompiluje šablony do prostého optimalizovaného PHP kódu. Ve Twigu lze nastavit automatické ošetření řetězců, je možné vytvořit vlastní funkce, filtry nebo operátory. Při výskytu chyby podá Twig zprávu o názvu souboru a řádku, kde se chyba nachází. Twig disponuje vícenásobným děděním, kdy se vytváří bloky pro specifickou část šablony, která se bude v potomcích měnit. Twig vytvořil Fabien Potencier, tvůrce Symfony. [4]
2.1.2 HTML HTML (HyperText Markup Language) je značkovací jazyk používaný pro tvorbu webových stránek. Skládá se z tagů, které popisují obsah stránky. Celá HTML stránka se nachází v jednom tagu a dále se dělí na hlavičku a tělo. Verze HTML5 přinesla podporu CSS3 a spoustu užitečných a dlouho očekávaných funkcí, jako možnost přehrávání videa i audia bez instalovaného pluginu Flash, možnost práce s SVG soubory v tagu <svg>, vytváření grafických objektů v tagu