Mendelova univerzita v Brně Provozně ekonomická fakulta
Informační systém Mezinárodního studentského klubu ISC MZLU v Brně Bakalářská práce
Vedoucí práce:
Ján Hazucha
Ing. Michael Štencl
Brno 2010
Rád bych touto cestou poděkoval Ing. Michaelu Štenclovi za odborné vedení, ochotu a cenné rady a připomínky, které mi poskytl při zpracování této bakalářské práce.
Prohlašuji, že jsem tuto bakalářskou práci a informační systém, který je cílem této práce, vypracoval samostatně s použitím uvedených zdrojů.
V Brně, dne 11. května 2010
....................................................
4
Abstract Hazucha, J. Information system of International student club ISC MZLU in Brno. Bachelor thesis. Brno, 2010. The bachelor thesis deals with the analysis, design and implementation of information system for the International Student Club of Mendel University in Brno. Information system is implemented based on the analysis of data flows within the ISC MENDELU and the requirements of management. keywords ISC MENDELU, information system, PHP, MySQL, Buddysystem
Abstrakt Hazucha, J. Informační systém Mezinárodního studentského klubu ISC MZLU v Brně. Bakalářská práce. Brno, 2010. Bakalářská práce se zabývá analýzou, návrhem a implementací informačního systému pro Mezinárodní studentský klub Mendelovy univerzity v Brně. Informační systém je implementován na základě analýzy informačních toků uvnitř ISC MENDELU a podle požadavků vedení. klíčová slova ISC MENDELU, informační systém, PHP, MySQL, Buddysystem
5
OBSAH
Obsah 1 Úvod
7
2 Cíl a metodika práce 2.1 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Metodika práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 9 9
3 Současný stav 10 3.1 Požadavky na informační systém . . . . . . . . . . . . . . . . . . . . 10 4 Volba technologií a programových prostředků 4.1 Výběr webového serveru . . . . . . . . . . . . . . . 4.1.1 Apache HTTP Server . . . . . . . . . . . . . 4.2 Výběr programovacího jazyka . . . . . . . . . . . . 4.2.1 Perl . . . . . . . . . . . . . . . . . . . . . . 4.2.2 PHP . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Python . . . . . . . . . . . . . . . . . . . . . 4.2.4 Srovnání uvedených programovacích jazyků 4.3 Výběr databázového systému . . . . . . . . . . . . 4.3.1 MySQL . . . . . . . . . . . . . . . . . . . . 4.3.2 PostgreSQL . . . . . . . . . . . . . . . . . . 4.3.3 Srovnání uvedených databázových systémů .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
12 12 13 13 13 14 15 15 16 16 17 18
5 Metody analýzy a návrhu 19 5.1 Obsah strukturovaných metod . . . . . . . . . . . . . . . . . . . . . . 19 6 Návrh informačního systému 6.1 Kontextový diagram . . . . . . . . . . . 6.2 Systémový diagram . . . . . . . . . . . . 6.2.1 Proces ISC members . . . . . . . 6.2.2 Proces Buddysystem . . . . . . . 6.2.3 ERD informačního systému ISISC 7 Informační systém ISISC 7.1 Architektura aplikace . . . . . . . . . . . 7.2 Uživatelé informačního systému . . . . . 7.2.1 Role . . . . . . . . . . . . . . . . 7.2.2 Uživatelské účty . . . . . . . . . . 7.3 Nástěnka . . . . . . . . . . . . . . . . . . 7.4 Evidence členů ISC MENDELU . . . . . 7.5 Buddysystem . . . . . . . . . . . . . . . 7.5.1 Systém semestrů v Buddysystemu 7.5.2 Systém přiřazování . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
. . . . . . . . .
. . . . .
21 21 23 26 26 27
. . . . . . . . .
29 29 29 29 30 30 31 31 32 33
6
OBSAH
7.6
7.7
Zabezpečení informačního systému 7.6.1 Zabezpečení přenosu . . . . 7.6.2 Zabezpečení vstupů . . . . . Náklady na informační systém . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
33 33 34 34
8 Diskuse
36
9 Závěr
37
10 Seznam použitých zdrojů
38
Přílohy
40
A Náhledy aplikace
41
B Elektronické přílohy
44
1
1
ÚVOD
7
Úvod
Mezinárodní studentský klub Mendelovy univerzity, o. s. (dále jen „ISC MENDELUÿ) je nezisková organizace tvořená studenty Mendelovy univerzity, která vznikla dne 4. 10. 2007 jako občanské sdružení zápisem na ministerstvu vnitra. Její původní název Mezinárodní studentský klub Mendelovy zemědělské a lesnické univerzity, o. s. byl změněn 1. 1. 2010 v souladu se změnou názvu univerzity. Hlavním cílem ISC MENDELU je vytvoření mezinárodně otevřené komunity studentů, která obohatí vzdělávací proces naší univerzity. Pro naplňení tohoto cíle je jednou z hlavních činností ISC MENDELU realizace tzv. Buddy programu. Ten vzniknul za účelem pomoci zahraničním studentům domácími studenty. Systém přiřazování domácích studentů zahraničním se nazývá Buddysystem. Domácí studenti, tzv. buddies, pomáhají svým zahraničním svěřencům zejména na začátku jejich pobytu s aklimatizací v České republice a seznamují je se studiem na Mendelově univerzitě. Podle stanov klubu, sepsaných dne 1. 10. 2007, je složení vedení ISC MENDELU následující: • Chairman je v čele klubu, zadává týmům nové projekty a komunikuje s rektorátem. • Vice chairman zastupuje chairmana v jeho nepřítomnosti a vykonává úkoly jím přidělené. • Treasurer eviduje všechny doklady, písemnosti a cennosti klubu. Vede také účetnictví. ISC MENDELU je dále členěno na osm týmů. Každý tým vede manažer a může pod sebou mít libovolný počet členů. Složení týmů je v současné době následující: • Public relations team (dále jen „PRÿ) propaguje ISC MENDELU a plánované akce, stará se o jednotný vizuální styl klubu. • Human resources team (dále jen „HRÿ) je zodpovědný za Buddy program. Získává z řad studentů nové členy. • Event team plánuje a organizuje akce pro zahraniční studenty. • Administration team (dále jen „Adminÿ) obstarává administrativní stránky klubu a personálně zajišťuje otevírací hodiny.
1
ÚVOD
8
• Knowledge team analyzuje informace o činnosti jednotlivých týmech a uchovává je pro nástupce. Vede evidenci všech členů ISC MENDELU a prezentuje spolu s HR týmem klub budoucím členům. • International relations team (dále jen „IRÿ) komunikuje s ostatními studentskými kluby a sekcemi ESN (Erasmus Student Network). • Fundraising je zodpovědný za zisk finančních prostředků pro klub, hledá nove sponzory a udržuje vztahy s nimi. • Information technology team (dále jen „IT ÿ) spravuje webové stránky a techniku v kanceláři ISC MENDELU. Díky dvouletým zkušenostem, získaných jako člen tohoto klubu, jsem měl příležitost seznámit se s principy fungování celého klubu. V rámci konzultací s vedením bylo zjištěno, že existuje mnoho procesů, které pro efektivnější zpracování vyžadují zavedení informačního systému.
2
CÍL A METODIKA PRÁCE
2 2.1
9
Cíl a metodika práce Cíl práce
Cílem této práce je navrhnout a implementovat informační systém pro pokrytí klíčových činností a procesů v ISC MENDELU podle požadavků jednotlivých členů a vedení klubu. Systém má funkčností pokrývat nejprimárnější potřeby klubu, musí být lehce použitelný a odkudkoli dostupný. Součástí této práce bude i základní vyhodnocení nákladů na navržený informační systém.
2.2
Metodika práce
Pro naplnění výše uvedeného cíle je celé řešení rozděleno do několika částí. V první části budou popsány a porovnány jednotlivé technologie připadající v úvahu pro realizaci informačního systému. Na základě každého porovnání budou zvoleny nejvhodnější technologie, které budou použity v následujících částech. Poté bude provedena analýza informačních toků uvnitř organizace. Její výsledky budou popsány a přehledně shrnuty a znázorněny v odpovídajících modelech. Na základě poznatků z analýzy v syntéze s požadavky samotného ISC MENDELU budou implementovány ty části systému, které jsou pro Mezinárodní studentský klub Mendelovy univerzity klíčové. Výsledný systém bude nakonec popsán z funkčního a implementačního hlediska a bude nastíněn základní přehled nákladů na zrealizovaný informační systém.
3
SOUČASNÝ STAV
3
10
Současný stav
Jako hlavní problém se jeví fakt, že v ISC MENDELU není momentálně zaveden žádný informační systém, který by usnadnil a zpřehlednil některé činnosti. Mnoho úkonů je prováděno pomocí papírových seznamů se jmény. Tyto seznamy nemají žádnou konkrétně definovanou strukturu a nejsou nijak uspořádány, neexistuje zkrátka žádná oficiální evidence. Existují seznamy v tabulkách programu Excel, což ale podle lidí, kteří s nimi pracují, také není optimální řešení. A nejedná se pouze o evidenci členů samotného klubu. Studenty, kteří chtějí dobrovolně pomáhat zahraničním studentům, buddies, a samotné zahraniční studenty je také potřeba evidovat a pracovat s nimi v rámci Buddysystemu. Množství členů klubu a studentů, přijíždějících ze zahraničí na studijní pobyty navíc neustále roste. Vznik požadavku na zavedení informačního systému je tedy logickým vyústěním rozvoje ISC MENDELU.
3.1
Požadavky na informační systém
Po konzultaci s vedením vyplynuly tři v současné době nejvíce důležité úkoly: • zhotovit aplikaci pro evidenci členů ISC MENDELU, • usnadnit komunikaci mezi jednotlivými členy klubu, • zrealizovat podpůrnou aplikaci pro Buddysystem. Aplikace pro evidenci členů bude sloužit pro správu členů ISC MENDELU. Budou se evidovat všechny informace z přihlášky, kterou každý člen vyplnil. Takto budou informace o jednotlivých členech centralizované a snadno dostupné pro všechny uživatele systému. Usnadnit komunikaci uvnitř klubu by měla aplikace, pomocí které bude možno rychle a snadno předávat informace a poznámky ostatním týmům, přičemž tyto informace se budou zobrazovány všem členům. Systém, který bude evidovat všechny buddies a zahraniční studenty, zefektivní práci HR týmu. Buddies bude možno přiřazovat k zahraničním studentům na základě několika kritérií. HR manažer a jeho tým specifikoval systém přiřazování buddies k zahraničním studentům následovně: • z důvodu nižšího počtu buddies je možné k jednomu buddymu přiřadit více, než jednoho zahraničního studenta,
3
SOUČASNÝ STAV
11
• nejvyšší prioritu přiřazení mají buddies, kteří jsou nováčky, nikdy k nim tedy nebyl přidělen žádný zahraniční student, • výsledné páry by měly vždy být, pokud je to možné, v kombinaci muž-žena, • pokud má konkrétní buddy nějaké preference a je-li to možné, je mu vyhověno, • v případě, že buddy preferuje konkrétní zemi, je mu opět vyhověno, pokud to umožňuje situace, • po zohlednění všech výše uvedených kritérií jsou buddies přiřazeni zbývajícím zahraničním studentům.
4
VOLBA TECHNOLOGIÍ A PROGRAMOVÝCH PROSTŘEDKŮ
4
12
Volba technologií a programových prostředků
Výsledný informační systém bude realizován v podobě webové aplikace. Každá aplikace tohoto typu běží na webovém serveru a obsahuje skripty napsané v určitém programovacím jazyce, který webový server podporuje, a databázový systém, který slouží k ukládání dat. Nejdůležitějším kritériem při volbě technologií bude cena. Požadavek ISC MENDELU totiž byl, aby celý informační systém byl co nejlevnější. Pro realizaci budou tedy velice vhodné projekty, které jsou distribuovány pod některou z open source licencí. Těchto projektů je velké množství a jsou zdarma. V následujícím textu jsou tedy popsány možnosti připadající v úvahu u každé ze tří složek budoucí webové aplikace. Pořadí výběru technologií pro jednotlivé složky není náhodné. Jako první bude zvolen webový server, aby se tak zúžila množina vhodných možností pro volbu programovacího jazyka a databázového systému. Poté bude pouze vybrána kombinace programovacího jazyka a databázového systému, které spolu poběží na zvoleném webovém serveru.
4.1
Výběr webového serveru
Webových serverů, distribuovaných pod open source licencí je velké množství. Problémem ale u mnoha projektů je, že se jedná o minimalistické programy s maximálním ohledem na výkon a velice nízkým množstvím funkcí a podporovaných technologií. (Aulds, 2003) V případě webového serveru je velmi důležité ještě jedno kritérium - dostupnost dané aplikace u komerčních webhostingů. Tři nejlépe hodnocené webhostingy (průměr za poslední rok)1 jsou následující: • BlueBoard (http://hosting.blueboard.cz/), • Český hosting (http://www.cesky-hosting.cz/), • ONEbit (http://www.onebit.cz/). Všechny tři uvedené hostingy mají jedno společné - využívají webový server Apache HTTP Server. Vzhledem k tomu, že tyto webhostingové společnosti nenabízejí jiné alternativy na poli webového serveru a nasazení informačního systému na školní server, který by byl zdarma, je v okamžiku psaní této bakalářské práce nejisté, 1
http://www.hostingy.cz, stav ke dni 12. 3. 2010
4
VOLBA TECHNOLOGIÍ A PROGRAMOVÝCH PROSTŘEDKŮ
13
bude potřeba zvolit komerční alternativu. Bez srovnávání s jinými webovými servery byl tedy zvolen Apache HTTP Server. 4.1.1
Apache HTTP Server
Apache je webový server vyvíjený skupinou dobrovolníků z celého světa. Celý projekt je zastřešen společností ASF (The Apache Software Foundation). První oficiální verze nesla označení 0.6.2 a na veřejnost byla uvolněna roku 1995. Tato první verze vycházela z webového serveru httpd 1.3, který vyvíjela organizace NCSA (National Center for Supercomputing Applications) na univerzitě v Illinois. (ASF, 2009) Jedná se o multiplatformní produkt. Běží-li ale tato aplikace pod operačním systémem z rodiny Unix, je značně rychlejší, než pod operačním systémem Windows. Apache HTTP Server je snadně rozšiřitelný. Existují moduly přímo od Apache Software Foundation, ale také moduly dalších výrobců. Je tedy možnost získat skutečně velké množství přídavných funkcí. (Pošmura, 2002) Produkt je vydáván pod vlastním typem licence, která nese název Apache License, aktuálně ve verzi 2.0. Jedná se o verzi licence svobodného softwaru. Je tedy povoleno tento webový server distribuovat, modifikovat a třeba i znovu distribuovat již modifikovanou verzi v rámci podmínek licence. (ASF, 2009) Aktuální verze je 2.2.15. Ve druhé verzi byla vylepšena rychlost a stabilita na neunixových platformách, přidána podpora IPv6 či zavedeno nativní kódování utf-8 pro názvy souborů na platformě Windows NT.
4.2
Výběr programovacího jazyka
U programovacího jazyka je důležitým kritériem dostupnost kvalitní dokumentace. Programovací jazyky dnes totiž nabízí velké množství funkcí, je tedy potřeba snadná a rychlá orientace v nich. Aplikace napsané ve zvoleném jazyce by měly být multiplatformní a jazyk musí být bez problémů podporován Apache HTTP Serverem. Po zvážení výše uvedených kritérií byla vybrána užší skupina tří programovacích jazyků, které jsou dále stručně popsány a následně je jeden z nich vybrán. 4.2.1
Perl
Programovací jazyk Perl (Practical Extraction and Report Language nebo také Pathologicaly Eclectic Rubbish Lister) je distribuován pod GNU General Public
4
VOLBA TECHNOLOGIÍ A PROGRAMOVÝCH PROSTŘEDKŮ
14
License, jedná se tedy o open source projekt. Jeho autorem je Larry Wall. Vznikl v roce 1986 jako náhrada pro tehdy nedostačující prostředky pro zpracování textu a dálkové řízení počítačů. O rok později byl zveřejněn interpret jazyka a Perl ve verzi 1 se stal plnohodnotným programovacím jazykem. (Dařena, 2005) Druhá a třetí verze vylepšovaly práci s regulárními výrazy a binárními datovými proudy. Důležitou změnou bylo zveřejnění referenční příručky jazyka známé pod názvem Programujeme v Perlu. Perl byl v této době ve 4. verzi. Vyšší číslo však neznačí změny v jazyce, ale vznik uvedené knihy. (Wikipedia, 2010) Budeme-li jmenovat hlavní výhody jazyka Perl, je potřeba zmínit hlavně jednoduchost jazyka, která ale neznemožňuje psaní velkých projektů, či propracovanou podporu regulárních výrazů. Perl je snadno rozšiřitelný pomocí více než 17 000 modulů, které jsou sdruženy ve sbírce nazývané CPAN (Comprehensive Perl Archive Network). (Perl.org, 2010) V současné době se používá pátá verze jazyka Perl, která umožňuje objektové programování, podporuje programovaní ve více vláknech a je rozšiřitelná samostatnými moduly. Aktuální verze je 5.10.1. 4.2.2
PHP
Jazyk PHP (PHP Hypertext Preprocessor) vznikl jako sada skriptů napsaných v jazyce Perl. Autorem skriptů byl Rasmus Lerdorf a napsal je v roce 1994 aby mohl monitorovat, kdo nahlížel na jeho výsledky na internetu. Tyto skripty byly později vydány v balíčku Personal Home Page tools. Následovalo nové skriptovací jádro, které bylo vydáno společně s nástrojem pro analýzu vstupu z formulářů v HTML (Form Interpreter) ve verzi PHP/FI neboli PHP2. Jazyk začala postupně vyvíjet větší skupina lidí, vzniklo API, které umožňovalo ostatním programátorům vytvářet pro PHP moduly a byla zdokonalena syntaxe jazyka, která se čím dál více podobala zápisům známým z jazyků z rodiny C. Vznikla verze PHP3. (Castagnetto a kol., 2001) Následující verze, PHP4, běží na novém enginu ZEND, který dále zvyšuje výkon jazyka. Byla přidána podpora sessions bez nutnosti instalovat další knihovny a PHP se nově dá použít jako ISAPI modul pro Microsoft Internet Information Services. (Welling, 2002)
4
VOLBA TECHNOLOGIÍ A PROGRAMOVÝCH PROSTŘEDKŮ
15
Pátá verze jazyka podporuje objektový přístupu k programování, XML jazyk a byla vylepšena podpora utf-8. Aktuální verze je 5.3.2. PHP je open source projekt. Na internetu se navíc dá získat mnoho užitečných skriptů a podpora objektově orientovaného programování umožňila vznik velkému množství PHP frameworků, které PHP činí široce využitelným jazykem. (Welling, 2002) 4.2.3
Python
Přehled jazyků, připadajících v úvahu pro realizaci uzavírá jazyk, který vzniknul v roce 1990 a nese jméno Python. Jeho autorem je Guido van Rossum. Stejně jako předchozí dva jazyky, i Python je otevřený jazyk nezávislý na platformě jehož licence je kompatibilní s open source. Jazyk byl publikován již v roce 1991, ale první verze byla vydána až v roce 1994. Následující dvě verze, verze 2. a 3. jsou aktuální distribuce jazyka. Vyvíjeny jsou obě a nejsou mezi sebou kompatibilní.Verze 3 totiž mění některé rysy jazyka Python a v souladu s tímto obsahuje Python od verze 2.6 systém varovných hlášení, která upozorňují na části kódu, které bude možno bez problému přeložit v druhé verzi, ale v třetí verzi způsobí chybu při překladu. Python je implementován ve více programovacích jazycích. Dvě výše zmíněné verze jsou standartním Pythonem implementovaným v jazyce C (někdy označovaný jako CPython). Existuje ale také distribuce nesoucí název Jython, která je implementována v jazyce Java a kompilací programů napsaných v ní vzniká javovský bytecode, který bez problémů běží v JVM (Java virtual machine). Výhoda tohoto řešení je, že je možno využívat velké množství knihoven jazyka Java. (Wikipedia, 2010) Přes jeho snadné použití Python neznemožňuje vytváření velkých projektů s grafickým rozhraním, stejně dobře ale poslouží i pro účely vývoje webové aplikace. Zajímavou výhodou Pythonu je i výborná čitelnost kódu, jeho syntaxe je mnohdy považována za jednodušší, než u jiných vyšších programovacích jazyků. (Harms, McDonald, 2008) 4.2.4
Srovnání uvedených programovacích jazyků
Výše popsané jazyky patří mezi open source projekty, jsou tedy zdarma. Všechny jsou i multiplatformní, vykonají stejnou službu nezávisle na platformě.
4
VOLBA TECHNOLOGIÍ A PROGRAMOVÝCH PROSTŘEDKŮ
16
Pro realizaci webové aplikace bude využit jazyk PHP. K tomuto kroku vedly dvě důležité skutečnosti, ve své podstatě i výhody oproti Perlu a Pythonu. Jedná se paradoxně o menší oblast využití. PHP bylo hned na začátku navrženo jako jazyk pro psaní webových aplikací, naproti tomu Perl a Python se zdaleka neomezují pouze na web. Pomocí PHP je navíc velice snadné připojovat se k mnoha různým databázovým serverům a komunikovat s nimi, jazyk obsahuje velké množství předdefinovaných funkcí po práci s mnoha typy databázových systémů. O oblíbenosti tohoto jazyka svědčí statistiky,2 které uvádějí, že v červenci roku 2007 běželo pomocí jazyka PHP téměř 21 miliónů domén. Druhá skutečnost, díky které bylo vybráno PHP, je široká nabídka webhostingů, které nabízejí podporu PHP. Všechny tři výše uvedené webhostingy podporují PHP páté verze, podpora ostatních programovacích jazyků nebyla uvedena.
4.3
Výběr databázového systému
Stejně jako u webového serveru a programovacího jazyka bude jako databázový systém vybrán některý z open source projektů. Druhým požadavkem je podpora ze strany komerčních webhostingů. Podpora různých databázových systémů totiž není samozřejmostí a u webhostingů fungujících na webovém serveru Apache HTTP Server se nabídka zužuje prakticky na dvě možnosti. 4.3.1
MySQL
MySQL je označení relačního databázového systému, který vznikl jako interní firemní projekt firmy TcxDataKonsult. Roku 2001 byla založena firma MySQL AB, která se začala plně věnovat vývoji MySQL. Od začátku byl kladen důraz na výkon a škálovateknost tohoto szstému. Tím bylo dáno, že MySQL bylo vysoce výkonné, ale chyběly mnohé schopnosti, které byly standardem u konkurenčních produktů. Jednalo se zejména o uložené procedury, transakce, či triggery. Tato nevýhoda ale byla postupem času kompenzována, samozřejmě při zachování výkonu. Transakce bylo možné používat od verze 3.23 a triggery od verze 5. O oblíbenosti MySQL svědčí skutečnost, že je v dnešní době užíváno například společnostmi Yahoo!, Google či Wikimedia. Databáze používá k dotazování 2
http://www.php.net/usage
4
VOLBA TECHNOLOGIÍ A PROGRAMOVÝCH PROSTŘEDKŮ
17
SQL (Structured Query Language) jazyk a s každou další verzí více splňuje kritéria SQL92 standardu. (Gilmore, 2007) Jak uvádí Kofler (2007), MySQL má dva typy licencí. Je možno jej získat pod bezplatnou licencí General Public License, ale to pouze v případě, že není software nijak prodáván zákazníkům. Tato licence dokonce umožňuje bezplatně používat MySQL poskytovatelům webhostingů, přestože zákazníci databázi využívají a poskytovatel z toho má finanční prospěch. V tomto případě je považováno využití MySQL za interní, databáze totiž běží pouze v jedné instanci na serveru poskytovatele. Pokud není splněna některá z těchto možností, je nabízena komerční licence. Nyní je MySQL v již páté verzi, konkrétně ve verzi 5.1.44, která přinesla oproti předchozím verzím mnoho důležitýh vylepšení. Jedná se například o podporu pohledů či uložených procedur. V omezené míře je možno používat nově i triggery, jejichž podpora by měla být v dalších verzích lepší. (Kofler, 2007) 4.3.2
PostgreSQL
PostgreSQL je stejně jako MySQL relační databázový systém, jehož historie se začala psát už v sedmdesátých letech. Předchůdcem systému Postgre byl systém Ingres vyvinutý na kalifornské univerzitě v Berkeley. Byl to systém využívající relační technologie, ale nepodporující dotazovací jazyk SQL. Jeho podpora byla roku 1995 přidána dvěma studenty berkeleyské univerzity, Jolly Chenem a Andrewem Yu. Nový systém nesl jméno Postgre95. O rok později, v roce 1996 projekt převzal nově sestavený tým, který vydával pod novým názvem PostgreSQL zhruba každé čtyři měsíce novou verzi. Takto systém dospěl až do aktuální osmé verze. Projekt v současné době nespravuje žádná konkrétní společnost, je vyvíjen a podporován širokou základnou vývojářů. (Momjian, 2003) Jedná se o vysoce stabilní databázový systém s podporou triggerů, pohledů, transakcí či uložených procedur. PostgreSQL dokonce obsahuje vlastní procedurální jazyk PL/pgSQL, který je podobný jazyku PL/SQL známému z databázových systémů ORACLE. (PostgreSQL, 2010) PostgreSQL je open source projekt a je distribuován pod svobodnou BSD licencí. Poslední verze nese označení 8.4.2.
4
VOLBA TECHNOLOGIÍ A PROGRAMOVÝCH PROSTŘEDKŮ
4.3.3
18
Srovnání uvedených databázových systémů
U ani jednoho databázového systému nelze tvrdit, že je jednoznačně vhodnější volbou. Oba systémy mají velké množství funkcí, které ale v této práci nebudou mnohdy využity, není tedy optimální zvolit tu možnost, která má nejvíce funkcí. Obě databáze mají také dostatečnou rychlost a odezvu. Rozhodnout se na základě těchto faktů tedy nelze. Databáze, která bude použita při tvorbě informačního systému bude MySQL. Vzhledem k zvolenému webovému serveru a programovacímu jazyku se jedná o vhodnější volbu. Již zmíněné tři webhostingy nabízejí právě databázový systém MySQL a navíc existují balíčky LAMP a WAMP (Linux/Windows, Apache, MySQL a PHP), které umožňují snadný vývoj aplikace také na localhostu, bez nutnosti instalovat a konfigurovat jednotlivé služby samostaně.
5
METODY ANALÝZY A NÁVRHU
5
19
Metody analýzy a návrhu
V dnešní době existuje více možností, jak vyvíjet a navrhovat informační systémy. Jedná se o objektový přístup, kde je skutečnost zobrazena a modelována pomocí objektů, strukturní přístup založený na zobrazování reality do procesů a procesní řízení a modelování, které volně navazuje na strukturní přístup. Jak uvádí Řepa (1999), použití objektového přístupu se zpočátku těšilo velkému úspěchu při samotné implementaci - důvodem je daleko lepší využití již napsaných zdrojových kódů díky knihovnám tříd, programy jsou přehlednější, je snadnější jejich budoucí rozšiřování a je ulehčena práce na aplikaci v týmech. Tyto výhody způsobily, že objektový přístup se později začal využívat i při návrhu informačních systémů. Na druhé straně stojí strukturní přístup k analýze a návrhu, který je i přes určité výhody objektového přístupu stále využíván. Charakteristika strukturního přístupu je patrná již z názvu, jde o snahu strukturalizovat jak předmět zkoumání, tak i samotný přístup zkoumání. Strukturalizace nám tedy umožňuje zjednodušit a zpřehlednit zpracovávanou realitu. Strukturní přístup je rovněž ze své podstaty součástí postupu i při užití objektových metod návrhu. (Řepa, 1999) Standardem pro grafickou reprezentaci procesů v diagramech u procesního řízení a modelování je BPMN (Business Process Modeling Notation) spolu s jazykem BPML (Business Process Modeling Language), který slouží k popisu jednotlivých procesů. BPMN/BPML se dá považovat za obdobu jazyka UML (Unified Modeling Language), který se užívá k modelování reality v oběktovém přístupu. (Řepa, 2007)
5.1
Obsah strukturovaných metod
Vývoj informačního systému má při použití strukturního přístupu dvě základní fáze: • analýza systému, • návrh (design) systému. Analýzou systému získáme konceptuální model. Složkami tohoto konceptuálního modelu je datový model, funkční model a model řízení. Datový model popisuje realitu pomocí prvků a vazeb mezi nimi. Funkční model popisuje procesy a vazby mezi nimi a model řízení popisuje pouze časové následnosti jednotlivých procesů. Výsledkem návrhu systému je technologický model. Model programové struktury odpovídá funkčnímu modelu u analýzy systému a model logických datových struktur odpovídá datovému modelu u předchozí fáze.
5
METODY ANALÝZY A NÁVRHU
20
Důležitým pojítkem všech výše uvedených modelů je Data Dictionary. Jedná se o popis datových prvků, které se týkají všech modelů. Je to tedy základní nástroj integrace modelů. K popisu datových struktur slouží jazyk Data Dictionary (strukturovaný popis dat). (Řepa, 1999)
6
NÁVRH INFORMAČNÍHO SYSTÉMU
6
21
Návrh informačního systému
Analýza a návrh informačního systému pro ISC MENDELU byla provedena strukturním přístupem za použití aplikací ProcessAnalyst 6.1.0 32-bit a DataArchitect 6.1.0 32-bit z CASE (Computer Aided Software Engineering) modelovacího nástroje PowerDesigner 6.
6.1
Kontextový diagram
Na obrázku č. 1 je zobrazen kontextový diagram, který představuje okolí systému důležité pro naplnění jeho role. Jedná se o pohled s nejvyšší mírou abstrakce. S informačním systémem ISISC (název vznikl složením dvou zkratek IS a ISC) budou komunikovat celkem čtyři externí entity - Teams, International office of Mendelu, External partners a Other student clubs. Na dalších řádcích je popsán jejich účel v systému.
Obr. 1: Kontextový diagram systému ISISC
6
NÁVRH INFORMAČNÍHO SYSTÉMU
22
Teams Týmy jsou základem fungování celého ISC MENDELU. Je to nejdůležitější zdroj informací a dat pro budoucí informační systém. Každý tým poskytuje informace o svých členech. Některé týmy navíc poskytují další informace. HR tým je zodpovědný za Buddy program, data tohoto týmu budou tedy potřeba pro fungování Buddysystemu. Event tým je organizátor akcí pro zahraniční studenty, je tedy zdrojem dat pro organizaci a umožňuje tak zapojení ostatních týmů do přípravy akce. Každý tým také uvádí přehled své činnosti, která se bude evidovat a bude sloužit nástupcům jako určité know-how pro ulehčení a zlepšení jejich činnosti. Na základě informací z činností a podle subjektivních názorů manažerů jednotlivých týmů bude mít každý člen určité hodnocení. International office of Mendelu Zahraniční oddělení Mendelovy univerzity poskytuje studentskému klubu přehled o zahraničních studentech pro aktuální semestr. Je to kromě informací o buddies druhá skupina dat, která je potřebná pro činnost Buddysystemu. Zahraniční oddělení také vystavuje žádanky na tisk materiálů potřebných k propagaci akcí a samotného klubu, které je potřeba dodávat do edičního centra naší univerzity. Přehled těchto zakázek pro ediční centrum bude rovněž zaznamenáván v databázi informačního systému. ISC MENDELU naopak poskytuje zahraničnímu oddělení informace o své činnosti. External partners Jedná se většinou o kluby a majitele prostor, kde se akce pro zahraniční studenty pořádají. V systému o nich budou evidovány informace pro snadnější komunikaci. V případě konání nějaké akce je externí partner kontaktován a jsou mu poskytnuty informace o plánované akci. Event týmu jsou naopak poskytnuty podmínky, za jakých bude možno akci pořádat, např. o ceně vstupného či akčních nabídkách dané akce. Other student clubs Některé akce nejsou pořádány pouze samotným ISC MENDELU, ale je možná i spolupráce s jinými studentskými kluby. V takovém případě, pokud je iniciátorem akce
6
NÁVRH INFORMAČNÍHO SYSTÉMU
23
ISC MENDELU, jsou účastnícím se klubům poskytovány informace pro spolupráci. Informace mohou samozřejmě proudit i opačným směrem, kdy je hlavním organizátorem jiný studentský klub.
6.2
Systémový diagram
Dekompozicí jediného procesu kontextového diagramu vzniká systémový diagram se čtyřmi novými procesy. Je zobrazen na obrázku č. 2. Procesy Buddysystem a ISC members records budou implementovány v informačním systému, jsou tedy podrobněji popsány níže. Proces Events je proces, který zobrazuje princip fungování Event týmu. Je několik možností, jak jsou akce v rámci tohoto procesu evidovány. Event team může uložit informace o organizované akci do databáze, kde jsou evidovány všechny akce. Takto, bez ohledu na další podněty se děje, pokud je akce pořádána pouze v rámci ISC MENDELU. Pokud do organizace vstupují i další studentské kluby, jsou ukládány data o akci až po výměně informací týkajících se organizace. Stejný princip funguje i u komunikace s externími partnery, přičemž externí partneři jsou evidováni v databázi také. Na následujících řádcích je uvedena minispecifikace tohoto procesu: PROCESS Events READ Event data FROM Teams READ Buddies info FROM Buddysystem IF Event data BEGIN WRITE Info about event TO Activities records READ External partner data FROM External partners IF External partner data BEGIN WRITE Event info TO External partners READ Conditions and details of event FROM External partners WRITE New event TO Events END ELSE BEGIN WRITE New partner TO Partners WRITE Event info TO External partners
6
NÁVRH INFORMAČNÍHO SYSTÉMU
24
READ Conditions and details of event FROM External partners WRITE New event TO Events END END READ Info about common event from other club FROM Other student clubs IF Info about common event from other club BEGIN WRITE New event TO Events WRITE Info about common event TO Other student clubs END Activity records je proces, který umožní shrnout informace o aktivitě a činnosti jednotlivých týmů, které jsou velmi cenné nejen pro nástupce aktuálních členů, ale i pro zahraniční oddělení univerzity, které je jedním z hlavních podpůrců ISC MENDELU. Každý tým tedy ukládá záznamy o svých důležitých krocích do databáze dokumentů. V rámci tohoto procesu jsou evidovány i informace o dokumentech ze zahraničního oddělení, zejména žádanky. Pro rámcový přehled o činnosti tohoto procesu je uvedena minispecifikace: PROCESS Aktivity records READ Activity survey FROM Teams READ ISC members data FROM ISC members records IF Activity survey BEGIN WRITE Info about ISC activity TO International office of MENDELU WRITE New doc TO Activity documents READ Order form FROM International office of MENDELU IF Order form BEGIN WRITE New order form TO Order forms READ Buddysystem info FROM Buddysystem IF
Buddysystem info
BEGIN WRITE New doc TO Activity documents WRITE Info about ISC activity TO International office of MENDELU END
6 NÁVRH INFORMAČNÍHO SYSTÉMU
25
Obr. 2: Systémový diagram ISISC
6
NÁVRH INFORMAČNÍHO SYSTÉMU
6.2.1
26
Proces ISC members
Tento proces je první částí, která bude implementována. Jedná se o proces přímo ze systémového diagramu, není dále dekomponován. V rámci tohoto procesu budou evidováni všichni členové ISC MENDELU, každý tým bude poskytovat data o svých členech a vytvoří se tak v systému ucelená struktura studentského klubu. V diagramu je naznačen i mechanismus určitého hodnocení členů. Je to princip, který by měl v budoucnosti fungovat. V současné době totiž v ISC MENDELU podobný systém neexistuje a pouze se nad tímto systémem uvažuje. 6.2.2
Proces Buddysystem
Na obrázku č. 3 je zobrazen dekomponovaný proces Buddysystem. Jedná se o druhou a poslední část systému, která bude implementována. Pro fungování systému přidělování buddies je zapotřebí dvou informací o samotných buddies, které si získávají týmy samy, a o zahraničních studentech, jejichž přehled poskytuje zahraniční oddělení.
Obr. 3: Data flow diagram procesu Buddysystem
6
NÁVRH INFORMAČNÍHO SYSTÉMU
27
V procesu Foreigners processing jsou zahraniční studenti ukládáni do databáze. Proces Buddies processing má na starost to samé, ale s buddies. Oba procesy budou umožňovat samozřejmě správu uložených osob. Pokud oba předchozí procesy zpracovaly nějaká data, proces Pairs processing může splnit svůj účel a vytvoří podle preferencí, které určuje HR tým dvojice buddy-zahraniční student. 6.2.3
ERD informačního systému ISISC
Entitně-relační diagram vychází svou koncepcí z návrhu celého informačního systému, jak ale bylo řečeno, všechny procesy implementovány nebudou. Na obrázku č. 4 je tedy zobrazeno ERD, které se týká pouze dvou procesů - ISC members records a Buddysystem. Databáze obsahuje 9 tabulek, 8 číselníků a jednu asociační tabulku. Návrh splňuje požadavky 3. normální formy. Nejdůležitější tabulkou návrhu je tabulka PEOPLE. Ukládají se do ní data o všech lidech evidovaných v informačním systému. Existují celkem tři typy lidí - člen ISC MENDELU, buddy a zahraniční student. Tabulka PEOPLE tedy obsahuje sloupce ID isc member, ID buddy a ID foreigner, které jsou cizími klíči a odkazují se na sloupec ID v tabulkách ISC MEMBERS, BUDDIES a FOREIGNERS. Nejméně jeden z těchto tří sloupců vždy obsahuje konkrétní ID, ostatní jsou defaultně při vytvoření záznamu nastaveny na NULL. Toto řešení bylo zvoleno z důvodu, že někteří členové mohou být zároveň i buddies. Uživatelé informačního systému budou ukládáni do tabulky ISISC USERS a asociováni s konkrétním ID osoby v tabulce ISC MEMBERS. S tabulkou uživatelů souvisí tabulka STATISTICS, do které se při každém přihlášení ukládají data o uživateli. Pro zpřehlednění návrhu je vytvořena tabulka BUDDIES FOREIGNERS. Zde budou ukládány hodnoty sloupců ID z tabulek BUDDIES a FOREIGNERS. Jeden buddy může mít na starost i více zahraničních studentů. Tabulka NOTICEBOARD umožní ukládání příspěvků jednotlivých uživatelů systému ISISC. Tabulka je stejně jako tabulky ISISC USERS a STATISTICS spojena s konkrétním členem ISC MENDELU. Poslední tabulka, SEMESTERS, obsahuje výčet semestrů, které je možno zvolit. Pomocí sloupce CURRENT SEMESTER je umožněno také rozlišení Buddysystemů pro jednotlivé semestry.
6
NÁVRH INFORMAČNÍHO SYSTÉMU
Obr. 4: ERD systému ISISC
28
7
INFORMAČNÍ SYSTÉM ISISC
7
29
Informační systém ISISC
7.1
Architektura aplikace
Architektura informačního systému, nazvaného Information system of ISC MENDELU (dále jen „ISISCÿ), bude třívrstvá. Vrstvy jsou následující: • klientská vrstva (prezentační vrstva), • aplikační vrstva (vrstva na straně serveru), • databázová vrstva. Nejnižší vrstva, databázová, je základ celého informačního systému. Jak již bylo zmíněno dříve, byla zvolena databáze MySQL. Pro ukládání tabulek je použit InnoDB engine. Narozdíl od defaultního MyISAM totiž podporuje reference na jiné tabulky pomocí cizích klíčů. Prostřední vrstva, vrstva vykonávaná na straně serveru, využívá PHP páté verze. V této vrstvě je vykonávána veškerá aplikační logika, aplikace komunikuje s databází a zpracovaná data jsou posílána přes šifrovaný protokol HTTPS (Hypertext Transfer Protocol Secure) klientské vrstvě. Obě předchozí vrstvy jsou od poslední, klientské vrstvy, rozdílné v tom, že technologie zvolené pro jejich realizaci jsou v rukou programátora. U poslední vrstvy tomu ale zcela tak není. V podstatě jediná možnost, jak zařídit, aby bylo množství problémů na straně klienta minimalizováno, je optimalizovat webovou aplikaci pro co nejvíce prohlížečů. Výstup aplikace byl vyvíjen a optimalizován pro internetový prohlížeč Mozilla Firefox 3.5. V případě Opery 10 a Internet Exploreru 8 jsou některé výstupy mírně pozměněny, na funkčnost informačního systému ale nemají žádný vliv.
7.2 7.2.1
Uživatelé informačního systému Role
Práva uživatelů informačního systému ISISC jsou založena na systému rolí. Každý uživatel má vždy jednu z následujících tří typů rolí: • superuživatel (superuser ), • uživatel (user ), • limitovaný uživatel (limited user ).
7
INFORMAČNÍ SYSTÉM ISISC
30
Administrátorovi systému je určena role superuser. Umožňuje přístup do všech částí systému, mazat a editovat jakoukoli osobu a mazat všechny příspěvky na nástěnce. Vytvořit superuživatele smí opět pouze superuživatel. Role pro manažery jednotlivých týmů se nazývá user. Umožňuje přidávat, editovat a mazat členy svého týmu. V případě, že je přihlášen manažer HR týmu, umožňuje přístup do Buddysystemu. Protože správa členů konkrétních týmů přísluší pouze manažerovi daného týmu, uživatelské účty pro manažery mohou být vytvářeny výhradně superuživatelem. Nejvíce omezení přináší role limited user, která je určena pro řadové členy jednotlivých týmů. Jediný typ účtu, který je možno vytvořit bez zásahu superuživatele, je založen na této roli. Účet pak umožňuje pouze procházet informace o členech ISC MENDELU a přidávat příspěvky na nástěnku. 7.2.2
Uživatelské účty
V návaznosti na předchozí text je potřeba zdůraznit, že navrhnutý systém je určen pouze pro interní potřeby ISC MENDELU a přístup bude možný odkudkoli. Není tedy žádoucí, aby omezený uživatelský účet mohl být zřízen kýmkoli. Pouze osoba evidovaná jako člen bude mít tuto možnost a to pouze, jak bylo uvedeno výše, s omezenými právy. U nového uživatele je z tohoto důvodu vyžadováno zadání jména a příjmení, pomocí kterých se ověřuje, zda je tato podmínka splněna. Každý člen může mít nanejvýš jeden uživatelský účet, přičemž kontrola probíhá na základě ID dané osoby. Systém využívá tzv. sessions. Při přihlášení jsou nastaveny následující session proměnné - id osoby, jméno, příjmení, role a tým. Pro další využití administrátorem se také při přihlášení zapíše do databáze informace o IP adrese, ze které se uživatel přihlašuje a čas přihlášení.
7.3
Nástěnka
Po přihlášení je každému uživateli zobrazeno prostředí nástěnky (noticeboard ). Tato aplikace je výchozím místem, odkud jsou přístupné další funkce systému. Standardně jsou zobrazovány čtyři poslední příspěvky, starší uložené vzkazy lze zobrazit kliknutím na odkaz Display all posts. Počet zobrazovaných příspěvků je možné změnit modifikací posledního řádku následujícího SQL dotazu:
7
INFORMAČNÍ SYSTÉM ISISC
31
SELECT noticeboard.id, noticeboard.id_isc_member, people.name, people.surname, teams.team_name, noticeboard.date, noticeboard.text FROM noticeboard, people, isc_members, teams WHERE noticeboard.id_isc_member = isc_members.id AND people.id_isc_member = isc_members.id AND isc_members.id_team = teams.id ORDER BY noticeboard.id DESC LIMIT 0, 4 U každého příspěvku na nástěnce je uvedeno jméno a tým přispěvatele spolu s datem uveřejnění. Daný uživatel má pak možnost kdykoli svůj příspěvek smazat. Uživatel s právy superuživatele má možnost smazat kterýkoli příspěvek.
7.4
Evidence členů ISC MENDELU
Aplikace pro evidenci členů ISC MENDELU je přístupná všem třem typům uživatelských účtů, změny ale může provádět pouze uživatel s účtem superuživatele nebo manažera. Každý manažer navíc může tyto změny provádět pouze v rámci svého týmu. Do prostředí aplikace se lze dostat kliknutím na odkaz ISC members. Přidání nového člena se provádí pomocí odkazu Add new member. Při ukládání je kontrolováno, zda uživatel se zadaným jménem a příjmením není již v databázi. Stejnětak e-mailová adresa nesmí být duplicitní. Výpis členů je možno filtrovat podle týmů pomocí zaškrtávacích políček. Pokud je zaškrtnuto políčko Managers only, jsou vypsáni pouze manažeři zaškrtnutých týmů. Ve výpisu se zobrazují jména a příjmení nalezených osob, po kliknutí je zobrazena karta, kde jsou veškeré dostupné informace o členovi. V případě, že je přihlášen superuživatel nebo manažer ze stejného týmu, jako zobrazovaný člen, jsou v dolní části zobrazeny proveditelné akce - editace a smazání člena. Velice často je potřeba informovat určitou skupinu členů pomocí e-mailu. Aplikace proto umožňuje tvorbu mail-listů.
7.5
Buddysystem
Podpůrná aplikace pro Buddysystem je nejdůležitější částí informačního systému. Přístupná je pouze členům HR týmu po kliknutí na odkaz Buddysystem.
7
INFORMAČNÍ SYSTÉM ISISC
7.5.1
32
Systém semestrů v Buddysystemu
Vzhledem k tomu, že přiřazování buddies k zahraničním studentům je činnost, která se provádí na začátku každého semestru, bylo potřeba rozlišit Buddysystem pro jednotlivé semestry. K tomuto účelu slouží v databázi tabulka SEMESTERS, kde jsou semestry uloženy. Při vkládání nového zahraničního studenta je vždy zvoleno, ve kterém semestru bude studovat, respektive ve kterém semestru bude studentovi přidělen buddy. Pokud student zůstává na výměnném studijním pobytě po oba semestry, v druhém semestru jeho studia se buddy znovu nepřiděluje. Při samotném procesu přiřazování jsou pak vždy vypisováni pouze zahraniční studenti, kteří mají jako semestr zvolen semestr aktuální a nemají ještě přiřazeného žádného buddyho. Tohoto je dosaženo následujícím SQL dotazem: SELECT foreigners.id, people.name, people.surname, foreigners.id_sex, countries.country, foreigners.note FROM foreigners, people, countries, semesters WHERE foreigners.id NOT IN (SELECT buddies_foreigners.id_foreigner FROM buddies_foreigners, foreigners, semesters WHERE buddies_foreigners.id_foreigner = foreigners.id AND foreigners.id_semester = semesters.id AND semesters.current_semester = 1) AND people.id_foreigner = foreigners.id AND foreigners.id_country = countries.id AND foreigners.id_semester = semesters.id AND semesters.current_semester = 1 ORDER BY people.surname ASC V prostředí samotné aplikace je možné kliknutím na odkaz Change semester změnit aktuální semestr. Volba semestru tedy ovlivňuje kteří studenti se zobrazí při procesu přiřazování a výpis jednotlivých, již přiřazených dvojic. Je tedy možné zvolit si minulé semestry a získat tak informace ze starších Buddysystemů. Samotné buddies, které je možno přiřazovat k zahraničním studentům, volba semestru neovlivňuje. Databáze buddies se pouze udržuje v aktuální podobě. Buddyho je možno přiřadit k více zahraničním studentům v jednom semestru, pro přehlednost je proto
7
INFORMAČNÍ SYSTÉM ISISC
33
v aplikaci pro přiřazování u každého jména v kulatých závorkách uveden počet již přiřazených zahraničních studentů v aktuálním semestru. 7.5.2
Systém přiřazování
Systém přiřazování byl implementován s co největší snahou vyhovět požadavkům HR týmu. Přiřazovat je možno následujícími třemi způsoby: • manuální přiřazení (manual assignment), • přiřazení podle speciálních preferencí buddyho (buddy’s preferences), • přiřazení podle zemí preferovaných buddym (buddy’s preferred countries). Zvolit se dá vždy pouze jediný způsob, na členu HR týmu pak závisí, podle kterého kritéria (které kritérium má nejvyšší prioritu) začne buddies přiřazovat k zahraničním studentům. Uvedené tři způsoby přiřazení lze pak dále upravit pomocí dvou následujících možností: • kombinace muž-žena (male-female pairs), • pouze buddies, kteří tuto činnost budou vykonávat poprvé (first time buddies only). Pokud je zaškrtnuto políčko male-female pairs, jsou vždy ke každému zahraničnímu studentovi vypsáni pouze buddies opačného pohlaví. V případě zaškrtnutí políčka first time buddies only jsou vypisováni pouze buddies, kteří nebyli v žádném semestru přiděleni zahraničnímu studentovi. Obě výše uvedené možnosti lze libovolně kombinovat se všemi třemi hlavními kritérii. Přehled všech uložených dvojic pro aktuální semestr se zobrazí po kliknutí na odkaz Display saved pairs. Každý záznam lze smazat a umožnit tak přiřazení jiného buddyho. Kliknutím na odkaz Message template se zobrazí texty dvou zpráv, které jsou doplňeny o informace, které se týkají konkrétní dvojice - datum příjezdu zahraničního studenta, jména, kontakty.
7.6 7.6.1
Zabezpečení informačního systému Zabezpečení přenosu
Data jsou v informačním systému ISISC klientovi posílána přes port 443, který přísluší protokolu HTTPS. Veškerá komunikace je tedy šifrovaná. Jak uvádí Huseby (2006), šifrovaná komunikace pomocí protokolů SSH (Secure Socket Layer) a TLS
7
INFORMAČNÍ SYSTÉM ISISC
34
(Transport Layer Security) se dělí na dvě fáze. První je handshake, kde probíhají následující kroky: • jsou stanoveny šifrovací a hašovací algoritmy, které budou používány při výměně dat, • server pošle klientovi certifikát, kterým je server ověřen, • je stanoven symetrický šifrovací klíč, • začne samotná šifrovaná komunikace. V druhé fázi pak samotný přenos probíhá pomocí protokolu HTTP. Použití šifrovaného HTTPS protokolu by mělo znemožnit útok zvaný packet sniffing. Pakety se dají odchytávat i při použití HTTPS, ale utočník tak získá pouze nesrozumitelnou šifrovanou informaci. 7.6.2
Zabezpečení vstupů
Pomocí funkcí jazyka PHP jsou odstraňovány metaznaky, které by mohly potenciálně změnit výsledný SQL dotaz (SQL injection) a otevřít tak cestu k databázi. Jedná se o vstupy z formulářů, které jsou předávány pomocí metody POST, a o parametry předávané v URL pomocí metody GET. Pokud je v URL předáván parametr, jedná se většinou o ID určité osoby. Parametry, které jsou předávany v URL je snadné změnit, ve skriptech pro editaci a mazání je tedy kontrolováno, zda právě přihlášený uživatel má práva k vykonání dané akce - zda je editovaná či mazaná osoba ze stejného týmu, jako uživatel.
7.7
Náklady na informační systém
Vzhledem k tomu, že všechny nástroje a technologie, které byly použity při návrhu a implementaci informačního systému ISISC, bylo možné používat zdarma, náklady přinesou pouze poplatky za pronájem doménového jména a poplatky za komerční webhosting. Existují i webhostingy, které nabízí možnost využívat PHP a MySQL zdarma, nicméně pro provozování informačního systému pro ISC MENDELU nejsou vhodné, nevýhod je hned několik. V doménovém jméně by byl jako doména 2. řádu uveden název webhostingu a některé společnosti navíc vkládají do každého skriptu kód, který zobrazuje na začátku každé stránky reklamní pruh. Nejpodstatnější nevýhoda však je neexistence garance dostupnosti, technické podpory a podmínka v licenčním
7
35
INFORMAČNÍ SYSTÉM ISISC
ujednání, která uvádí, že webhosting může být kdykoli bez jakéhokoli předchozího varování zrušen. Webhostingy, které budou porovnány, jsou tři již dříve zmíněné webhostingy s nejlepším hodnocením za poslední rok. Pro provozování informačního systému bude potřeba zakoupit doménu 1. řádu, s největší pravděpodobností .cz. V následující tabulce jsou v českých korunách uvedeny ceny jednotlivých služeb k 17. 3. 2010. Ceny jsou za roční používání služby a nezahrnují 20% DPH. Tab. 1: Přehled cen webhostingů
webhosting
cena webhostingu
cena domény
cena celkem
BlueBoard
960
176
1136
Český hosting
1000
250
1250
ONEbit
540
229
769
První dvě uvedené firmy, BlueBoard a Český hosting, nabízejí pouze jedinou možnost volby webhostingu s podporou PHP a MySQL. Veškeré parametry těchto webhostingů jsou pro potřeby informačního systému ISISC dostačující. Webhosting ONEbit nabízí volbu mezi více tarify, ve výše uvedené tabulce je použita cena tarifu WEB-OPTIM, který má po zvážení potřeb informačního systému nejlepší poměr mezi cenou a nabízenými službami. Tento webhosting nabízí oproti předchozím dvěma webhostingům menší prostor pro webovou prezentaci, databázi i e-maily. Další limitací je také 20 GB měsíční limit přenesených dat. Díky možnosti volby mezi více tarify a s přihlédnutím k požadavku na co nejnižší cenu je nejvhodnější volbou webhosting ONEbit. Obsahuje určitá omezení, jako například limit přenesených dat, tato skutečnost však při zamýšleném účelu a využití informačního systému nebude působit potíže. Stejnětak nabízený diskový prostor o velikosti 1,5 GB je dostačující. Celkové roční náklady na informační systém tedy budou nižší, než 1000 Kč včetně DPH.
8
8
DISKUSE
36
Diskuse
Zavedení informačního systému usnadní nejdůležitější činnost ISC MENDELU, kterou je organizace Buddy programu. Umožní také snadnou komunikaci uvnitř klubu, veškeré informace o členech budou snadno dosažitelné. Vzhledem k faktu, že v době dokončování této práce stále nebylo známo, kde bude informační systém umístěn, nebyl zatím nasazen do ostrého provozu. Kompetentním osobám však byl systém prezentován v několika stádiích vývoje a jejich dodatečné požadavky a připomínky byly zohledněny při vývoji. Veškeré testování aplikace bylo prováděno pouze autorem. V současné verzi aplikace tedy jsou veškeré nalezené nedostatky odstraněny. Aplikace byla vyvíjena a laděna na localhostu za použití aplikace WampServer 2.0, byla testována i na bezplatném PHP webhostingu, nicméně se dají očekávat jisté odlišnosti v chování aplikace po nasazení na komerční webhosting. V první řadě tedy bude nezbytné odladit chování aplikace na serveru, kde stabilně poběží. Pouze část navrženého informačního systému byla implementována, nabízí se tedy otázka, kam bude směřovat další vývoj informačního systému. Budoucí vývoj se totiž nebude týkat pouze neimplementovaných částí, ale také rozšíření stavajících aplikací. Již byl naznačen princip, který by umožnil manažerům jednotlivých týmů hodnotit své členy. Po jasné specifikaci tohoto systému hodnocení bude princip realizován v podobě modifikace aplikace pro evidenci členů ISC MENDELU. Jelikož počet zahraničních studentů přijíždějících na výměnný pobyt na naši univerzitu rok od roku roste, bude dobudoucna vhodné přidat v aplikaci pro Buddysystem další možnosti pro přiřazování buddies k zahraničním studentům, vše podle požadavků HR týmu. Nebyla také implementována aplikace, která by usnadnila komunikaci mezi Event týmem a PR týmem. Komunikace mezi těmito dvěma týmy je v ISC MENDELU důležitá a při užívání elektronické pošty mnohdy neefektivní. Aplikace, která toto umožní, je tak velice vhodné budoucí rozšíření.
9
9
ZÁVĚR
37
Závěr
V souladu s cílem této bakalářské práce byl navrhnut a implementován informační systém pro Mezinárodní studentský klub Mendelovy univerzity v Brně. Před provedením samotné analýzy informačních toků uvnitř ISC MENDELU proběhlo několik konzultací s chairmanem klubu a členy HR týmu. Byly specifikovány dvě oblasti, kde je zavedení informačního systému nejdůležitější. První je usnadnění a zpružnění komunikace mezi členy a jednotlivými týmy, druhou oblastí pak je Buddy program. V analýze informačních toků uvnitř klubu jsou pak zobrazeny nejen procesy, týkající se předchozích dvou oblastí, ale také procesy, které zobrazují základní princip fungování Event týmu a princip evidence činnosti jednotlivých týmů, což bude v budoucnu potřebné pro Knowledge tým. U procesů, které nebyly implementovány jsou pro nastínění jejich činnosti uvedeny minispecifikace. Na základě procesů určených k implementaci byla navržena struktura databáze, která byla znázorněna v entitně-relačním diagramu. Implementace byla provedena za použití programovacího jazyka PHP a databázového systému MySQL. Tyto technologie byly zvoleny po srovnání s dalšími alternativami připadajícími v úvahu. Byl použit systém rolí pro přihlašování uživatelů. K usnadnění komunikace uvnitř ISC MENDELU byly implementovány aplikace pro přidávání příspěvků na elektronickou nástěnku a evidence členů. Pro hladší fungování Buddysystemu byla rovněž implementována aplikace umožňující přiřazování buddies k zahraničním studentům podle tří základních a dvou doplňujících kritérií. Práce také obsahuje základní zhodnocení nákladů na informační systém, což bylo také cílem této práce.
10
10
SEZNAM POUŽITÝCH ZDROJŮ
38
Seznam použitých zdrojů
Aulds, Ch. Linux - administrace serveru Apache. 1. vyd. Praha: Grada Publishing, 2003. 535 s. ISBN 80-247-0640-7. Castagnetto, J. a kol. PHP - programujeme profesionálně. 1. vyd. Praha: Computer Press, 2001. 656 s. ISBN 80-7226-310-2. Dařena, F. Myslíme v jazyku Perl. 1. vyd. Praha: Grada, 2005. 700 s. ISBN 80247-1147-8. Gilmore, J. W. Velká kniha PHP MySQL 5. 2. vyd. Brno: Zonerpress, 2007. 864 s. ISBN 80-86815-53-6. Harms, D., McDonald, K. Začínáme programovat v jazyce Python. 2. vyd. Brno: Computer Press, 2008. 456 s. ISBN 978-80-251-2161-0. Huseby, S. H. Zranitelný kód. 1. vyd. Brno: Computer Press, 2006. 207 s. ISBN 80251-1180-6. Kofler, M. Mistrovství v MySQL 5. 1. vyd. Brno: Computer Press, 2007. 805 s. ISBN 978-80-251-1502-2. Momjian, B. PostgreSQL: Praktický průvodce. 1. vyd. Brno: Computer Press, 2003. 402 s. ISBN 80-7226-954-2. Pošmura, V. Apache: Příručka správce WWW serveru. 1. vyd. Praha: Computer Press, 2002. 310 s. ISBN 80-7226-696-9. Rosebrock, E., Filson E. Linux, Apache, MySQL a PHP: Instalace a konfigurace prostředí pro pokročilé webové aplikace. 1. vyd. Praha: Grada, 2005. 344 s. ISBN 80-247-1260-1. Řepa, V. Analýza a návrh informačních systémů. 1. vyd. Praha: EKOPRESS, 1999, 404 s. ISBN 80-86119-13-0. Řepa, V. Podnikové procesy: Procesní řízení a modelování. 2. vyd. Praha: Grada Publishing, 2007, 281 s. ISBN 978-80-247-2252-8. Voříšek, J. Strategické řízení informačního systému a systémová integrace. 1. vyd. Praha: Management Press, 1997. 324 s. ISBN 80-85943-40-9. Welling, L., Thomson, L. PHP a MySQL - Rozvoj webových aplikací. 2. vyd. Praha: SoftPress, 2002. 718 s. ISBN 80-86497-20-8.
10
39
SEZNAM POUŽITÝCH ZDROJŮ
The Apache Software Foundation [online]. 2009. [cit. 2010-03-09]. Dostupné z WWW:
. Perl.org
[online].
2010.
[cit.
2010-03-09].
Dostupné
z
WWW:
. PostgreSQL Global Development Group [online]. 2010. [cit. 2010-03-09]. Dostupné z WWW:
. Wikipedia, The Free Encyclopedia [online]. 2010. [cit. 2010-03-09]. Dostupné z WWW:
. Wikipedia, The Free Encyclopedia [online]. 2010. [cit. 2010-03-09]. Dostupné z WWW: .
Přílohy
Náhledy aplikace
A
A
NÁHLEDY APLIKACE
41
Obr. 5: Prostředí aplikace pro Buddysystem
A NÁHLEDY APLIKACE
Obr. 6: Nástěnka s formulářem pro vytvoření nového uživatele 42
A NÁHLEDY APLIKACE
Obr. 7: Aplikace pro evidenci členů ISC MENDELU 43
B
ELEKTRONICKÉ PŘÍLOHY
B
Elektronické přílohy
Elektronické přílohy této práce obsahuje přiložené CD a jsou následující: • zdrojové kódy aplikace, • skripty pro založení a naplňení databáze, • elektronická verze práce.
44