STREDOŠKOLSKÁ ODBORNÁ CINNOST
Obor SOC: 18. Informatika
Vývoj tiskového serveru
Print server developing
Autor: Jakub Motlík
E-mail: [email protected]
Školní rok: 2015/2016
Konzultant: Ing. Ondrej Mandík, ING PAED IGIP.
Škola: Strední prumyslová škola elektrotechnická
Praha 2, Jecná 30
Kraj: Hlavní mesto Praha
Praha 2016
Autor: Jakub Motlík
Vydáno: 24. b°ezna 2016
Práce byla vytvo°ena v rámci projektu LSD SP�E Je£ná.
Práce byla vytvo°ena v souladu s normami:
�SN 01 6910, �SN ISO 690, �SN ISO 2145, �SN ISO 7144, �SN ISO 999
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 a 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 stránkou 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 data-
bá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 and everywhere Sprinting. In this work
you will read about evolving this system from functional, non functional requirements,
across MockUp prototypes, solutions prototypes, real solutionand in the end the review of
system. Very interesting thing 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Á
8 Motlík, 2015/2016
SPŠE JECNÁ OBSAH
Obsah
Úvod 11
1 O práci 13
1.1 Vize a cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 P°ehled konkurence na £eském trhu v roce 2015 . . . . . . . . . . . . . . . 13
2 Hypotéza °e²ení tiskového systému 15
2.1 Funk£ní poºadavky tiskového serveru . . . . . . . . . . . . . . . . . . . . . 15
2.2 Usecase funk£ních poºadavk· . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Nefunk£ní poºadavky na tiskový server . . . . . . . . . . . . . . . . . . . . 18
3 Návrh °e²ení 21
3.1 Návrh uºivatelského rozhraní . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Návrh databáze pro tiskový server . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Návrh obsluhy uºivatelského rozhraní a tisku . . . . . . . . . . . . . . . . . 24
4 Reálné provedení tiskového serveru 27
4.1 Provedení uºivatelského rozhraní . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Provedení databáze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Provedení obsluhy uºivatelského rozhraní . . . . . . . . . . . . . . . . . . . 29
4.4 Provedení obsluhy tisku dokument· v RPi . . . . . . . . . . . . . . . . . . 30
4.5 Uºivatelský postup p°i tisku dokumentu . . . . . . . . . . . . . . . . . . . 31
4.6 Pouºité technologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.7 Srovnání tiskového systému s MyQ - Free v roce 2015 . . . . . . . . . . . . 31
5 Testování tiskového serveru 35
5.1 Zp·sob testování tiskového serveru . . . . . . . . . . . . . . . . . . . . . . 35
Motlík, 2015/2016 9
OBSAH SPŠE JECNÁ
5.2 Technické testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3 Laboratorní testování a výsledek . . . . . . . . . . . . . . . . . . . . . . . . 36
6 Shrnutí tiskového serveru 37
6.1 Výhody, nevýhody a vylep²ení systému . . . . . . . . . . . . . . . . . . . . 37
Záv¥r 39
Seznam pouºité literatury 41
Seznam tabulek 43
Seznam obrázk· 45
Seznam pouºitých zkratek 47
A Obsah p°iloºeného CD 49
B Nepouºité obrázky 51
10 Motlík, 2015/2016
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. nebo t°ídy.
Motlík, 2015/2016 11
OBSAH SPŠE JECNÁ
Obrázek 1: Obrázek zachycující stav p°ed a po instalaci tiskového systému.
12 Motlík, 2015/2016
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 stu-
dent·m umoºnit tisknout dokumenty ve ²kole. Systém by 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, proto
by m¥l systém um¥t tisknout dokument v poºadovaný datum a £as.
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¥-
°uje se na monitoring, ú£tování a zabezpe£ení serveru.
Druhé °e²ení SafeQ je velice jednoduché °e²ení, zabývající se zabezpe£ením, kopíro-
Motlík, 2015/2016 13
KAPITOLA 1. O PRÁCI SPŠE JECNÁ
váním a p°ená²ením tiskových úloh.
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.
14 Motlík, 2015/2016
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 dva návrhy °e²ení 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²í.
2. °e²ení bylo navrºeno tak, ºe jako platformu pro uºivatelské rozhraní by se mohli
vyuºít webové stránky spojené s databází, 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 bylo navrºeno pouºít po£íta£,
nap°íklad Raspberry PI model B (dále jen RPi), protoºe je levný, malý, nenáro£ný,
ú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 by navíc mohla
odpadnout i 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 bylo navrhnuto pro RPi naprogramovat
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¥ 16.
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í.
Motlík, 2015/2016 15
KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU SPŠE JECNÁ
Obrázek 2.1: UML diagram návrhu tiskového serveru.
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.
(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.
16 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU
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 obrázek 2.2, který se nachází na stran¥
18. Na tomto obrázku 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).
Motlík, 2015/2016 17
KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU SPŠE JECNÁ
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 hard-
warových nárok·, které musí být spln¥ny, aby byl server pouºitelný. P°i sepisování ne-
funk£ních poºadavk· se vycházelo ze zku²eností s tiskem dokument· na Linuxu.
1. Internetové p°ipojení
2. User device (Mobil, Tablet, Notebook) s webovým prohlíºe£em
3. Stroj se systémem Linux Debian 7.9 (Raspberry Pi Model B)
4. Tiskárna s USB nebo sí´ovým p°ipojením
18 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU
5. Python 2.7
6. MySQL libmysql 5.5.11
7. PHP 5.4
8. LibreO�ce 3.5.4
9. Unoconv 0.6
10. CUPS 2.1
Motlík, 2015/2016 19
KAPITOLA 2. HYPOTÉZA REŠENÍ TISKOVÉHO SYSTÉMU SPŠE JECNÁ
20 Motlík, 2015/2016
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· strana 15 a usecase (obrázek 2.2 na stran¥
18).
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, co má tento systém um¥t (Funk£ní poºadavky - strana 15
kapitola 2.1).
3.1 Návrh uºivatelského rozhraní
GUI bylo navrhováno pomocí MockUp prototyp·. P°i gra�ckém návrhu bylo postupo-
váno po funk£ních poºadavcích (kapitola 2.1 strana 15), 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, obrázek 3.1 na stran¥ 23 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 3.2 na stran¥ 23). 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 21
KAPITOLA 3. NÁVRH REŠENÍ SPŠE JECNÁ
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 s responzivními
weby, kv·li tomu ºe se dá jednodu²e upravit na responzivní. 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 (kapitola 2.1 strana
15), 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 mini-
má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 doku-
mentu - £ekající, vyti²t¥no. Rela£ní schéma databáze na obrázku 3.3 strana 24 jsme
poupravili tak, aby databáze spl¬ovala normaliza£ní formy a lépe se nám s ní pracovalo.
22 Motlík, 2015/2016
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 23
KAPITOLA 3. NÁVRH REŠENÍ SPŠE JECNÁ
Obrázek 3.3: Databázové rela£ní schéma.
3.3 Návrh obsluhy uºivatelského rozhraní a tisku
Pro obsluhu uºivatelského rozhraní bylo navrhnuto pouºití jazyka PHP a MySQL data-
báze pro uchovávání dat. Bylo rozhodnuto, ºe pro kaºdý MockUp prototyp, který p°edsta-
vuje jednu uºivatelskou stránku, bude napsán jeden obsluºný PHP script, 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, bylo rozhodnuto o napsání t°ídy s funkcemi pro práci s jednotlivými databázovými
úkony za pouºití PDO.
Pro obsluhu tisku v Raspberry PI bylo navrºeno pouºít jazyk Python, který bude
pracovat s MySQL databází za pomoci libmysql a na tiskárnu bude odesílat dokumenty
pomocí systému CUPS. Program, jehoº vývojový diagram je na obrázku 3.4, který se
nachází stran¥ 25 zachycuje pr·b¥h, jakým by m¥l fungovat (program neustále 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).
24 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 3. NÁVRH REŠENÍ
Obrázek 3.4: Vývojový diagram pro práci scriptu.
Motlík, 2015/2016 25
KAPITOLA 3. NÁVRH REŠENÍ SPŠE JECNÁ
26 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Kapitola 4
Reálné provedení tiskového serveru
V této kapitole se do£tete, jak reáln¥ systém funguje, jak postupuje uºivatel p°i tisku,
informace o pouºitých technologiích a uvidíte srovnání tohoto systému s konkuren£ními.
4.1 Provedení uºivatelského rozhraní
Pro realizaci uºivatelského rozhraní bylo vyuºito HTML a 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 23 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 28. Pro jed-
notlivé vstupy bylo vyuºito moderních HTML5 prvk·, 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 num-
ber 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.
Takto nastylovanou stránku naleznete na obrázku 4.2 strana 28, dal²í takovéto obrázky
se nachází v p°íloze C - Nepouºité obrázky.
Motlík, 2015/2016 27
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU SPŠE JECNÁ
Obrázek 4.1: Snímek nakódované stránky HTML bez CSS.
Obrázek 4.2: Snímek stránky upload s CSS.
28 Motlík, 2015/2016
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.
4.2 Provedení databáze
Databáze byla vytvo°ena na základ¥ rela£ního schématu (obrázek 3.3 na stran¥ 24) za
pomoci SQL p°íkaz· a nástroje pro správu databáze HeidiSQL. Jak je vid¥t na schématu,
databáze byla vytvo°ena pomocí 4 tabulek. Tabulky jsou popsány v kapitole 3.2 na stran¥
22, 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 se
databáze rozrostla o tabulku CREDIT a tabulku MAINTENANCE, tyto tabulky jsou
zde p°ipraveny pro dal²í rozvoj tiskového serveru a nejsou zatím nijak 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 a za vyti²t¥ný dokument a zárove¬ bude vedena
evidence historie. Dále tu máme tabulku MAINTENANCE, která má 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, protoºe je pom¥rn¥ nenáro£ný
na server i pro programování. PHP zde za pomoci databáze plní funkci ºivé stránky,
Motlík, 2015/2016 29
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU SPŠE JECNÁ
napl¬uje ji aktuálními daty. Nap°íklad na obrázku 4.2 strana 28 PHP doplnilo 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, ºe pokud se zm¥ní struktura databáze, bude se muset kód upravovat jen jednou a ne
vícekrát jako v p°ípad¥ pouºití SQL kódu na kaºdé stránce.
Tato vrstva byla napsána za pomoci £lánku na ITnetwork - citace [4] 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í 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, bohuºel ob£as je nep°ehledný a ²patn¥ se v n¥m hle-
dají chyby. Podle návrhového obrázku 2.1 na stran¥ 16 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.
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í
dokumentu k tisku.
30 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
4.5 Uºivatelský postup p°i tisku dokumentu
Pro vytisknutí dokumentu, musí uºivatel nav²tívit stránku tiskového systému. Jako první
se uºivateli zobrazí stránka viz. obrázek 4.4, po p°ihlá²ení se uºivateli zobrazí stránka,
kterou vidíte na obrázku 4.2 na stran¥ 28, která slouºí pro nahrávání soubor·. Po nahrání
souboru se uºivatel m·ºe podívat do £ekajících dokument· 4.5 a p°ípadn¥ soubor odstranit
ze své fronty. Pokud byl soubor jiº vyti²t¥n, m·ºe uºivatel z p°ehledu vyti²t¥no obrázek
4.6 dát znovu soubor k tisku pomocí nabídky z obrázku 4.7. Dal²í snímky obrazovky
m·ºete naleznete v p°íloze C - Nepouºité obrázky.
4.6 Pouºité technologie
K sestavení tohoto systému byly pouºity následující technologie: HTML, CSS, PHP, Py-
thon, MySQL databáze, PDO pro práci s databází, UNOCONV pro p°evod soubor· do
PDF, CRON pro spou²t¥ní scriptu po ur£ité dob¥, CUPS, který se stará o tisk na UNIX
systémech.
4.7 Srovnání tiskového systému s MyQ - Free v roce
2015
Následující tabulka (4.1 na stran¥ 34) 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 vy-
plý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í. Tento systém, ale nabízí oproti
MyQ - Free automatickou archivaci tiskových úloh, neomezený po£et tiskáren (MyQ-Free:
11), platformu serveru Linux (MyQ-Free: Windows), sledování stavu tiskové úlohy a také
umoº¬uje online tisk. Oproti MyQ-Free je tento systém sloºit¥j²í p°i instalaci.
Motlík, 2015/2016 31
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU SPŠE JECNÁ
Obrázek 4.4: Snímek p°ihla²ovací stránky.
Obrázek 4.5: Snímek stránky s £ekajícími soubory.
32 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU
Obrázek 4.6: Snímek stránky s vyti²t¥nými soubory.
Obrázek 4.7: Snímek stránky pro op¥tovné vyti²t¥ní souboru.
Motlík, 2015/2016 33
KAPITOLA 4. REÁLNÉ PROVEDENÍ TISKOVÉHO SERVERU SPŠE JECNÁ
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)
34 Motlík, 2015/2016
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¥ 15 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í.
5.1 Zp·sob testování tiskového serveru
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.2 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).
Motlík, 2015/2016 35
KAPITOLA 5. TESTOVÁNÍ TISKOVÉHO SERVERU SPŠE JECNÁ
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.
5.3 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¥ 15. 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.
36 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 6. SHRNUTÍ TISKOVÉHO SERVERU
Kapitola 6
Shrnutí 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.
6.1 Výhody, nevýhody a vylep²ení systému
Hlavní a podstatnou v¥cí, kv·li které byl tento systém vytvo°en, je umoºnit uºivatel·m
plánovaný tisk a také ho zp°ístupnit. Plánovaný tisk funguje na základ¥ údaj·, které vyplní
uºivatel na webové stránce tiskárny. Webová stránka tiskárny zp°ístup¬uje uºivatel·m
tiskárnu odkudkoliv a kdykoliv.
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 vektorových
dokument· (obvyklá doma zpracování: 5 minut) a neporadí si s rozm¥ry v¥t²í neº formát
A4 v²e ostatní je o°íznuto.
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é vylep²ení pouºitelnosti shledá-
váme v p°idání moºnosti monitorování a kreditování tisku, které by mohlo být rozhodující
jak pro ²koly, tak pro malé �rmy.
Motlík, 2015/2016 37
KAPITOLA 6. SHRNUTÍ TISKOVÉHO SERVERU SPŠE JECNÁ
38 Motlík, 2015/2016
SPŠE JECNÁ KAPITOLA 6. SHRNUTÍ 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 nelze kontrolovat
uºivatele a jejich po£ty výtisk·.
Motlík, 2015/2016 39
KAPITOLA 6. SHRNUTÍ TISKOVÉHO SERVERU SPŠE JECNÁ
40 Motlík, 2015/2016
SPŠE JECNÁ SEZNAM POUŽITÉ LITERATURY
Seznam pouºité literatury
[1] 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.
[2] 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.
[3] 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.
[4] 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 41
SEZNAM POUŽITÉ LITERATURY SPŠE JECNÁ
42 Motlík, 2015/2016
SPŠE JECNÁ SEZNAM TABULEK
Seznam tabulek
4.1 Tabulka zobrazující srovnání mého systému s MyQ - Free (2015) . . . . . . 34
Motlík, 2015/2016 43
SEZNAM TABULEK SPŠE JECNÁ
44 Motlík, 2015/2016
SPŠE JECNÁ SEZNAM OBRÁZKU
Seznam obrázk·
1 Obrázek zachycující stav p°ed a po instalaci tiskového systému. . . . . . . 12
2.1 UML diagram návrhu tiskového serveru. . . . . . . . . . . . . . . . . . . . 16
2.2 Usecase funkcí tiskového serveru. . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 MockUp prototyp p°ihla²ovací obrazovky. . . . . . . . . . . . . . . . . . . . 23
3.2 MockUp prototyp obrazovky pro nahrávání dokument·. . . . . . . . . . . . 23
3.3 Databázové rela£ní schéma. . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Vývojový diagram pro práci scriptu. . . . . . . . . . . . . . . . . . . . . . 25
4.1 Snímek nakódované stránky HTML bez CSS. . . . . . . . . . . . . . . . . . 28
4.2 Snímek stránky upload s CSS. . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Nové rela£ní schéma databáze pro vývoj systému. . . . . . . . . . . . . . . 29
4.4 Snímek p°ihla²ovací stránky. . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.5 Snímek stránky s £ekajícími soubory. . . . . . . . . . . . . . . . . . . . . . 32
4.6 Snímek stránky s vyti²t¥nými soubory. . . . . . . . . . . . . . . . . . . . . 33
4.7 Snímek stránky pro op¥tovné vyti²t¥ní souboru. . . . . . . . . . . . . . . . 33
B.1 MockUp stránky vyti²t¥ných dokument·. . . . . . . . . . . . . . . . . . . . 52
B.2 Snímek stránky vyti²t¥ných dokument·. . . . . . . . . . . . . . . . . . . . 52
B.3 MockUp stránky op¥tovného tisku. . . . . . . . . . . . . . . . . . . . . . . 53
B.4 Snímek stránky op¥tovného tisku. . . . . . . . . . . . . . . . . . . . . . . . 53
Motlík, 2015/2016 45
SEZNAM OBRÁZKU SPŠE JECNÁ
46 Motlík, 2015/2016
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 47
SEZNAM OBRÁZKU SPŠE JECNÁ
48 Motlík, 2015/2016
SPŠE JECNÁ PRÍLOHA A. OBSAH PRILOŽENÉHO CD
P°íloha A
Obsah p°iloºeného CD
Motlík, 2015/2016 49
PRÍLOHA A. OBSAH PRILOŽENÉHO CD SPŠE JECNÁ
50 Motlík, 2015/2016
SPŠE JECNÁ PRÍLOHA B. NEPOUŽITÉ OBRÁZKY
P°íloha B
Nepouºité obrázky
Motlík, 2015/2016 51
PRÍLOHA B. NEPOUŽITÉ OBRÁZKY SPŠE JECNÁ
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·.
52 Motlík, 2015/2016
SPŠE JECNÁ PRÍLOHA B. NEPOUŽITÉ OBRÁZKY
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 53