Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Linux Server Development - SPŠE Jecná
Vývoj tiskového serveru
Dlouhodobá maturitní práceStrední prumyslová škola elektrotechnická, Praha 2, Jecná 30
31. brezna 2016
Autor: Jakub Motlík
E-mail: [email protected]
Trída: C4a
Školní rok: 2015/2016
Vedoucí: Ing. Ondrej Mandík, ING PAED IGIP.
Oponent: Ing. Mgr. Vladimír Vána, CSc.
Autor: Jakub Motlík
Vydáno: 31. b°ezna 2016
Práce byla vydána jako dlouhodobá maturita na SP�E Je£ná.
Práce byla vytvo°ena v rámci projektu LSD SP�E Je£ná.
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 elek-
tronickou 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 po-
moci 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 sys-
tem. 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 9
1 O práci 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Á OBSAH
6 Shrnutí na²eho °e²ení tiskového serveru 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/for-
business/by-solution/safecom/index.htm
Druhé °e²ení SafeQ je velice jednoduché °e²ení, zabývající se zabezpe£ením, kopíro-
vá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í jeMyQ. Tento systém se zabývá úsporou £asu a náklad·, mo-
nitoringem a bezpe£ností tiskových za°ízení a nejvíce se podobá na²í vizi. zdroj: http://www.myq-
free.cz/
Inspirovali jsme se funkcemi konkurent· a do na²eho systému jsme se pokusili imple-
mentovat 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 kon�guraci 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 na-
hrá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 technic-
ký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. LibreO�ce 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 gra�cké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 gra�cky 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 jednodu-
chý 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 do-
kument· 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 - £e-
kají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/2008071900-
normalizace-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: MockUp prototyp p°ihla²ovací obrazovky.
Obrázek 3.2: MockUp prototyp obrazovky pro nahrávání dokument·.
Motlík, 2015/2016 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 input typu number s dolním a horním omezením, pro datum a £as byl
vyuºit input typu datetime-local 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 gra�cky 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 printed.
Motlík, 2015/2016 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 tabulkuMAINTENANCE, která bude mít za úkol uchovávat data
o údrºb¥ tiskárny, proto je s tabulkami PRINTER a USER ve vazb¥ N:1.
4.3 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 state se zm¥ní z 0 na 1 a tím se zamezí novému vybrání
Motlík, 2015/2016 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í gra�cké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 MyQ - Free Moje °e²ení
Automatická archivace tiskových úloh NE ANOAutomatická instalace ovlada£· NE NEAutomatická podpora nových model·tiskových za°ízení ANO ANO
Limitování tisku NE NEJednoduchá instalace serveru ANO NEMaximální po£et tiskáren 11 ∞Maximální po£et uºivatel· ∞ ∞Odloºený tisk ANO ANO
Platforma pracovní staniceWindows, Linux,
MacJakákoliv
(webové rozhraní)Podporovaná platforma serveru Windows LinuxSledování stavu tiskové úlohy NE ANOTisk bez ovlada£·, online NE ANOWebové uºivatelské rozhraní 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 UNIX systémech.
4.6 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, na-
opak 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é kompatibi-
lity. 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: HL-
4020CDW).
Na t¥chto tiskárnách byl za pomoci tiskové £ásti systému tiskového serveru vyti²t¥n tes-
tovací 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Á KAPITOLA 5. TESTOVÁNÍ TISKOVÉHO SERVERU
5.2 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 sou-
bor·, 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 kdy-
koliv 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í vek-
torový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ºitel-
nosti 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 doku-
ment·, 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 kon-
trolovat 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 progra-
má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]. Do-
stupné z: http://www.itnetwork.cz/php/mvc/objektovy-mvc-redakcni-system-v-php-
pdo-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 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