41
Linux Server Development - SPŠE Jeˇ cná Vývoj tiskového serveru Dlouhodobá maturitní práce Stˇ rední pr ˚ umyslová škola elektrotechnická, Praha 2, Jeˇ cná 30 31. bˇ rezna 2016 Autor: Jakub Motlík E-mail: [email protected] rída: C4a Školní rok: 2015/2016 Vedoucí: Ing. Ondˇ rej Mandík, ING PAED IGIP. Oponent: Ing. Mgr. Vladimír Vᡠna, CSc.

Linux Server Development - SPŠE JecnᡠVývoj tiskového serveru

  • 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á.

Zde vloºte o�cá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 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 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