ˇ Linux Server Development - SPŠE Jecná
Vývoj tiskového serveru
Dlouhodobá maturitní práce Stˇrední prumyslová ˚ škola elektrotechnická, Praha 2, Jeˇcná 30 31. bˇrezna 2016 Autor:
Jakub Motlík
E-mail:
[email protected]
Tˇrída:
C4a
Školní rok:
2015/2016
Vedoucí:
Ing. Ondˇrej Mandík, ING PAED IGIP.
Oponent:
ˇ CSc. Ing. Mgr. Vladimír Vána,
Autor: Jakub Motlík Vydáno: 31. b°ezna 2016 Práce byla vydána jako dlouhodobá maturita na SPE Je£ná. Práce byla vytvo°ena v rámci projektu LSD SPE Je£ná.
Zde vloºte ocální zadání práce.
Prohlá²ení
Prohla²uji, ºe jsem svou práci vypracoval samostatn¥ a pouºil pouze podklad· uvedených v p°iloºeném seznamu literatury. Prohla²uji, ºe v²echny výtisky práce jsou shodné s elektronickou verzí práce. Nemám závaºný d·vod proti pouºití tohoto díla ve smyslu 60 Zákona £.121/2000 Sb., o právech souvisejících s právem autorským a o zm¥n¥ n¥kterých zákon· (autorský zákon) v platném zn¥ní.
V ........................... dne .....................
...............................................
Pod¥kování
Velké díky pat°í panu Ing. Ond°eji Mandíkovi, ING PAED IGIP. za pomoc, podm¥tné p°ipomínky, konzultace a pomoc p°i vytvá°ení tohoto projektu. Také d¥kuji své rodin¥ za pomoc a podporu.
Abstrakt
Tiskový server je systém, který umoº¬uje uºivatel·m plánovaný tisk odkudkoliv. V této práci je zaznamenán kompletní vývoj tiskového systému od funk£ních, nefunk£ních poºadavk· p°es MockUp prototypy, návrhy °e²ení, reálného provedení aº po zhodnocení systému. Velice zajímavou £ástí tiskového serveru je °e²ení zabezpe£ení databáze za pomoci speciální databázové t°ídy vyuºívající PDO a tím zabezpe£ující p°ístup do databáze. Ale také skript starající se o tisk ve vybraný datum a £as na zvolenou tiskárnu. Klí£ová slova: Tiskový server, Tiskové °e²ení, Tisk kdykoliv a kdekoliv
Abstract
Print server is server, which providing scheduled everywhere printing. In this work you will read about evolving this system from functional, non functional requirements, across MockUp prototypes, solutions prototypes, real solution and in the end the review of system. Very interesting part is solution of database security by special database class, with usage of PDO to secure database accessing. And script for printing at selected date and time on selected printer is very interesting too. Keywords: Print server, Print solution, Print everywhere at anytime
ˇ SPŠE JECNÁ
OBSAH
Obsah Úvod 1 O práci
9 10
1.1 Vize a cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 P°ehled konkurence na £eském trhu v roce 2015 . . . . . . . . . . . . . . . 10
2 Hypotéza °e²ení tiskového systému
12
2.1 Funk£ní poºadavky tiskového serveru . . . . . . . . . . . . . . . . . . . . . 13 2.2 UseCase funk£ních poºadavk· . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 Nefunk£ní poºadavky na tiskový server . . . . . . . . . . . . . . . . . . . . 15
3 Návrh °e²ení
17
3.1 Návrh uºivatelského rozhraní . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Návrh databáze pro tiskový server . . . . . . . . . . . . . . . . . . . . . . . 18 3.3 Návrh obsluhy uºivatelského rozhraní a tisku . . . . . . . . . . . . . . . . . 20
4 Reálné provedení tiskového serveru
22
4.1 Provedení uºivatelského rozhraní . . . . . . . . . . . . . . . . . . . . . . . 22 4.2 Provedení databáze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Provedení obsluhy uºivatelského rozhraní . . . . . . . . . . . . . . . . . . . 23 4.4 Provedení obsluhy tisku dokument· v RPi . . . . . . . . . . . . . . . . . . 25 4.5 Uºivatelský postup p°i tisku dokumentu a pouºité technologie . . . . . . . 26 4.6 Srovnání tiskového systému s MyQ - Free 2015 . . . . . . . . . . . . . . . . 29
5 Testování tiskového serveru
30
5.1 Technické testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2 Laboratorní testování a výsledek . . . . . . . . . . . . . . . . . . . . . . . . 31
Motlík, 2015/2016
7
ˇ SPŠE JECNÁ
6 Shrnutí na²eho °e²ení tiskového serveru
OBSAH
32
6.1 Výhody, nevýhody a vylep²ení systému . . . . . . . . . . . . . . . . . . . . 32
Záv¥r
33
Seznam pouºité literatury
34
Seznam tabulek
35
Seznam obrázk·
36
Seznam pouºitých zkratek
37
A Obsah p°iloºeného CD
38
B Obrázky nepouºité v práci
39
Motlík, 2015/2016
8
ˇ SPŠE JECNÁ
OBSAH
Úvod Tiskový server je systém, který umoº¬uje uºivatel·m naplánovat tisk odkudkoliv. V této práci je zaznamenán vývoj tiskového systému. Od funk£ních, nefunk£ních poºadavk· p°es MockUp prototypy, návrhy °e²ení, reálného vy°e²ení pomocí HTML, CSS, PHP, MySQL, Python aº po zhodnocení systému.
Obrázek 1: Obrázek zachycující stav p°ed a po instalaci tiskového systému. Motlík, 2015/2016
9
ˇ SPŠE JECNÁ
KAPITOLA 1. O PRÁCI
Kapitola 1 O práci V kapitole se do£tete o vizi a cíli práce, najdete zde souhrn konkuren£ních °e²ení na trhu v roce 2015 a jejich stru£né zhodnocení.
1.1
Vize a cíl práce
Vizí práce je zjednodu²it a zp°ístupnit tisk ve ²kolním i remním prost°edí. Zp°íjemnit tisk zam¥stnanc·m, tím ºe se nebudou muset d¥lit o po£íta£ p°ipojený k tiskárn¥ a student·m umoºnit tisknout dokumenty ve ²kole. Systém by jednou mohl uspo°it ro£ní náklady na tisk, zp°ehlednit spot°ebu papíru jednotlivými uºivateli a oznamovat pot°ebnou údrºbu administrátorovi. Cílem práce bylo vytvo°it tiskový systém pro ²koly a men²í rmy, tudíº co nejvíce nan£n¥ nenáro£ný. K systému by m¥li mít moºnost p°istupovat zam¥stnanci ²koly i studenti odkudkoliv - tj. z domova, p°i cest¥ do ²koly, ale i ve ²kole. Aby mohli studenti nenosící si po£íta£ pouºívat tento systém, m¥lo by být GUI ovladatelné i z telefonu, systém by m¥l um¥t tisknout dokument v poºadovaný datum a £as, protoºe studenti budou chtít poslat dokument na tiskárnu nap°. ze ²kolního laboratorního po£íta£e, který nebude vedle tiskárny.
1.2
P°ehled konkurence na £eském trhu v roce 2015
V sou£asné dob¥ se na £eském trhu vyskytují 3 tisková °e²ení. První °e²ení SafeCom je modulární a funguje na platform¥ Microsoft serveru, zam¥-
Motlík, 2015/2016
10
ˇ SPŠE JECNÁ
KAPITOLA 1. O PRÁCI
°uje se na monitoring, ú£tování a zabezpe£ení serveru. zdroj: http://www.nuance.com/forbusiness/by-solution/safecom/index.htm Druhé °e²ení SafeQ je velice jednoduché °e²ení, zabývající se zabezpe£ením, kopírováním a p°ená²ením tiskových úloh. zdroj: https://www.ysoft.com/cs/safeq/home T°etí nejznám¥j²í °e²ení je MyQ. Tento systém se zabývá úsporou £asu a náklad·, monitoringem a bezpe£ností tiskových za°ízení a nejvíce se podobá na²í vizi. zdroj: http://www.myqfree.cz/ Inspirovali jsme se funkcemi konkurent· a do na²eho systému jsme se pokusili implementovat funkce jako je obsluha tisku odkudkoliv z internetu, pouºití jakékoliv za°ízení s internetovým prohlíºe£em k tisku, plánovaný tisk a volba tiskárny, na které chceme dokument vytisknout.
Motlík, 2015/2016
11
ˇ SPŠE JECNÁ
ˇ KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU
Kapitola 2 Hypotéza °e²ení tiskového systému V této kapitole jsou popsány dv¥ moºnosti °e²ení, které mohly být pouºity a poºadavky tiskového systému. 1. °e²ení, které bylo navrhnuto na základ¥ existujících program· a funkcí jako je sdílení tiskárny v systému Windows, program pro správu ti²t¥ných dokument· Print Activity Monitor 4.0 a dal²í. Toto °e²ení je sloºité na konguraci a univerzálnost pouºití, navíc bychom nemohli ná² systém obsluhovat odkudkoliv z internetu nebo za jakéhokoliv za°ízení. 2. °e²ení pouºívá jako platformu pro uºivatelské rozhraní webové stránky, protoºe jsou p°ístupné pro kohokoliv, kdo má p°ístup k internetu a také tím odpadá nutnost vytvá°et aplikace pro r·zné platformy. Pro obsluhu tisku dokument· z databáze je pouºit po£íta£ Raspberry PI model B (dále jen RPi), protoºe je levný, malý, úsporný a v základu je vybaven ethernetovým a 4mi USB porty, které by mohli být pouºity pro p°ipojení RPi k internetu a tiskárn¥. Pouºitím RPi navíc odpadá nutnost mít zvlá²tní server pro uºivatelské rozhraní a databázi, protoºe tyto sluºby m·ºeme spustit na RPi. Dále je pro RPi naprogramován obsluºný program v Pythonu, který kontroluje databázi a v p°ípad¥ nutnosti posílá soubory do tiskárny. Tento návrh je vyobrazen na obrázku 2.1, který se nachází na stran¥ 13.
Motlík, 2015/2016
12
ˇ SPŠE JECNÁ
ˇ KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU
Obrázek 2.1: UML diagram návrhu tiskového serveru. 2.1
Funk£ní poºadavky tiskového serveru
Pro tiskový server byly sepsány funk£ní poºadavky, to je seznam poºadavk·, které má systém spl¬ovat, aby byl pouºitelný ve ²kolním prost°edí. 1. Uºivatel se musí p°ihlásit, aby nemohla být tiskárna zneuºívána nebo zahlcována. 2. Uºivatel m·ºe nahrát dokument, zvolit po£et kopií, datum £as a tiskárnu, na které chce dokument vytisknout. Aby uºivatel nemusel posílat více stejných dokument· a nebyl omezován jednou tiskárnou. 3. Uºivatel si m·ºe zobrazit své nahrané dokumenty k tisku. Kv·li p°ehledu uºivatele, aby neposílal k tisku stejný dokument vícekrát. (a) Uºivatel m·ºe odstranit dokument z fronty k tisku, kdyby se uºivatel spletl nebo zjistil ºe dokumenty nepot°ebuje. 4. Uºivatel si m·ºe zobrazit své jiº vyti²t¥né dokumenty, aby m¥l p°ehled jestli uº tyto dokumenty n¥komu dával.
Motlík, 2015/2016
13
ˇ SPŠE JECNÁ
ˇ KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU
(a) Uºivatel m·ºe znovu zadat tisk jiº vyti²t¥ného dokumentu, aby nemusel nahrávat znovu stejný dokument. 5. Uºivatel si m·ºe p°enastavit uºivatelské jméno, vlastní jméno a heslo. Aby si uºivatel lépe pomatoval p°ihla²ovací údaje. 6. Uºivatel se m·ºe odhlásit, aby nemohl n¥kdo jiný vyuºít systém. 7. Administrátor m·ºe to samé jako uºivatel. 8. Administrátor m·ºe p°idat uºivatele a musí mu nastavit jména, heslo a roli. Aby systém mohli vyuºívat i jiní uºivatelé. 9. Administrátor m·ºe zobrazit dokumenty k tisku v²ech uºivatel·, aby mohla být vedena kontrola vyºívatelnosti tiskárny. (a) Administrátor m·ºe odstranit jakýkoliv dokument k tisku. 10. Administrátor m·ºe p°idat kredity uºivateli. 11. Administrátor m·ºe odebrat kredity uºivateli. 12. Administrátor m·ºe p°idat tiskárnu do systému. 13. Administrátor m·ºe odebrat tiskárnu ze systému.
2.2
UseCase funk£ních poºadavk·
Na základ¥ funk£ních poºadavk· byl vytvo°en UseCase diagram 2.2, který se nachází na stran¥ 15. Na tomto diagramu jsou vlevo vyobrazeny dv¥ role (USER a ADMIN), ke kterým jsou p°i°azeny jednotlivé funkce, které jsou p°ístupné pro danou roli. Role ADMIN d¥dí od role USER v²echny jeho funkce, ty se mohou dále rozvíjet (extends), nebo mohou vyºadovat provedení dal²í funkce (include). Tento diagram velmi napomáhá k uv¥dom¥ní si co a jak by m¥lo fungovat.
Motlík, 2015/2016
14
ˇ SPŠE JECNÁ
ˇ KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU
Obrázek 2.2: UseCase funkcí tiskového serveru. 2.3
Nefunk£ní poºadavky na tiskový server
Pro tiskový server byly sepsány nefunk£ní a poºadavky, to je seznam minimálních technických nárok·, které musí být spln¥ny, aby se mohl server pouºívat k tisku. P°i sepisování nefunk£ních poºadavk· se vycházelo z vlastního bádání a zku²eností s tiskem dokument· na Linuxu. 1. Internetové p°ipojení pomocí kabelu UTP a konektoru RJ-45 2. User device (Mobil, Tablet, Notebook) s webovým prohlíºe£em 3. Opera£ní systém Linux Debian min. verze 7.9 (Raspberry Pi Model B) 4. Tiskárna s USB nebo sí´ovým p°ipojením Motlík, 2015/2016
15
ˇ SPŠE JECNÁ
ˇ KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU
5. Python 2.7 na RPi 6. MySQL libmysql 5.5.11 nebo vy²²í na RPi nebo serveru 7. PHP 5.4 nebo vy²²í na RPi nebo serveru 8. LibreOce 3.5.4 nebo vy²²í na RPi 9. Unoconv 0.6 nebo vy²²í na RPi 10. CUPS 2.1 nebo vy²²í na RPi
Motlík, 2015/2016
16
ˇ SPŠE JECNÁ
ˇ KAPITOLA 3. NÁVRH REŠENÍ
Kapitola 3 Návrh °e²ení Návrhy uºivatelského rozhraní, databáze, programové obsluhy a obsluhy tisku dokument· byly navrºeny na základ¥ funk£ních poºadavk·, které naleznete na stran¥ 13 a UseCase obrázek £íslo 2.2 na stran¥ 15. Ke kaºdé z t¥chto £ástí bylo p°istupováno odli²ným zp·sobem, ale základem v²ech návrh· byla hlavní my²lenka, vzdáleného, multiplatformního, plánovaného tisku, tak aby spl¬ovala funk£ní poºadavky na stran¥ 13 v kapitole £íslo 2.1.
3.1
Návrh uºivatelského rozhraní
Graphical User Interface dále jen GUI bylo navrhováno pomocí
MockUp
prototyp· -
https://en.wikipedia.org/wiki/Mockup. P°i grackém návrhu bylo postupováno po funk£ních poºadavcích v kapitole 2.1 na stran¥ 13, kaºdý funk£ní poºadavek by m¥l p°edstavovat jednu uºivatelskou stránku nebo funkci na stránce. Nap°íklad
MockUp
prototyp p°ihla²ovací obrazovky na obrázku £íslo 3.1 na stran¥
19 spl¬uje gracky první funk£ní poºadavek. Na tomto obrázku jsou vid¥t dv¥ textové vstupní pole 1. pro uºivatelské jméno, 2. pro heslo a tla£ítko p°ihlásit. Po p°ihlá²ení se dostaneme na dal²í uºivatelskou stránku,
MockUp
prototyp stránky pro nahrávání
dokument· obrázek £íslo 3.2 na stran¥ 19. Na tomto obrázku se nachází n¥kolik vstupních polích: 1. vstupní pole je textové a slouºí pro uchování názvu dokumentu, který bude nahrán. 2. vstupní pole je £íselné, toto pole slouºí pro zvolení po£tu kopií, které chce uºivatel vytisknout.
Motlík, 2015/2016
17
ˇ SPŠE JECNÁ
ˇ KAPITOLA 3. NÁVRH REŠENÍ
3. pole slouºí pro zvolení data a £asu tisku dokumentu, na tomto poli je v moderních prohlíºe£ích dostupný vybírací kalendá°, který uleh£uje výb¥r p°esného data. 4. pole je nejd·leºit¥j²í slouºí k výb¥ru dokumentu, který chce uºivatel tisknout, z uºivatelského za°ízení. Op¥t je zde po kliknutí pomocný pr·zkumník pro výb¥r správného dokumentu. 5. pole nabízí nainstalované tiskárny v systému, v tomto seznamu m·ºe být i jednoduchý popis nap°íklad umíst¥ní tiskárny nebo nap°íklad to, ºe tiskárna tiskne pouze £ernobíle. Tento design byl zvolen autorem, na základ¥ p°ede²lé zku²enosti autora p°i prohlíºení responzivních web·, kv·li tomu ºe se dá jednodu²e upravit zobrazení pro chytré telefony. Ostatní
MockUp
prototypy zobrazující stránky pro správu dokument· ve front¥, vyti²t¥-
ných dokument· a stránku pro op¥tovný tisk dokumentu naleznete v p°íloze B - Nepouºité obrázky.
3.2
Návrh databáze pro tiskový server
P°i návrhu databáze bylo op¥t postupováno po funk£ních poºadavcích v kapitole 2.1 na stran¥ 13, na rozdíl od návrhu uºivatelského rozhraní nám pro návrh databáze sta£ily první 3 funk£ní poºadavky. Z prvního funk£ního poºadavku (uºivatel se musí p°ihlásit) vyplynulo, ºe v databázi budeme pot°ebovat tabulku uºivatel· s minimáln¥ dv¥ma atributy - uºivatelským jménem a heslem. Z druhého funk£ního poºadavku vyplynuly dv¥ tabulky, 1. tabulka dokument· s minimáln¥ p¥ti atributy - název dokumentu, po£et kopií, datum a £as tisku, cesta k uloºenému souboru a tiskárna. 2. tabulka slouºí pro uchovávání tiskáren, u této tabulky budeme také pot°ebovat minimáln¥ dva atributy - název tiskárny a popis. T°etí funk£ní poºadavek nám p°idal do tabulky dokument· atribut pro stav dokumentu - £ekající, vyti²t¥no. Rela£ní schéma databáze na obrázku 3.3 strana 20 jsme poupravili tak, aby databáze spl¬ovala normalní formy - http://programujte.com/clanek/2008071900normalizace-relacnich-databazi/ a lépe se nám s ní pracovalo.
Motlík, 2015/2016
18
ˇ SPŠE JECNÁ
ˇ KAPITOLA 3. NÁVRH REŠENÍ
Obrázek 3.1:
Obrázek 3.2:
Motlík, 2015/2016
MockUp
MockUp
prototyp p°ihla²ovací obrazovky.
prototyp obrazovky pro nahrávání dokument·.
19
ˇ SPŠE JECNÁ
ˇ KAPITOLA 3. NÁVRH REŠENÍ
Obrázek 3.3: Databázové rela£ní schéma. 3.3
Návrh obsluhy uºivatelského rozhraní a tisku
Pro obsluhu GUI tedy vypisování správných údaj· a ukládání interakce, bylo vhodné pouºít jazyk PHP - http://php.net/docs.php, protoºe s ním m¥l autor uº malé zku²enosti a databázi MySQL - http://dev.mysql.com/doc/ pro uchovávání dat. Pro kaºdou MockUp prototyp, který p°edstavuje jednu uºivatelskou stránku, bude napsán jeden obsluºný PHP script, protoºe kaºdá stránka má trochu jinou funk£nost. Pro opakované funkce bude pouºit také pouze jeden script, který bude do stránky v míst¥ výskytu vloºen metodou PHP include. Protoºe se v tomto systému budou £asto opakovat stejné SQL p°íkazy, byla napsána t°ída s databázovými procedurami pro práci s databázovými úkony za pouºití PDO. Pro obsluhu tisku v Raspberry PI je pouºit jazyk Python - https://docs.python.org/2.7/, který bude pracovat s MySQL databází za pomoci libmysql a na tiskárnu odesílá dokumenty pomocí systému CUPS - https://www.cups.org/. Program, jehoº UML activity diagram je na obrázku 3.4, který se nachází na stran¥ 21 zachycuje pr·b¥h, jakým Python script funguje, program kaºdou minutu kontroluje databázi a pokud zjistí na základ¥ £asu a data ºe se má n¥který dokument vytisknout ode²le ho na tiskárnu a vrátí se ke kontrolování databáze. Motlík, 2015/2016
20
ˇ SPŠE JECNÁ
ˇ KAPITOLA 3. NÁVRH REŠENÍ
Obrázek 3.4: UML activity diagram návrhu fungování scriptu. Toto je k návrhu fungování v²e v následující kapitole uvidíme, jak jsme se návrhem podobali reálnému °e²ení, co jsme museli p°idat nebo upravit.
Motlík, 2015/2016
21
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Kapitola 4 Reálné provedení tiskového serveru V této kapitole si ov¥°íme návrh z p°edchozí kapitoly, formou jeho realizace na skute£ných za°ízeních, jak postupuje uºivatel p°i tisku, informace o pouºitých technologiích a uvidíte srovnání navrºeného systému s konkuren£ními.
4.1
Provedení uºivatelského rozhraní
Pro realizaci uºivatelského rozhraní bylo vyuºito HTML - http://devdocs.io/html/ a CSS - http://devdocs.io/css/, jako podklad p°i kódování a stylování slouºily
MockUp
prototypy. P°íklad takového prototypu m·ºete naleznout na obrázku 3.2 strana 19 nebo v p°íloze C - Nepouºité obrázky. Nejd°íve byla nakódována HTML £ást stránek, jejichº p°íklad m·ºete naleznout na obrázku 4.1 strana 24. Pro jednotlivé vstupy bylo vyuºito moderních HTML5 prvk· - https://www.w3.org/TR/2014/REC-html5-20141028/, které pomáhají uºivateli s výb¥rem a omezením vybíraných dat. Nap°íklad pro výb¥r po£tu kopií byl vyuºit vyuºit
input
input
typu
typu
number
datetime-local
s dolním a horním omezením, pro datum a £as byl
s vlastním formátovaním zobrazených dat, tento
input
nabízí uºivateli jednoduchý kalendá° pro p°ehled datum· se dny a pro volbu tiskárny byl vyuºit jiº star²í input typu select, který zobrazuje seznam dostupných tiskáren. Tato nep°íli² lákavá stránka se gracky vylep²ila pomocí CSS. Bylo p°idáno barevné pozadí, ohrani£ení vstupního formulá°e, zarovnání vstupních prvk·, zvýrazn¥ní tla£ítka a vytvo°ení horní li²ty s informacemi. Výhodou tohoto °e²ení je, ºe pro dv¥ stránky login a upload
byl pouºit jeden a ten samý stylistický kód, pro dal²í stránku waiting bylo moºno
vyuºít £ást stávajícího kódu a £ást kódu p°idat a op¥tovn¥ jej vyuºít u stránky
Motlík, 2015/2016
printed.
22
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Takto nastylovanou stránku naleznete na obrázku 4.2 strana 24, dal²í takovéto obrázky se nachází v p°íloze C - Nepouºité obrázky.
4.2
Provedení databáze
Databáze byla vytvo°ena na základ¥ rela£ního schématu, který je na obrázku £íslo 3.3 na stran¥ 20) za pomoci SQL p°íkaz· a nástroje pro správu databáze HeidiSQL. Jak je vid¥t na schématu, databáze byla p·vodn¥ navrºena pomocí 4 tabulek. Tabulky jsou popsány v kapitole 3.2 na stran¥ 18, ale nap°íklad do tabulky
USER
byl p°idán atribut
hash,
který je pot°ebný pro obsluhu uºivatelského rozhraní, konkrétn¥ p°i ov¥°ování p°ihlá²eného uºivatele. P°i nápadech na vylep²ení systému, které jsou popsány v kapitole 6.1 na stran¥ 32 se databáze rozrostla o tabulku
CREDIT
a tabulku
MAINTENANCE,
tyto tabulky
jsou zde p°ipraveny pro dal²í rozvoj tiskového serveru a zatím nejsou vyuºívány. Av²ak tyto tabulky jsou správn¥ napojené a p°ipravené pro naprogramování obsluhy. Hlavní roli zde hraje tabulka DOCUMENT, která je ve vazb¥ N:1 s tabulkou USER, dále je tabulka
DOCUMENT
propojena s tabulkou
CREDIT
vazbou M:N, to zaji²´uje, ºe
systém bude moci strhávat kredity za vyti²t¥ný dokument a zárove¬ bude vedena evidence historie. Dále zde máme tabulku MAINTENANCE, která bude mít za úkol uchovávat data o údrºb¥ tiskárny, proto je s tabulkami PRINTER a
4.3
USER
ve vazb¥ N:1.
Provedení obsluhy uºivatelského rozhraní
Pro obsluhu uºivatelského rozhraní byl zvolen jazyk PHP, na základ¥ autorovi zku²enosti s programováním v tomto jazyce. Script napsaný v PHP zde za pomoci databáze plní funkci ºivé stránky, napl¬uje ji aktuálními daty. Nap°íklad na obrázku 4.2 strana 24 PHP script doplnil z databáze po£et £ekajících dokument·, po£et vyti²t¥ných dokument·, jméno a p°íjmení uºivatele, seznam s tiskárnami a aktuální datum s £asem. Jiº p°i návrhu databáze bylo rozhodnuto, ºe bude vytvo°ena zvlá²tní databázová vrstva z d·vodu £astého opakování stejných SQL p°íkaz·, tato vrstva má je²t¥ jednu výhodu a to, pokud se zm¥ní struktura databáze, nebude se muset upravovat SQL kód na kaºdé stránce zvlá²´, ale upraví se pouze v databázové t°íd¥. Tato vrstva byla napsána za pomoci £lánku na ITnetwork - [8] a byla upravena tak, aby byly volány funkce, které obsahují p°íslu²ný SQL kód. P°i práci s t¥mito daty prochází Motlík, 2015/2016
23
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Obrázek 4.1: Snímek nakódované stránky HTML bez CSS.
Obrázek 4.2: Snímek stránky upload s CSS.
Motlík, 2015/2016
24
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Obrázek 4.3: Nové rela£ní schéma databáze pro vývoj systému. SQL dotaz dal²ími ov¥°eními, tím se systém vyhýbá SQL injekcím a dal²ím bezpe£nostním problém·m.
4.4
Provedení obsluhy tisku dokument· v RPi
Pro obsluhu tisku dokument· v RPi byl pouºit jazyk Python, protoºe je jednoduchý a uºite£ný i na mén¥ náro£né operace. Podle návrhového obrázku 2.1 na stran¥ 13 by m¥l systém fungovat jednodu²e tak, ºe na základ¥ staºených dat z databáze ode²le lokální soubor na tiskárnu. Bohuºel p°i programování této £ásti se zjistilo, ºe systém obsluhy tisku bude sloºit¥j²í, neº bylo navrhnuto v kapitole 18. Tak jak bylo navrhováno, script je spou²t¥n pomocí systému CRON v na²em p°ípad¥ se script pou²tí kaºdou minutu. P°i spu²t¥ní se script p°ipojí do databáze, ov¥°í zdali je pot°eba tisknout n¥jaký soubor, pokud ne zkusí to znovu za minutu. Pokud ano na£te si adresu s názvem souboru a tu p°edá systému
UNOCONV,
tento systém slouºí pro
p°evod dokument· do PDF a je pouºíván, protoºe bylo p°i laboratorním testování, ºe nelze tisknout word, excel, powerpoint dokumenty. Po p°evodu dokumentu se provede jednoduchá °et¥zcová operace, aby bylo dále moºno pracovat se souborem PDF, z databáze se krom¥ názvu dokumenty získal i po£et kopií a tiskárnu na, které má být dokument vyti²t¥n. Dokument je odeslán, a pokud tiskárna vrátí kladnou zp¥tnou vazbu, provede se
UPDATE
záznamu, atribut
Motlík, 2015/2016
state
se zm¥ní z 0 na 1 a tím se zamezí novému vybrání
25
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Obrázek 4.4: UML activity diagram fungování scriptu. dokumentu k tisku.
4.5
Uºivatelský postup p°i tisku dokumentu a pouºité technologie
V této kapitole se do£tete jak musí uºivatel postupovat pomocí grackého rozhraní, kdyº chce vytisknout, zru²it nebo opakovat tisk. Pro vytisknutí dokumentu, musí uºivatel nav²tívit stránku tiskového systému. Jako první se uºivateli zobrazí stránka, kterou zobrazuje obrázek 4.5, po p°ihlá²ení se uºivateli zobrazí stránka, kterou vidíte na obrázku 4.2 na stran¥ 24, která slouºí pro nahrávání soubor·. Po nahrání souboru se uºivatel m·ºe podívat do fronty £ekajících dokument· obrázek 4.6 a p°ípadn¥ soubor ze své tiskové fronty odstranit. Pokud byl soubor jiº vyti²t¥n, uºivatel m·ºe ze seznamu vyti²t¥ných dokument·, na obrázku 4.7 vytisknout soubor znovu a pomocí nabídky z obrázku 4.8 zvolit podrobnosti tisku. Dal²í snímky obrazovky naleznete v p°íloze C - Nepouºité obrázky. K sestavení tohoto systému byly pouºity následující technologie: HTML, CSS, PHP min. 5.4, Python 2.7, MySQL databáze min. verze 5.6.28, PDO pro práci s databází, Motlík, 2015/2016
26
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Obrázek 4.5: Snímek p°ihla²ovací stránky.
Obrázek 4.6: Snímek stránky s £ekajícími soubory.
Motlík, 2015/2016
27
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Obrázek 4.7: Snímek stránky s vyti²t¥nými soubory.
Obrázek 4.8: Snímek stránky pro op¥tovné vyti²t¥ní souboru.
Motlík, 2015/2016
28
ˇ SPŠE JECNÁ
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU Funkce
Automatická archivace tiskových úloh Automatická instalace ovlada£· Automatická podpora nových model· tiskových za°ízení Limitování tisku Jednoduchá instalace serveru Maximální po£et tiskáren Maximální po£et uºivatel· Odloºený tisk Platforma pracovní stanice Podporovaná platforma serveru Sledování stavu tiskové úlohy Tisk bez ovlada£·, online Webové uºivatelské rozhraní
MyQ - Free
Moje °e²ení
ANO
ANO
NE ANO 11
NE NE
NE NE
∞
ANO NE
∞ ∞
ANO ANO Windows, Linux, Jakákoliv Mac (webové rozhraní) Windows Linux NE ANO NE ANO ANO ANO
Tabulka 4.1: Tabulka zobrazující srovnání mého systému s MyQ - Free (2015) UNOCONV min. 0.6 pro p°evod soubor· do PDF, CRON pro spou²t¥ní scriptu po ur£ité dob¥, CUPS min. 2.1, který se stará o tisk na
4.6
UNIX systémech.
Srovnání tiskového systému s MyQ - Free 2015
Následující tabulka 4.1 na stran¥ 29 zobrazuje srovnání mého systému se systémem MyQ - Free ve verzi 4.3 srovnání prob¥hlo v posledním £tvrtletí roku 2015. Z této tabulky vyplývá, ºe oba systémy nemají automatickou instalaci ovlada£· a limitování tisku, naopak oba systémy nabízejí automatickou podporu nových tiskových za°ízení, neomezený po£et uºivatel·, odloºený tisk a webové uºivatelské rozhraní. Ná² systém, ale nabízí oproti MyQ - Free automatickou archivaci tiskových úloh, neomezený po£et tiskáren MyQ-Free umoº¬uje 11, platformu serveru Linux MyQ-Free vyuºívá Windows, sledování stavu tiskové úlohy a také umoº¬uje tisk z webového rozhraní. Oproti MyQ-Free je ná² systém sloºit¥j²í p°i instalaci, protoºe ve fázi prototypu není vytvo°en instala£ní soubor, který by nainstaloval a nastavil pot°ebné sluºby.
Motlík, 2015/2016
29
ˇ SPŠE JECNÁ
KAPITOLA 5. TESTOVÁNÍ TISKOVÉHO SERVERU
Kapitola 5 Testování tiskového serveru Na serveru byly otestovány v²echny funkce z funk£ních poºadavk· na stran¥ 13 kapitola 2.1, dále se pak testovaly funkce p°ipojení RPi k internetu a k tiskárn¥, funkce staºení dokumentu do RPi a plánovaného vyti²t¥ní. Tiskový server byl testován n¥kolika zp·soby: 1. Technické testování - Testování komponent a jejich kompatibility. 2. Laboratorní testování - Testování funk£nosti jednotlivých funkcí.
5.1
Technické testování
Prvním a základním testováním bylo otestování komponent a jejich vzájemné kompatibility. Bohuºel, jelikoº je nemoºné otestovat v²echny dosud existující USB a sí´ové tiskárny, byly náhodn¥ vybrány 3 naprosto rozdílné tiskárny:
První levná domácí laserová tiskárna od rmy HP (model: LaserJet Pro P1102w). Druhá draº²í domácí multifunk£ní inkoustová tiskárna od rmy Canon (model: MG6200). T°etí draº²í kancelá°ská multifunk£ní laserová tiskárna od rmy Brother (model: HL4020CDW). Na t¥chto tiskárnách byl za pomoci tiskové £ásti systému tiskového serveru vyti²t¥n testovací dokument ve formátu docx (obsah p°iloºeného CD) který obsahoval text s velkými, malými písmeny a písmeny s diakritikou i bez, dále obsahoval tabulku a obrázek.
Motlík, 2015/2016
30
ˇ SPŠE JECNÁ
5.2
KAPITOLA 5. TESTOVÁNÍ TISKOVÉHO SERVERU
Laboratorní testování a výsledek
Tiskový server byl b¥hem vývoje testován, aby se dalo p°esn¥ ur£it, zda spl¬uje kritéria funk£ních poºadavk· 2.1, které najdete na stran¥ 13. Kaºdá nov¥ implementovaná funkce byla ihned otestována. Testování probíhalo následovn¥, pro p°íklad: Tiskový server bude tisknout dokument ve zvoleném £ase a datu. Po implementaci této funkce byl nahrán dokument se zvoleným £asem a datem tisku. Pokud byl dokument s odchylkou 2 minut vyti²t¥n, výstup testování byl kladný - mohlo se pokra£ovat implementací dal²í funkce, pokud ne - výstup testování byl záporný - funkce se musela upravit nebo opravit tak aby spl¬ovala funk£ní poºadavky. P°i testování se odhalilo n¥kolik nedostatk·. Dlouhé zpracovávání vektorových soubor·, o°ezávání rozm¥rných dokument·, zastavení celé fronty v p°ípad¥ problému s jedním dokumentem.
Motlík, 2015/2016
31
ˇ SPŠE JECNÁ
ˇ KAPITOLA 6. SHRNUTÍ NAŠEHO REŠENÍ TISKOVÉHO SERVERU
Kapitola 6 Shrnutí na²eho °e²ení tiskového serveru Tiskový server se hodí pro plánovaný tisk jednoduchých dokument·, ale nehodí se pro tisk rozm¥rných nebo vektorových soubor· ani pro sloºit¥j²í oboustranný tisk, tisk s volbou kvality apod. Tyto podrobnosti byly zji²t¥ny p°i testování, které se nachází na stran¥ 31 v kapitole 5.2.
6.1
Výhody, nevýhody a vylep²ení systému
Hlavním d·vodem, kv·li kterému byl tento systém vytvo°en, je umoºnit uºivatel·m plánovaný tisk ve ²kole. Plánovaný tisk funguje na základ¥ údaj·, které vyplní uºivatel na webové stránce tiskárny. Webová stránka umoº¬uje uºivatel·m poslat úlohu k tisku kdykoliv a kdekoliv. Bohuºel pro nasazení do b¥ºného reºimu není tento systém p°ipraven. Ukázalo se jako pot°ebné moºnost tisknout oboustrann¥, volit kvalitu tisku a dal²í nastavení tiskárny, které tento systém zatím nepodporuje. Systém má velké problémy se zpracováním rozm¥r· v¥t²í neº formát
A4
vytiskne se malá A4 £ást vyst°iºená z velkého formátu.
Tiskový server by se m¥l vylep²it opravou pot°ebných v¥cí jako je zpracovávání vektorových dokument·, dokument· v¥t²ích neº rozm¥r A4 a p°idáním moºnosti nastavení tisku. Rozhodn¥ by m¥la být odstran¥na chyba, která zastaví v²echny ostatní dokumenty v p°ípad¥ dlouhého zpracovávání jednoho dokumentu. Velké budoucí vylep²ení pouºitelnosti shledáváme v p°idání moºnosti monitorování a kreditaci tisku, které by mohlo být v budoucnu rozhodující jak pro ²koly, tak pro malé rmy.
Motlík, 2015/2016
32
ˇ SPŠE JECNÁ
ˇ KAPITOLA 6. SHRNUTÍ NAŠEHO REŠENÍ TISKOVÉHO SERVERU
Záv¥r Tiskový server je funk£ní, m·ºe být vyuºíván pro plánovaný tisk jednoduchých dokument·, ale nehodí se pro tisk rozm¥rných nebo vektorových soubor· ani pro sloºit¥j²í oboustranný tisk, tisk s volbou kvality apod. Nelze ho pokro£ile vyuºívat ve ²kolách a rmách. Protoºe není zabezpe£en proti kolizím p°i dlouhém p°evád¥ní a zatím nelze kontrolovat uºivatele a po£ty jejich výtisk·.
Motlík, 2015/2016
33
ˇ SPŠE JECNÁ
SEZNAM POUŽITÉ LITERATURY
Seznam pouºité literatury [1] The PHP Group, PHP Manual [online] 29.3.2016 [cit. 30.3.2016]. Dostupné z: http://php.net/manual/en/ [2] Python Software Foundation, Python 2.7.11 documentation [online] 21.3.2016 [cit. 30.3.2016]. Dostupné z: https://docs.python.org/2.7/ [3] Apple Inc., Documentation CUPS 2.1 [online] 2007 - 2015 [cit. 30.3.2016]. Dostupné z: https://www.cups.org/documentation.php?VERSION=2.1 [4] W3C,
HTML5
[online]
28.10.2014
[cit.
30.3.2016].
Dostupné
z:
https://www.w3.org/TR/2014/REC-html5-20141028/ [5] PILGRIM, Mark. Pono°me se do Python(u) 3: Dive into Python 3. Praha: CZ.NIC, 2010, 430 s. CZ.NIC. ISBN 978-80-904248-2-1. [6] PILGRIM, Mark. Pono°me se do HTML5. Praha: CZ.NIC, z.s.p.o., 2015, 278 stran. CZ.NIC. ISBN 978-80-905802-6-8. [7] KOFLER, Michael a Bernd ÖGGL. PHP 5 a MySQL 5: pr·vodce webového programátora. Vyd. 1. Brno: Computer Press, 2007, 607 s. CZ.NIC. ISBN 978-80-251-1813-9. [8] 7. díl - Databázový wrapper. ITnetwork.cz [online]. 25.12.2012 [cit. 2016-01-10]. Dostupné z: http://www.itnetwork.cz/php/mvc/objektovy-mvc-redakcni-system-v-phppdo-crud-wrapped/
Motlík, 2015/2016
34
ˇ SPŠE JECNÁ
SEZNAM TABULEK
Seznam tabulek 4.1 Tabulka zobrazující srovnání mého systému s MyQ - Free (2015) . . . . . . 29
Motlík, 2015/2016
35
ˇ SPŠE JECNÁ
SEZNAM OBRÁZKU˚
Seznam obrázk· 1
Obrázek zachycující stav p°ed a po instalaci tiskového systému. . . . . . .
9
2.1 UML diagram návrhu tiskového serveru. . . . . . . . . . . . . . . . . . . . 13 2.2 UseCase funkcí tiskového serveru. . . . . . . . . . . . . . . . . . . . . . . . 15 3.1
MockUp
prototyp p°ihla²ovací obrazovky. . . . . . . . . . . . . . . . . . . . 19
3.2
MockUp
prototyp obrazovky pro nahrávání dokument·. . . . . . . . . . . . 19
3.3 Databázové rela£ní schéma. . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4 UML activity diagram návrhu fungování scriptu. . . . . . . . . . . . . . . . 21 4.1 Snímek nakódované stránky HTML bez CSS. . . . . . . . . . . . . . . . . . 24 4.2 Snímek stránky upload s CSS. . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3 Nové rela£ní schéma databáze pro vývoj systému. . . . . . . . . . . . . . . 25 4.4 UML activity diagram fungování scriptu. . . . . . . . . . . . . . . . . . . . 26 4.5 Snímek p°ihla²ovací stránky. . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.6 Snímek stránky s £ekajícími soubory. . . . . . . . . . . . . . . . . . . . . . 27 4.7 Snímek stránky s vyti²t¥nými soubory. . . . . . . . . . . . . . . . . . . . . 28 4.8 Snímek stránky pro op¥tovné vyti²t¥ní souboru. . . . . . . . . . . . . . . . 28 B.1 MockUp stránky vyti²t¥ných dokument·. . . . . . . . . . . . . . . . . . . . 40 B.2 Snímek stránky vyti²t¥ných dokument·. . . . . . . . . . . . . . . . . . . . 40 B.3 MockUp stránky op¥tovného tisku. . . . . . . . . . . . . . . . . . . . . . . 41 B.4 Snímek stránky op¥tovného tisku. . . . . . . . . . . . . . . . . . . . . . . . 41
Motlík, 2015/2016
36
ˇ SPŠE JECNÁ
SEZNAM OBRÁZKU˚
Seznam pouºitých zkratek a termín· RPi Raspberry PI model B GUI Graphical User Interface CUPS Common Unix Printing System PDO PHP Data Object interface HTML HyperText Markup Language CSS Cascading Style Sheets PHP Personal Home Page nyní Hypertext Preprocessor SQL Structured Query Language PDF Portable Document Format
Motlík, 2015/2016
37
ˇ SPŠE JECNÁ
ˇ ˇ PRÍLOHA A. OBSAH PRILOŽENÉHO CD
P°íloha A Obsah p°iloºeného CD
Motlík, 2015/2016
38
ˇ SPŠE JECNÁ
ˇ PRÍLOHA B. OBRÁZKY NEPOUŽITÉ V PRÁCI
P°íloha B Obrázky nepouºité v práci
Motlík, 2015/2016
39
ˇ SPŠE JECNÁ
ˇ PRÍLOHA B. OBRÁZKY NEPOUŽITÉ V PRÁCI
Obrázek B.1: MockUp stránky vyti²t¥ných dokument·.
Obrázek B.2: Snímek stránky vyti²t¥ných dokument·.
Motlík, 2015/2016
40
ˇ SPŠE JECNÁ
ˇ PRÍLOHA B. OBRÁZKY NEPOUŽITÉ V PRÁCI
Obrázek B.3: MockUp stránky op¥tovného tisku.
Obrázek B.4: Snímek stránky op¥tovného tisku.
Motlík, 2015/2016
41