České vysoké učení technické v Praze Fakulta elektrotechnická
Bakalářská práce
Akademický portál systém evidence školících aktivit Radovan Igliar
Vedoucí práce: Ing. Michal Medvecký Studijní program: Elektrotechnika a informatika, strukturovaný bakalářský Obor: Výpočetní technika srpen 2007
Prohlášení
Prohlašuji, že jsem svou bakalářkou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 24.8.2007
porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat porn.bat
Poděkování
Rád bych vyjádřil své poděkování své rodině, zejména mojí matce PhDr. Ing Boženě Igliarové za systematickou podporu a motivaci ke studiu. Dále děkuji Ing. Michalovi Medveckému, vedoucímu této bakalářské práce, za cenné rady a připomínky při její tvorbě.
Abstract
This bachelor thesis deals with the problematic of a design and implementation of an academy portal, a management system for learning activities. The substance of the thesis is specifying of methodology, analysis of contemporary business and opensource products, and analysis and implementation of own system, divided into a public and private section.
Abstrakt
Tato bakalářská práce se zabývá problematikou návrhu a realizace portálu pro správu a podporu vzdělávacích aktivit – výuky, školení, kurzů a certifikací. Obsahem práce je návrh metodiky, analýza stávajících komerčních i opensource řešení a analýza a implementace vlastního systému rozděleného na veřejnou a privátní sekci.
Obsah 1 ÚVOD..................................................................................................................................... 1 2 ZADÁNÍ PROJEKTU.......................................................................................................... 3 3 ÚVODNÍ STUDIE.................................................................................................................5 3.1 Odborný článek............................................................................................................. 5 3.2 Deklarace záměru..........................................................................................................5 3.3 Katalog požadavků........................................................................................................6 3.4 Kontextový diagram......................................................................................................7 3.5 Právní analýza............................................................................................................. 13 3.6 Analýza stávajících řešení...........................................................................................13 3.6.1 Cisco Academy Connection.................................................................................. 13 3.6.2 Microsoft IT Academy.......................................................................................... 16 3.6.3 Czech Efficient Learning Node, AMOS................................................................18 3.6.4 Zhodnocení............................................................................................................ 20 4 ANALYTICKÁ STUDIE................................................................................................... 23 4.1 Role uživatelů...............................................................................................................23 4.1.1 Návštěvník (visitor)............................................................................................... 23 4.1.2 Student................................................................................................................... 24 4.1.3 Absolvent (alumni)................................................................................................ 24 4.1.4 Lektor (instructor)..................................................................................................24 4.1.5 Zákazník (customer).............................................................................................. 24 4.1.6 Manažér akademie (academy manager)................................................................ 24 4.1.7 Statutár (statutory)................................................................................................. 25 4.1.8 Programový manažér (program manager)............................................................. 25 4.1.9 Manažér kurzů (course manager)......................................................................... 25 4.1.10 Operátor pracovní agentury (agency manager)................................................... 25 4.1.11 Administrátor (administrator)..............................................................................25 4.2 Datový model............................................................................................................... 26 4.2.1 Evidence organizací...............................................................................................27 4.2.2 Evidence osob........................................................................................................28 4.2.3 Evidence školících programů, kurzů a certifikací................................................. 29 4.2.4 Certifikace............................................................................................................. 30 4.2.5 Výuka.....................................................................................................................31
4.2.6 Fakturace............................................................................................................... 31 5 NÁVRH ARCHITEKTURY.............................................................................................. 33 5.1 Popis technologií.......................................................................................................... 34 5.1.1 HTML.................................................................................................................... 34 5.1.2 CSS........................................................................................................................ 34 5.1.3 PHP........................................................................................................................ 34 5.1.4 SQL........................................................................................................................34 5.1.5 Javascript............................................................................................................... 35 5.1.6 AJAX..................................................................................................................... 35 5.1.7 UML...................................................................................................................... 35 6 IMPLEMENTACE............................................................................................................. 37 6.1 Prostředí, použité nástroje..........................................................................................37 6.1.1 Operační systém.................................................................................................... 37 6.1.2 Webový server Apache 2.0.59...............................................................................37 6.1.3 PHP5...................................................................................................................... 37 6.1.4 MySQL 5.0.22....................................................................................................... 37 6.1.5 PhpMyAdmin 2.8.1............................................................................................... 38 6.1.6 Smarty 2.6.18.........................................................................................................38 6.1.7 Texy 2.................................................................................................................... 38 6.1.8 OpenOffice.org 2.0................................................................................................ 39 6.1.9 PSPad 4.5.3............................................................................................................39 6.2 Návrh grafického rozhraní......................................................................................... 39 6.3 Organizace zdrojového kód........................................................................................ 41 6.4 Bezpečnost a stabilita aplikace................................................................................... 42 7 ZÁVĚR.................................................................................................................................43 8 POUŽITÉ ZDROJE........................................................................................................... 45 8.1 Seznam literatury........................................................................................................ 45 8.2 Internetové odkazy...................................................................................................... 46 9 SEZNAM TABULEK, ILUSTRACÍ A PŘÍLOH............................................................ 49 9.1 Seznam tabulek............................................................................................................49 9.2 Seznam ilustrací...........................................................................................................49 9.3 Seznam příloh.............................................................................................................. 50
KAPITOLA 1. ÚVOD
1
1 Úvod Tématem své bakalářské práce jsem si zvolil návrh obecného informačního systému pro potřeby evidence školících aktivit. K tomuto tématu jsem se nedostal náhodou, nýbrž působením v různých akademiích v Studentské unii ČVUT. S mnoha lektory a studenty jsme dospěli k poznání akutní potřeby vlastního systému. Původní myšlenka vzešla z potřeby Studentské unie ČVUT centralizovat evidenci studentů a kurzů zde působících akademií 1 s případnou možností další návazností na systémy zprostředkovaní práce, evidence knih a publikací a nebo případného komunitního centra webové technické pomoci v oblasti IT.
1 Adobe Academy, Autodesk Academy, Cisco Networking Academy, D-LINK školení, Hewlett-Packard školení, Microsoft IT Academy, Středisko UN*Xových technologií a další.
KAPITOLA 2. ZADÁNÍ PROJEKTU
3
2 Zadání projektu Cílem projektu je navržení a realizace portálu pro správu a podporu vzdělávacích aktivit. Úkolem je provést analýzu se zaměřením na stávající opensource řešení, specifikaci zejména scénáře aplikace a role uživatelů a jejich exaktních potřeb a následně pomocí otevřených platforem implementovat celý systém do veřejné a privátní sekce, modulárně s celkovým důrazem na ergonomii, bezpečnost a stabilitu aplikace. Zadavatelem projektu je Ing. Michal Medvecký. Předpokládá se možná implementace výsledků práce zejména na půdě ČVUT, a nevylučuje se případné užití v akademiích Studentské unie ČVUT a v komerční sféře.
KAPITOLA 3. ÚVODNÍ STUDIE
5
3 Úvodní studie 3.1 Odborný článek Ve své praxi jsem se setkal s několika evidenčními proprietárními systémy několika výrobců certifikačních produktů
2
a firem, zejména firmy Cisco Systems a jejich školícího
programu Cisco Networking Academy, nyní Networking Academy [1i], a školícího programu firmy Microsoft – Microsoft IT Academy [2i]. Jejich hlavní nevýhodou je jejich uzavřenost, kde každá firma si buduje vlastní systémy, které jsou navzájem nekompatibilní. Ve velké míře jsou tyto systémy navrženy specificky pro potřeby konkrétních programů a i malé změny v samotných programech jsou těžko proveditelné do hotových informačních systémů, které se musí často nesystematicky opravovat. Většinou se z mé zkušenosti jedná o chyby návrhu, jako nemožnost jazykové lokalizace informací, nemožnost modulárního rozšiřování aplikace, porucha zpětné informace (například při přejmenování školících programů a kurzů) a nebo nemožnost paralelního studia více kurzů. Například správce informačního systému pro evidenci školícího programu Cisco Networking Academy [3i] v České republice zjistil, že jejich systém není navržen, tak aby mohl student studovat více kurzů současně. Pokud jedna organizace aplikuje více školících programů, musí být jak organizace samotná, tak i lektoři a studenti přihlášeni v několika informačních systémech. Pokud některé z firem ještě dále rozlišují vzdělávací evidenci a fakturační evidenci, celý systém se stává těžkopádný a nepřehledný. Celá práce nemá za cíl postavit další aplikaci, která by ještě víc zkomplikovala situaci, nýbrž naopak navrhnout aplikaci, která by pomohla organizacím a jednotlivcům v lepší orientaci.
3.2 Deklarace záměru Mým cílem je zanalyzovat současné komerční i opensource produkty pro potřeby evidence školících aktivit a navrhnout a implementovat obecný evidenční systém s vícejazyčnou podporou, evidencí programů, kurzů a certifikací obecně i konkrétně pro jednotlivé akademie, lektory a studenty s důrazem na bezpečnost, stabilitu, modulárnost, škálovatelnost a zpětnou historii aplikace.
2 Vendor (ang.) - výrobce programu.
6
KAPITOLA 3. ÚVODNÍ STUDIE
3.3 Katalog požadavků Informační systém by měl splňovat následující podmínky a funkcionality aplikace. Jádro aplikace se skládá ze systému správy uživatelských rolí a evidence programů, kurzů a certifikací. Následující návrh je obšírný, kde implementační část práce je výrazně omezena na implementaci funkcí základního portálového systémů označené symbolem ü. 1. aplikace postavena na opensource platformě s využitím moderních technologií ü 2. bezpečnost, bezporuchovost a validita aplikace ü 3. přehlednost a interaktivita aplikace ü 4. modulární škálovatelnost a rozšířitelnost aplikace ü 5. možnost jazykové lokalizace aplikace ü 6. systém rozdělen do veřejné a privátní sekce ü 7. veřejná sekce bude systematicky poskytovat, zobrazovat a vyhledávat obecné informace: a) o školících organizacích ü b) o školících programech ü c) o vendorech školících programů ü d) o školených kurzech ü e) o aktuálně otevřených a vyučovaných kurzech 8. neveřejná sekce bude zejména umožňovat: a) přihlásit uživatele a poskytovat operace aplikace podle rolí uživatele ü b) evidenci a správu uživatelů, spravování a delegaci práv a rolí uživatelů c) správu a evidenci školících organizací a práv k podřízeným organizacím ü d) evidenci a správu školících programů ü e) evidenci a správu vendorů školících programů ü f) evidenci a správu kurzů ü
KAPITOLA 3. ÚVODNÍ STUDIE
7
g) evidenci implementovaných programů a školení a k nim příslušným odbornostem lektorů organizací h) evidenci, zakládání, přihlašování, životnost a uzavírání tříd i) evidence výsledků, certifikací, docházky, doporučení studentů j) hodnocení kvality, organizace kurzů a lektorů3 k) systém evidence financí, finančních podkladů, vystavování faktur a daňových dokladů 9. zpětná historická kompatibilita informací ü
3.4 Kontextový diagram Kontextový diagram popisuje požadované funkcionality systému v návaznosti na cílové skupiny uživatelů. Kontextový diagram byl vypracován pomocí opensource programu ArgoUML v0.24 [4i] který je přiložen spolu se zdrojovými soubory a diagramy na dokumentačním CD. Seznam událostí neregistrovaného uživatele: Visitor (návštěvník) •
čtení informací o školících programech a jejich nositelích
•
čtení informací o školeních / certifikacích
•
čtení informací o otevřených třídách
•
registrace
Ilustrace 3.1: Kontextový diagram – neregistrovaný uživatel 3 Feedback (ang.) - zpětná vazba, hodnocení kvality.
8
KAPITOLA 3. ÚVODNÍ STUDIE
Seznam událostí registrovaného uživatele: Administrator (administrátor aplikace) • čtení / vytváření / editace osobního profilu •
čtení / vytváření / editace / zneplatnění informací o programech
•
čtení / vytváření / editace / zneplatnění informací o kurzech
•
čtení / vytváření / editace / zneplatnění informací o certifikacích
•
čtení informací / vytváření / editace / zneplatnění tříd
•
delegace práv pro role: statutory, program manager, agency manager
•
správa práv pro role: statutory, program manager, academy manager, agency manager, course manager, customer, instructor, student, alumni
•
konfigurace nastavění aplikace (jazykové lokalizace, statusy, mazání uživatelů, určování platnosti záznamů)
Program manager (programový manažér) • čtení / vytváření / editace osobního profilu •
čtení / vytváření / editace / zneplatnění informací o programech
•
čtení / vytváření / editace / zneplatnění informací o kurzech
•
čtení / vytváření / editace / zneplatnění informací o certifikacích
•
čtení informací o aktuálně otevřených třídách
•
čtení / vytváření / editace / zneplatnění informací o vendorech programů
•
delegace práv pro role: course manager
•
správa práv implementace programů a kurzů organizacím-akademiím
•
správa práv kompetencí instruktorů
Agency manager (operátor pracovní agentury) • čtení / vytváření / editace osobního profilu Alumni (absolvent) • čtení / vytváření / editace osobního profilu
KAPITOLA 3. ÚVODNÍ STUDIE
Ilustrace 3.2: Kontextový diagram A – registrovaný uživatel
9
10
KAPITOLA 3. ÚVODNÍ STUDIE Course manager (manažér kurzů) • čtení / vytváření / editace osobního profilu •
čtení / vytváření / editace / zneplatnění informací o kurzech
•
čtení / vytváření / editace / zneplatnění informací o certifikacích
•
čtení informací o aktuálně otevřených třídách
•
správa práv, implementace programů a kurzů organizacím-akademiím
•
správa práv kompetencí instruktorů
Statutory (statutár) • čtení / vytváření / editace osobního profilu •
čtení / vytváření / editace informací o organizaci
•
čtení / vytváření / editace faktur
•
čtení / vytváření / editace tříd
•
správa práv pro role: academy manager, customer
•
správa práv, implementace programů a kurzů
Academy manager (manažér akademie) • čtení / vytváření / editace osobního profilu •
čtení detailních informací o organizaci
•
čtení / vytváření faktur
•
čtení informací / vytváření / editace tříd
•
správa práv pro role: instructor, student
•
přiřazování / odhlašování studentů a instruktorů z vypsaných tříd
•
správa práv implementace kurzů
•
správa práv kompetencí instruktorů
•
čtení informací o hodnocení studentů, docházce, a hodnocení kvality kurzů
KAPITOLA 3. ÚVODNÍ STUDIE
Ilustrace 3.3: Kontextový diagram B – registrovaný uživatel
11
12
KAPITOLA 3. ÚVODNÍ STUDIE Instructor (lektor) • čtení / vytváření / editace osobního profilu •
čtení detailních informací o organizaci
•
čtení informací / vytváření / editace tříd
•
správa práv pro role: student
•
přiřazování / odhlašování studentů a instruktorů z vypsaných tříd
•
čtení práv kompetencí instruktorů
•
čtení a vkládání informací o hodnocení studentů, docházce a hodnocení kvality kurzů
•
zadávaní doporučení studentům
Student (student) • čtení / vytváření / editace osobního profilu •
čtení detailních informací o organizaci
•
čtení informací o aktuálně otevřených třídách
•
správa práv pro role: alumni
•
přihlašování / odhlašování se do tříd
•
čtení informací o doporučení od instruktora, docházce a hodnocení kvality kurzů
•
zadávaní doporučení instruktorům
Customer (zákazník) • čtení / vytváření / editace osobního profilu •
čtení / vytváření / editace informací o organizaci
•
čtení přidružených faktur k organizaci zákazníka
KAPITOLA 3. ÚVODNÍ STUDIE
13
3.5 Právní analýza Portály pro správu školících aktivit pro svojí funkčnost shromažďují osobní údaje, které podléhají ochraně podle zákona č. 101/2001 Sb., o ochraně osobních údajů [5i], kde správce databáze vystupuje v roli zpracovatele osobních údajů a osoba, které údaje jsou shromažďované, v roli subjektu údajů. Pro potřeby evidence byl zřízen Úřad pro ochranu osobních údajů. Správce databáze je dle zákona povinen se před sběrem informací registrovat, optimálně přímo pomocí elektronické žádosti na stránkách úřadu [6i]. Při implementaci portálu musí být brán zřetel na literu zákona a při registraci uživatelů je nutnost uvést příslušné upozornění o shromažďování osobních údajů.
3.6 Analýza stávajících řešení Při úvahách o optimálním systému pro správu a evidenci školících programů, kurzů, certifikací a obecně školících aktivit jsem se zajímal i o možnosti využití jiných systémů a analýzu několika funkčních systémů. Při hledání stávajících řešení jsem prostudoval žebříček nejlepších certifikačních programů [7i] a seznam vendorů certifikačních produktů [8i]. Následně jsem se pokoušel prostudovat jejich webové prezentace. Průzkumem jsem zjistil, že všechny tyto systémy jsou přístupné pouze po přihlášení a informace o příslušných evidenčních systémech jsou uzamčené pouze pro zákazníky. Při hledání jsem nenašel ani jednu opensource aplikaci, která by implementovala tyto funkce. Potvrdila se moje domněnka, že všechny tyto systémy jsou stavěny na míru konkrétní organizace a školícímu programu a nejsou vůbec dostupné k jinému využití. Ve své praxi jsem se seznámil z několika takovými systémy, jejichž základní funkcionality, výhody a nevýhody jsem se rozhodl popsat v následujících sekcích.
3.6.1 Cisco Academy Connection Cisco Academy Connection portál [1i] je postaven na webové aplikaci, na kterou je přistupováno globálně ze všech koutů světa. To je ovšem i její slabá stránka, kde při výpadku a nebo servisní odstávce je služba úplně nedostupná. S pohledu návrhu aplikace je dobře propracován systém určování kompetencí, práv a rolí, které jsou členěny do rolí Cisco Administrator, Area Academy Manager, Legal main contact, Academy Asset Manager, Academy Equipment Manager, Career Connection Contact, Curriculum Lead , Observer, Instructor, Student, Alumni. Systém členění akademií je stromový. Dělí se do úrovní
14
KAPITOLA 3. ÚVODNÍ STUDIE
„Competence Centre“4, regionální a lokální akademie. Mezi akademiemi jsou přesně daná pravidla a kompetence školení lektorů a pravidla implementace programů. Všeobecně řečeno zde platí systém stromových práv, kde nižší organizace může implementovat jenom program, který má implementovaná k ní příslušná nadřazená organizace.
Svou jedinečnost má tento systém zejména ve funkcionalitě zakládáni a evidenci kurzů a hlavně ve funkci online studijních materiálů a testů. Zde jsou studenti i instruktoři schopni průběžně testovat své znalosti a skládat průběžné testy i závěrečné zkoušky. Po každém kurzu je student povinen vyplnit i formulář hodnocení a zpětné vazby, pro zlepšení výuky. Firma Cisco Systems si je jedinečností tohoto portálu jistě vědoma a proto je zde k nalezení i 24 hodinová online podpora, spousta diskuzních fór anebo document repository studijních materiálů. Tento portál má ovšem i některé své nedostatky. Častým problémem uživatelů je systém registrace do portálu skrz tři různé formuláře, ve kterém se ztratí i zkušený instruktor, který využívá portál několik let. Instruktor vloží emailové adresy studentů do systému jako nové uživatele, kterým se vygeneruje unikátní 5. Následně se musí studenti skrz stránky registrovat sami, uvedou tu samou emailovou adresu a jejich registrace se spáruje s registrací, kterou provedl instruktor. Pak jsou studenti nuceni vyplnit několik průzkumných otázek, které jistě celému procesu na přehlednosti nepřidávají. Portál byl taktéž navržen výhradně v jediné, anglické, verzi bez možnosti jazykové lokalizace, i když studijní materiály jsou dostupné v několika jazykových mutacích. Návrhem uživatelského rozhraní je stránka členěna do třech sloupců. V levém sloupci je primárně umístěno ovládací menu podle práv uživatele a několik doplňujících reklamních bannerů. V pravé části je k nalezení již zmíněné odkazy na studijní materiály, slovník, document repository a podobně. Centrální část je určena k operacím podle procesů uživatele, tj. například seznam tříd, studijních výsledků a pod.
4 Kompetenční centrum pro Českou republiku je ve Vídni. 5 Academy Connection ID (zkr. AID) – jedinečné identifikační číslo studenta Cisco Networking Programu.
KAPITOLA 3. ÚVODNÍ STUDIE
Ilustrace 3.4: Cisco Academy Connection
15
16
KAPITOLA 3. ÚVODNÍ STUDIE
3.6.2 Microsoft IT Academy Před popisem systému evidence kurzů pod projektem Microsoft IT Academy je nezbytně nutné uvést historii vzniku. Vzdělávací program jako takový má firma Microsoft pro komerční použití již dlouho a jmenuje se Microsoft Learning [9i]. Microsoft IT Academy program vznikl až následně jako doplněk pro školy a vzdělávací instituce. S tím vznikla potřeba dalších evidenčních portálů, který Microsoft řešil vznikem několika nepřehledných systémů. Pro studium Microsoft IT Academy je zapotřebí celkem pět různých portálů pro administrátory, instruktory a studenty.
Ilustrace 3.5: Microsoft IT Academy Instructor Learning Management System
Systém uživatelských rolí je řešen právě nepřehledným systémem pěti portálů. Něco jako stromová struktura akademií zde bohužel vůbec neexistuje. Systém předávání informací mezi portály je těžko představitelný. Před přihlášením pod jakoukoli rolí je zapotřebí Microsoft Passport konto s Microsoft Live ID [10i] a několik nic nevypovídajících identifikačních čísel. Hlavní kontaktní osoba akademie se přihlašuje na portál Microsoft IT Academy Member [11i]. Následně po přihlášení může main contact na member portálu delegovat práva instruktorům, zadáním jejích emailových adres. Instruktoři se pak přihlašují na portál Instruct-
KAPITOLA 3. ÚVODNÍ STUDIE
17
ors Learning Management System (LMS) [12i], kde můžou vytvářet skupiny (třídy), uživatele (studenty) a přiřazovat studenty do kurzů. Ti se pak přihlašují a studují na portálu Microsoft IT Academy Student Online Campus [13i]. Tento portál je kopií už zmíněného oficiálního Microsoft Learning, na kterém jsou dostupné některé studijní materiály k nabízeným školením. Zejména systém online testů je podobný jako u portálu popsaném v kapitole 3.6.1. Další zdroje jsou uloženy u outsourcovaného vydavatele literatury John Wiley & Sons [14i].
Ilustrace 3.6: Microsoft IT Academy Student Online Campus
Je zřejmé, že evidenční systém programu MS IT Academy firmy Microsoft vznikl „na kolene“ z komerčního produktu Microsoft Learning. Systém je nepřehledný a pro uživatele se může jevit jako vysoce chaotický. Jakákoliv modularita, jazyková lokalizace a nebo možnost další rozšiřitelnosti je zcela nemyslitelná. O nějakém návrhu a konceptu se zde nedá vůbec mluvit, což je na škodu u tak velké firmy, jakou Microsoft zajisté je. Ve snaze lepšího pochopení systému jsem několikrát kontaktoval Dr. Dalibora Kačmáře, zástupce firmy Microsoft ČR pro Microsoft IT Academy Program, který mi vysvětlil základní charakteristiky systému, zaslal detailnější příručku6 a v případě hlubších nejasností odkázal na technickou podporu programu v Europě. Operátory podpory jsem několikrát, někdy úspěšně a někdy méně úspěšné, kontaktoval a dostal odpovědi na řešení některých problémů. Od informací přímo zaměstnanců firmy Microsoft jsem se dozvěděl, že tyto portály jsou nepřehledné pro mnoho lidí 6 Příručka Microsoft IT Academy administrace je přiložena na dokumentačním CD.
18
KAPITOLA 3. ÚVODNÍ STUDIE
a většina problémů uživatelů je spojena právě se zmíněnou nepřehledností a neporozumění systému.
3.6.3 Czech Efficient Learning Node, AMOS Třetím portálem, jehož funkčnost popisuji je český evidenční systém společnosti Czech Efficient Learning Node (CELN) [3i], která je správcem Cisco Networking programu v České republice. Jak již bylo zmíněno v kapitole 3.6.1, globálním systémem evidence je Cisco Academy Connection portál. Otázkou je, proč je v České republice evidence studentů duplicitní. Je tomu tak z důvodů fakturačních potřeb u komerčního studia. Pokud chce akademie školit, musí být registrována na oba portálech, kde musí evidovat všechny kurzy a studenty i jejich výsledky. Výhodou je, že akademie se nemusí vůbec starat o finance a fakturační operace, které za jistý poplatek zpracovává právě CELN.
Ilustrace 3.7: Czech Efficient Learning Node, AMOS – přihláška ke studiu
KAPITOLA 3. ÚVODNÍ STUDIE
19
Portál je členěn do veřejné a privátní sekce, přístupné z jedné webové stránky, na rozdíl od MS ITA programu. Každý uživatel má svůj vlastní login a heslo, které je navázané na jeho Academy Connection ID. Student po přihlášení na portál může podat přihlášku na kurz některé z akademií. Za zmínku stojí systém evidence organizací, které jsou uloženy v stromové struktuře, tzn. s jasně definovanými vztahy na nadřazené organizace a systém práv a kompetencí. Akademie můžou být zároveň evidovány dle typu poskytovaných školení s nabídkou kurzů komerčních, nekomerčních zdarma, nekomerčních placených, rekvalifikačních, externích, lektorských a nebo v rámci projektu ESF7. Následně se student po zvolení příslušnosti ke konkrétní akademii přihlásí na některý z aktuálně vypsaných kurzů.
Ilustrace 3.8: Czech Efficient Learning Node, AMOS – správa kurzu 7 ESF (zkr.) - Evropský sociální fond
20
KAPITOLA 3. ÚVODNÍ STUDIE Pro správu a evidenci portálu je vyhrazena další samostatná sekce, kde jsou uživatel-
ské role členěny na osobu zodpovědnou a instruktory. Rozdíl mezi oběmi rolemi je nepatrný, výhradně v přístupu osoby zodpovědné k finančnímu modulu a k přehledu financí akademie. V privátní sekce můžou instruktoři vytvářet kurzy a přiřazovat na ně studenty, kteří podáním přihlášky projevili o studium zájem. Vhodným doplňkem je i systém zasílaní emailových zpráv uživatelům při změnách jejich stavů8. Student během studia prochází několika stavy (registered – registrován do portálového systému, tentative - čekající na schválení registrace do systému, waiting – čekající na přiražení na kurz, assigned – přiřazen na kurz, confirmed – student potvrdil účast na kurzu, suspended – vyřazen z účasti na kurzu, finished – dokončil studium kurzu a nepodal další přihlášku). Navzdory fakturačním výhodám má portál několik nedostatků. Jedním z hlavních je problém přiražení uživatelů pod více organizací (např. instruktor vyučující ve více akademiích), a nebo přiřazení studentů na více kurzů (pozn. student může být přiřazen výhradně na jeden kurz). Jedná se výhradně o český evidenční systém, kde se u návrhu neuvažovalo o možnosti rozšiřitelnosti, modularity a nebo o jazykových lokalizacích. Portál nezahrnuje žádné prostředky pro podporu výuky, jako by mohl být například technické diskuzní skupiny a fóra, dokument repository, systém hodnocení kvality a podobně. CELN samotný si je dobře vědom některých implementačních chyb a oznámil v červenci záměr přestavby portálu na novou verzi9.
3.6.4 Zhodnocení V současnosti žijeme v době informací a vědomostí. Každým dnem jsme vystavování potřebě dalšího sebevzdělávaní, ať už sami a nebo formou firemního vzdělávaní. Trh vzdělávacích aktivit se v poslední době každým dnem rychle rozrůstá. Některé společnosti jsou si tohoto faktu plně vědomy a dlouhodobě pracují na vzdělávacích produktech a s nimi spojenou potřebou evidence a správy. Je proto obzvlášť zvláštní, že doposud nevznikl žádný produkt pro tuto oblast, a pokud vznikají jsou úzce vázané na potřeby konkrétního zadavatele. Mým cílem průzkumu stávajících řešení bylo nalézt portálové systémy s podobnými funkcionalitami, které jsem si vytyčil a popsal v katalogů požadavků. Hlavním kritériem 8 Potvrzení přijetí přihlášky, schválení přihlášky studenta, přiřazení studenta na kurz, výzva k potvrzení účasti na kurzu, zaslání faktury, potvrzení zaplacení faktury a ukončení studia. 9 Návrh úprav informačního systému CELN – Amos je přiložen na dokumentačním CD.
KAPITOLA 3. ÚVODNÍ STUDIE
21
hodnocení byla možnost rozšiřitelnosti, funkční návrh a přehlednost aplikace. V tabulce 3.1 jsou graficky vyhodnoceny tři popsané komerční systémy podle potřeb definovaných touto prací v kapitole 3.4 a doplněny o další služby, které poskytují. V hodnocení nejlíp obstál portál Cisco Academy Connection, jehož návrh umožňuje škálovatelnost a modularitu. Ostatní systémy jsou navrženy vysoce specificky na konkrétní potřeby. Portál AMOS se na rozdíl od systému firmy Microsoft jeví přehledně a systematicky celistvě, což ho staví na druhou příčku hodnocení. Při svém průzkumu jsem mi nepodařilo získat informace o jiných systémech dalších školících programů a taktéž jsem nenašel žádný obdobný dostupný evidenční systém. Tento fakt mě ujišťuje v potřebě této práce a následné jedinečnosti mé implementace.
22
KAPITOLA 3. ÚVODNÍ STUDIE
Tabulka 3.1: Porovnání stávajících řešení
Cisco Academy Connection
Microsoft IT Academy
CELN -AMOS
bezpečnost
ü
ü
ü
přehlednost
ü
ý
ü
škálovatelnost, modularita
ü
ý
ý
možnost jazykové lokalizace
ý
ý
ý
rozdělení do privátní a veřejné sekce
ý
ý
ü
systém delegace kompetencí organizace
ü
ý
ü
systém uživatelských rolí a stavů uživatelů
ü
ý
ü
zpětná historická kompatibilita
ü
ý
ý
evidence programů
ü
ý
ý
evidence školení
ü
ü
ü
evidence certifikací
ü
ý
ü
systém zakládání a správy tříd
ü
ü
ü
systém hodnocení kvality
ü
ý
ý
systém hodnocení studentů
ý
ý
ý
online testy
ü
ü
ý
repositář studijních materiálů
ü
ý
ý
diskuzní skupiny, fórum
ü
ý
ý
evidence a rezervace místností
ý
ý
ý
fakturační služby a finanční moduly
ý
ý
ü
zasílání informačních zpráv
ü
ý
ü
technická podpora
ü
ý
ü
FAQ
ü
ý
ý
vynikající
podprůměrný
průměrný
NÁVRH APLIKACE
OBSAH
DALŠÍ SLUŽBY
CELKOVÉ HODNOCENÍ
KAPITOLA 4. ANALYTICKÁ STUDIE
23
4 Analytická studie 4.1 Role uživatelů Systém rolí uživatelů navazuje na potřeby aplikace definované v kapitole 3.4. Dále popsáný systém doplňuje rozdělení uživatelů o popis jejich postavení, návazností a dalšího programového ošetření.
4.1.1 Návštěvník (visitor) Základním uživatelem, o nic méně důležitým než následující uživatele popsání dále, je běžný návštěvník portálu. Návštěvník portálu má možnost prohlížet a vyhledávat veřejné informace umístěné ve veřejné částí portálu. Jeho privilegium je možnost registrace na portál, kde následně může získat další oprávnění. Registrace probíhá na základě spárování zvoleného uživatelského jména s určitou rolí. Z pohledu návštěvníka musí být uložené informace logicky členěny s důrazem na celkovou přehlednost webové aplikace. Tabulka 4.1: Tabulka stavů osob
Status
Popis
registered
osoba je registrovaná, ale její registrace do systému nebyla ještě schválena
tentative
registrace osoby schválena, chybí další náležitosti a informace
eligible
registrace osoby je kompletní, osoba je aktivní
assigned
SPECIAL: student přiřazen na kurz
confirmed
SPECIAL: student potvrdil účast na kurze
paid incomplete failed
SPECIAL: student zaplatil příslušní fakturu SPECIAL: student nedokončil studium kurzu SPECIAL: student ukončil studium kurzu neúspěšně
complete
SPECIAL: student ukončil studium kurzu úspěšně
suspended
SPECIAL: činnost osoby byla pozastavena
finished
osoba ukončila svojí činnost a její konto bylo deaktivováno
Osoby se svojí činností můžou nacházet v několika stavech. Tyto vztahy můžou být rozdělené na dva celky, stavy registrační a stavy procesní. Stavy registrační (registered, tentative, eligible, suspended, finished) jsou společná pro všechny osoby a odrážejí stavy uživate-
24
KAPITOLA 4. ANALYTICKÁ STUDIE
lů vůči aplikaci. Vztahy procesní (assigned,
confirmed,
paid,
incomplete,
failed, complete, suspended) můžou být specifická pro podle specifické role.
4.1.2 Student Největší skupina uživatelů aplikace budou studenti, jejichž hlavní činností bude prohlížení detailních informací o školeních, přihlašování se na ně a podobně. U studentů je největší rozptyl jejich stavů dle dalších okolností spojených s jejich studiem. Studenti můžou dále taktéž přistupovat k nimi spojeným informacím o fakturacích, hodnocení studia, docházky jako i zadávat hodnocení lektorů a organizace kurzů do systému.
4.1.3 Absolvent (alumni) Role absolventa je doplňková k zajištění kompatibility k případným dalším nadstavbám, doplňkům aplikace a nebo kooperujícím systémům hlavně za účelem zprostředkování zaměstnání, možnosti přístupu na technická fóra a komunikaci s instruktory a spolužáky i po dokončení studia. Žádná ze zmíněných funkcionalit aplikace není návrhové řešena jako součást této práce.
4.1.4 Lektor (instructor) Lektor je osoba, která je zodpovědná za organizaci a výuku konkrétního kurzu. Má na starost zakládaní tříd, přiřazování a evidenci studentů, jejich hodnocení studia a docházky a doporučení. Aby mohl instruktor vzdělávat, musí mít splněny určité náležitosti, které ho opravňují k vlastní lektorské činnosti.
4.1.5 Zákazník (customer) Zákazník je ve vztahu k některé jiné organizaci v pozici odběratele (objednavatele) školení a certifikací. Příslušná vzdělávací organizace následně fakturuje ze poskytnuté služby svým zákazníkům.
4.1.6 Manažér akademie (academy manager) Manažér akademie je osoba zodpovědná za funkčnost vzdělávacích aktivit v určité organizaci. Svou činnosti se zodpovídá statutárovi. Je pověřen implementací a správou vzdělávacích aktivit, dohlíží na kvalitu studia a za aktivity jemu podřízených instruktorů.
KAPITOLA 4. ANALYTICKÁ STUDIE
25
4.1.7 Statutár (statutory) Statutár je fyzická, nebo právnická osoba zodpovědná za činnost určité organizace. Je zodpovědný za korektní kontaktní informace o své organizaci, může dále delegovat osobu kompetentní pro správu vzdělávacích aktivit, ale primárně je zodpovědný za finanční náležitosti, fakturace a databázi zákazníků.
4.1.8 Programový manažér (program manager) Role programového manažera je navržena pro potřeby správy informací o konkrétním školícím programu. V praxi jsou tito lidé zodpovědní za implementaci a propagaci některého programu školení v jejich regionu.
4.1.9 Manažér kurzů (course manager) Manažer kurzů je osoba delegovaná programovým manažerem pro správu informací o některé částí kurzů. Programový manažer má na starost řízení celého programu, kde může mít několik podřízených manažerů kurzů dedikovaných na správu určitých školení dle zaměření (např. vývoj, administrace, multimédia apod.).
4.1.10 Operátor pracovní agentury (agency manager) Role operátora pracovní agentury je doplňková k zajištění kompatibility k případným dalším nadstavbám, doplňkům aplikace a nebo kooperujícím systémům primárně za účelem zprostředkování zaměstnání. Tato funkcionalita aplikace není návrhové řešena jako součást této práce.
4.1.11 Administrátor (administrator) Administrátor je speciální role, která je zodpovědná za funkčnost a spolehlivost evidenčního systému. Má oprávnění na všechny úkony ostatních uživatelů, schvaluje registrace organizací, deleguje pravomoci správy programů, kurzů a certifikací příslušným programovým manažerům. Konto administrátora má specifické identifikačně číslo rovno nule a je jediným uživatelem, schopným prvotní konfigurace.
26
KAPITOLA 4. ANALYTICKÁ STUDIE
4.2 Datový model V následující sekci je blíže popsán konceptuální datový model zpracovaný opensource programem DbWrench [15i]. V popisu datového modelu jsou v návaznosti na návrh databáze definované vztahy, jejich kardinality, primární a unikátní index klíče. Zde uvedený popis je pro jeho komplexnost rozdělen do menších logických celků, kde kompletní E-R diagram je přiložen v příloze C. Zdrojový kód ve formátu XML společně s návrhem databáze pro MySql, Microsoft SQL a PostgreSQL jsou uloženy na přiloženém dokumentačním CD. V popisu datového modelu byla použitá následující konvence: •
názvy entit malým písmem
•
názvosloví je výhradně v anglickém jazyce
•
jako rozdělovníky mezer v názvosloví jsou použity znaky „_“, „-“
•
názvy entit reprezentující uživatelské role začínají prefixem „role_“
•
názvy atributů entit začínají vždy třemi až čtyřmi znaky názvu příslušné entity
•
pro potřeby pojmenování indexu se připojí sufix „_Idx“
•
popis entit a vztahu je reprezentován symboly uvedenými v tabulce 4.2
Tabulka 4.2: Vysvětlivky k datovému modelu
- entita - atribut
- primární klíč (primary key) - index klíč (index key) - cizí klíč (foreign key) - vztah (relation)
- vztah 1 - vztah 0,1
- vztah M - vztah 0-M - vztah 1-M
KAPITOLA 4. ANALYTICKÁ STUDIE
27
4.2.1 Evidence organizací Evidence organizací je složena ze třech entit. Základní entita organization obsahuje několik statických atributů, primárně pro evidenci jazykově neměnných a statických informací. Model je nevržen k zajištění možnosti stromové reprezentace návazností (nadřazenosti a podřazenosti) organizací daných atributy org_id a org_id_super. Organizace jsou logicky členěny do typů: •
administration
•
vendor
•
byrokrat
•
academy
•
customer
– speciální organizace s org_id = 0 (správce databáze, administrátor)
– speciální organizace navázaná na školící program (entita program_vendor) – fyzická / právnická osoba, která je nositelem akademie
– část organizace zajištující implementaci školících aktivit – organizace v zákaznickém vztahu ke kterékoliv jiné organizaci
Ilustrace 4.1: Datový model – evidence organizací
Organizace v průběhu své životnosti může vystupovat v několika stavech, kterých význam je blíže popsán v tabulce 4.3.
28
KAPITOLA 4. ANALYTICKÁ STUDIE
Tabulka 4.3: Tabulka stavů organizace
Status
Popis
registered organizace je registrovaná, ale její registrace do systému nebyla ještě
schválena tentative organizace schválena, chybí další náležitosti a informace eligible
registrace organizace je kompletní, organizace může vykonávat svojí činnost
confirmed organizace je aktivně činná suspended činnost organizace byla pozastavena finished
organizace ukončila svojí činnost
Entita organization_lang_description rozšiřuje variabilitu různých jazykově nezávislých doplňkových informací, daných atributem org_lang_type, zejména klíčových slov popisujících organizaci, popis organizace, cílová skupina zaměření organizace, press releases, reference, často kladené otázky atd.
4.2.2 Evidence osob Klíčovou potřebou aplikace je systém evidence osob a přiřazování příslušných kompetencí a pravomocí. K zajištění co největší bezpečnosti a případné škálovatelnosti je evidence rozdělena do
entity person a samostatnými entitami reprezentující konkrétní role
(role_agencymanager, role_customer,
role_statutory,
role_program_manager,
role_academy_manager,
role_course_manager,
role_in-
structor, role_student, role_alumni). Popis konkrétních uživatelských rolí je de-
tailně popsán v kapitole 4.1. Atributy entity person reprezentují statické informace (např. jméno, příjmení, kontaktní informace), které můžou být dynamicky rozšiřitelné v různých jazycích pomocí entit person_extra_title a person_extra_content.
KAPITOLA 4. ANALYTICKÁ STUDIE
29
Ilustrace 4.2: Datový model – evidence osob
4.2.3 Evidence školících programů, kurzů a certifikací Evidence školících programů, kurzů a certifikací je postavena ze čtyř celků: •
evidence všech dostupných programů, kurzů a certifikací (program, course, certification)
•
evidence doplňkových informací k dostupným programům, kurzům a certifikacím (program_lang_description,
course_lang_description,
certifi-
cation_lang_description) •
evidence
akademií
implementovaných
programů
(programs_academy_implemented, courses_academy_implemented) •
evidence tříd (courses_academy_particular)
a kurzů
30
KAPITOLA 4. ANALYTICKÁ STUDIE
Ilustrace 4.3: Datový model – evidence školících programů, kurzů a certifikací
4.2.4 Certifikace Reprezentace vztahu podstoupení certifikace (certification) osobou – studentem (role_student) je daná vztahovou entitou certification_take. Pro evidenci výsledků a úspěšnosti certifikace je nutné programové ošetření porovnání minimálních požadavků na složení zkoušky (cert_valuation_requirements) a aktuálního výsledku zkoušky (cert_take_valuation) viz ilustrace 4.4.
Ilustrace 4.4: Datový model – certifikace
KAPITOLA 4. ANALYTICKÁ STUDIE
31
4.2.5 Výuka Problém popisu výukového procesu je více komplexnější. Základem je evidence implementovaných kurzů (courses_academy_implemented) a návazností na způsobilost lektorů (course_instructor_eligibility) k výuce konkrétních kurzů (couses_academy_particular). Implementací je následně řešen systém zakládaní tříd, přiřazování lek-
torů (role_instructor) a studentů (role_student) do tříd vztahovými entitami teaching a learning, které jsou doplněny o doplňkové entity hodnocení kvality (courses_academy_part_feetback), hodnocení docházky (courses_academy_part_attendance) a hodnocení studijních výsledků (courses_academy_part_gradebook).
Ilustrace 4.5: Datový model – výuka
4.2.6 Fakturace Navržený systém je schopen agregovat fakturační údaje (invoicing_records) za poskytnuté
služby
výuky
(learning)
a podstoupení
certifikace
(certification_take). Z těchto informací jsou pak vystavovány faktury přímo organizacím (organization) a nebo fyzické osobě (role_customer). Model je navržen tak, aby umožňoval možnost fakturace více položek, jak právnickým tak i fyzickým osobám. K správě fakturačních informací bude pomocí programového ošetření mít práva zápisu a vytváření pou-
32
KAPITOLA 4. ANALYTICKÁ STUDIE
ze statutární osoba (role_statutory) a práva nahlížení manažer akademie (role_academy_manager).
Ilustrace 4.6: Datový model – fakturace
KAPITOLA 5. NÁVRH ARCHITEKTURY
33
5 Návrh architektury Podle zadání aplikace má být postavena na opensource řešení s důrazem na ergonomii, bezpečnost, stabilitu a škálovatelnost aplikace. Pro běžné webové portálové systémy by plně postačovali některé z dostupných Content Management Systémů. Některé z těchto systémů se soustředí pouze na správu statických stránek, slouží tedy spíše jen pro publikaci obsahu. Ovšem navržený systém aplikace je vysoko specifický a pro samotnou implementaci není možno použít běžných CMS, nýbrž je nutné navrhnout aplikaci zcela nezávisle. V takovém případě je vhodné aplikaci postavit na některém z opensource šablonového systémů a aplikovat jenom některé specifické moduly pro správu statických stránek. V prvním momentě je pro naše potřeby nutné vybrat platformu na které bude webový systém implementován. Z nejrozšířenějších technologií v současnosti jsou ASP.NET, PHP a Java Server Pages. Technologie ASP.NET a JSP pro svojí funkčnost požadují vlastní prostředí. Pro implementaci postavené na ASP.NET je zapotřebí systému, které neodpovídají požadavku na otevřenost kódu. Z těchto důvodu jsme jednoznačně volili technologii PHP [16i], která má výbornou základnu podpory a nespočetně mnoho online dostupných informací, rad a manuálů na internetu [17i]. Při výběru šablonového systému je dostupných několik produktů [18i]. Z nich v poslední době nejrozšířenější a do budoucna dlouhodobě nejvíc perspektivní jsou právě Smarty [19i]. Ostatní systémy výhradně oddělují designovou část a logickou část, kde Smarty navíc disponují funkcemi cachování stránek s důrazem na větší stabilitou, rychlost a flexibilitu. Rovněž tento systém má propracovanou dokumentaci, řadu návodů a ukázek na internetu jak v angličtině, tak i češtině [20i]. Tento systém samotný bohužel nemá prostředky na správu statických stránek a je nutné sáhnout po jiném doplňkové řešení. V poslední době se široce rozšířil systém editace stránek pomocí jazykových překladačů podobných Wiki stránkám. Jedním z těchto systémů je i český opensource produkt Texy [21i] zveřejněný pod licencí GPL. Texy samotné jsou v skutečnosti jenom třídy syntaktického překladače, který může být doplněn o Javascriptovou aplikací Texyla [22i] zabezpečující funkce WYSIWYG (pozn. What You See Is What You Get) editoru.
34
KAPITOLA 5. NÁVRH ARCHITEKTURY
5.1 Popis technologií 5.1.1 HTML HTML (HyperText Markup Language, 1989) je široko rozšířen značkovací jazyk pro tvorbu webových stránek. Je charakterizován množinou značek a jejich atributů. Mezi značky se uzavírají části textu dokumentu a tím se určuje význam (sémantika) obsaženého textu. Názvy jednotlivých značek se uzavírají mezi úhlové závorky ("<" a „>“). Část dokumentu uzavřená mezi značkami tvoří tzv. element dokumentu. [23i]
5.1.2 CSS CSS (Cascading Style Sheets) je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML. Hlavním smyslem je umožnit návrhářům oddělit vzhled dokumentu od jeho struktury a obsahu. [23i]
5.1.3 PHP PHP (Hypertext Preprocessor, 1994) je skriptovací programovací jazyk, určený především pro programování dynamických internetových stránek. Nejčastěji se začleňuje přímo do struktury jazyka HTML, XHTML či WML, což je velmi výhodné pro tvorbu webových aplikací. PHP skripty jsou prováděny na straně serveru, k uživateli je přenášen až výsledek jejich činnosti.
PHP je nezávislý na platformě, skripty fungují bez úprav
na mnoha různých operačních systémech. Díky velmi častému nasazení na serverech se vžila zkratka LAMP – tedy spojení Linux, Apache, MySQL a PHP. [23i]
5.1.4 SQL SQL (Structured Query Language) je standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích. Vznikl v 70. letech 20. století probíhal ve firmě IBM s původním názvem SEQUEL (Structured English Query Language). Jako standart byl přijat v roku 1986 pod označením SQL-86. Zatím nejnovějším standardem je SQL3 (SQL99), který reaguje na potřeby nejmodernějších databází s objektovými prvky. [23i]
KAPITOLA 5. NÁVRH ARCHITEKTURY
35
5.1.5 Javascript JavaScript je multiplatformní, objektově orientovaný skriptovací jazyk. Jeho syntaxe patří do rodiny jazyků C/C++/Java. Slovo Java je však součástí jeho názvu pouze s marketingových důvodů a s programovacím jazykem Java jej vedle názvu spojuje jen podobná syntaxe. Program v JavaScriptu se obvykle spouští až po stažení WWW stránky z Internetu (tzv. na straně klienta), na rozdíl od ostatních interpretovaných programovacích jazyků (např. PHP a ASP), které se spouštějí na straně serveru ještě před stažením z Internetu. Z toho plynou jistá bezpečností omezení, JavaScript např. nemůže pracovat se soubory. [23i]
5.1.6 AJAX AJAX (Asynchronous JavaScript and XML, 1995) je obecné označení pro technologie vývoje interaktivních webových aplikací, které mění obsah svých stránek bez nutnosti jejich znovu načítání. Na rozdíl od klasických webových aplikací poskytují uživatelsky příjemnější prostředí, ale vyžadují použití moderních webových prohlížečů. Ajax ve skutečnosti není konkrétní jednotlivá technologie, ale pojem označující použití několika technologií dohromady s určitým cílem. [23i]
5.1.7 UML UML (Unified
Modeling
Language, 1994) je v softwarovém inženýrství
grafický jazyk pro vizualizaci, specifikaci, navrhování a dokumentaci programových systémů. UML nabízí standardní způsob zápisu jak návrhů systému včetně konceptuálních prvků jako jsou business procesy a systémové funkce, tak konkrétních prvků jako jsou příkazy programovacího jazyka, databázová schémata a znovupoužitelné programové komponenty. UML podporuje objektově orientovaný přístup k analýze, návrhu a popisu programových systémů. UML neobsahuje způsob, jak se má používat, ani neobsahuje metodiku(y), jak analyzovat, specifikovat či navrhovat programové systémy [23i].
KAPITOLA 6. IMPLEMENTACE
37
6 Implementace 6.1 Prostředí, použité nástroje 6.1.1 Operační systém Operační systém Linux je volně šiřitelný OS typu UNIX. Jeho autorem je Linus Torvalds a mnoho dalších programátorů. Jádro Linuxu je volně šiřitelné podle pravidel GNU General Public License. Jednou z hlavních výhod oproti komerčním UN*Xům je jeho nulová cena, dále snadno dostupný základní software a v neposlední řadě také nízké nároky na hardware a velmi příznivý výkon. Pro implementaci jsem zvolil distribuci Ubuntu 6.06 Dapper Drake [25i] z důvodu bezpečnosti a stability. Verze Dapper Drake je zároveň verzí
dlouhodobé
podpory
(LTS),
s garantovanou
pětiletou
podporou
pro
serverovou
platformu.[23i]
6.1.2 Webový server Apache 2.0.59 Apache HTTP Server [26i] je softwarový webový server s otevřeným kódem pro Linux, BSD, Microsoft Windows a další platformy. V současné době dodává prohlížečům na celém světě většinu internetových stránek. [23i] Pro implementaci jsem zvolil verzi Apache 2.0.59 s konfigurací s podporou SSL šifrovaného spojení.
6.1.3 PHP5 PHP engine [16i] je softwarový překladač PHP kódů na straně serveru. PHP překladač načte zdrojový kód aplikace, provede požadované operace a výstup vrátí ve formě webové stránky pomocí webového serveru. Pro implementaci jsem zvolil verzi PHP5 s nastavěním režimu safemode z důvodu bezpečnosti aplikace. [24i]
6.1.4 MySQL 5.0.22 MySQL engine [27i] je softwarový databázový systém. Pro implementaci jsem zvolil verzi MySQL v.5.0.22 s politikou přístupu pouze z localhost (tj. výhradně pro potřeby lokálně běžících webových stránek) a přístupem uživatele pro globální prostředí pouze v režimu USAGE, a přístupem k konkrétní databázi pouze s oprávněními SELECT, INSERT, UPDATE, DELETE..
38
KAPITOLA 6. IMPLEMENTACE
6.1.5 PhpMyAdmin 2.8.1 PhpMyAdmin [28i] je nástroj napsaný v jazyce PHP umožňující jednoduchou správu obsahu databáze MySQL prostřednictvím webového rozhraní. [23i] Pro implementaci jsem zvolil verzi phpMyAdmin 2.8.1 s bezpečnostním nastavěním omezeného přístupu pomocí .htaccess restrikcí webového serveru.
6.1.6 Smarty 2.6.18 Smarty [19i] znamená chytrý, elegantní, pohotový. A přesně takový je i stejnojmenný systém šablon pro PHP, který umožňuje vkládat do HTML kódu speciální znaky a příkazy a oddělit tak aplikační logiku od prezentace dat. Smarty dává designérům a programátorům k dispozici funkce od jednoduchého předávání proměnných, začlenění prezentační logiky do HTML šablon, vytváření vlastních funkci nebo modifikátorů, až po spolupráci s XML a WML. [20i] Instalace a konfigurace smarty template engine: [29i] root@webserver:# gtar -ztvf Smarty-2.6.18.tar.gz root@webserver:# mkdir /usr/local/lib/php/Smarty root@webserver:# cp -r Smarty-2.6.18/libs/* /usr/local/lib/php/Smarty root@webserver:# cd /web/www.domain.com root@webserver:# mkdir /var/www/avalanche/smarty root@webserver:# mkdir /var/www/avalanche/smarty/templates root@webserver:# mkdir /var/www/avalanche/smarty/templates_c root@webserver:# mkdir /var/www/avalanche/smarty/cache root@webserver:# mkdir /var/www/avalanche/smarty/configs root@webserver:# chown www-data:www-data /var/www/avalanche/smarty/templates_c root@webserver:# chown www-data:www-data /var/www/avalanche/smarty/cache root@webserver:# chmod 775 /var/www/avalanche/smarty/templates_c root@webserver:# chmod 775 /var/www/avalanche/smarty/cache
6.1.7 Texy 2 Texy [21i] je jednoduchý překladač gramatiky používán zejména k editaci statických stránek. Uživatel pomocí předem definovaných značek a symbolů edituje text, kde překladač ho následně zkonvertuje do validního HTML kódu. Z použitím Javascript nadstavby Texyla [22i] má uživatel následně k dispozici jednoduchý WYSIWYG editor pro příjemnější práci.
KAPITOLA 6. IMPLEMENTACE
39
6.1.8 OpenOffice.org 2.0 OpenOffice.org [30i] je kancelářský balík šířený jako svobodný software pod licencí LGPL. Je komukoliv dostupný zdarma, schopný provozu pod operačnímy systémy Microsoft Windows, Mac OS X, GNU/Linux, Solaris a FreeBSD. Všechny jeho součásti jsou zcela počeštěny. OpenOffice.org Writer byl použit k sepsáni této práce.[23i]
6.1.9 PSPad 4.5.3 PSPad [31i]je freewarový textový editor a editor zdrojových kódů pro platformu Microsoft Windows. PSPad editor je navržen jako univerzální editor pro editaci textů mnoha programovacích jazyků. Podporuje například PHP, Perl, HTML nebo Java.
6.2 Návrh grafického rozhraní Pří návrhu uživatelského grafického rozhraní jsem postupoval podle základních zásad webového designu. Design jsem navrhl s důrazem na co nejlepší ergonomii a přehlednost portálu. Stránka bude členěna do několika částí. Stránka má dvě navigační menu, kde vrchní menu je hlavní a pravé je sekundární. Primární menu je statické a rozděluje stránky do sekcí Organizations, Programs, Courses a Certifications. Pravé menu se adaptabilně
mění podle volby v menu hlavním. Informace se následně zobrazují v centrální části s možností případného dalšího rozdělení do dvou částí. V pravém odseku se pak může uživatel přihlásit a nebo registrovat do systému portálu.
Ilustrace 6.1: Implementace – úvodní stránka
40
KAPITOLA 6. IMPLEMENTACE Podle výzkumu by webové stránky neměli obsahovat více než tři barvy, které musí být
dostatečně navzájem kontrastní. Z těchto důvodu byli pro portál zvoleny tří základní barvy, černá, bíla a červená. Pro navigační menu, nadpisy a odkazy je použita výraznější červená, pro text černá na bílem podklade. Pro lepší čitelnost je použito bezpatkové písmo.
Ilustrace 6.2: Implementace – seznam organizací členěn podle A. stromové struktury, B. Abecedně
Podle návrhu portál děli na veřejnou a privátní sekce. Kde návštěvník může prohlížet omezené informace. Viz například ilustrace 6.2, kde můžeme vidět dva způsoby prohledávaní organizací. A to pomocí stromové struktury návazností mezi organizacemi, a nebo jejich abecedním seznamem. Po zvolení konkrétní organizace se uživateli zobrazí stručné informace, viz. ilustrace 6.3.
Ilustrace 6.3: Implementace – detail organizace
KAPITOLA 6. IMPLEMENTACE
41
6.3 Organizace zdrojového kódu Zdrojový kód aplikace je rozdělen na designovou, logickou a prezentační část. Designová část je složená z obrázků a kaskádových stylů, odděluje design od HTML kódu. Logická část, složená z PHP skriptů vykonává logické operace a dotazy nad databázi, které následně zobrazuje pomocí definovaných šablon. Struktura webové aplikace: •
[D]10 css/
- CSS kaskádové styly
•
[D] images/
- grafika, obrázky, tlačítka a animace
•
[D] smarty/
- šablonový systém Smarty
•
•
[D] cache/
- mezipaměť Smarty
•
[D] configs/
- konfigurační specifikace Smarty
•
[D] misc/
•
[D] templates
- šablony webové aplikace
•
[D] templates_c
- zkompilované šablony webové aplikace
[F]11 *.php
10 zkr. [D] – directory (adresář) 11 zkr. [F] – file (soubor)
- PHP kódy aplikace
42
KAPITOLA 6. IMPLEMENTACE
6.4 Bezpečnost a stabilita aplikace Při implementaci je požadováno, aby byl brán zřetel na bezpečnost a stabilitu aplikace. Bezpečností jsem se zabýval jak již při návrhu aplikace, tak taktéž při volbě programového prostředí na kterém je aplikace postavena. Bezpečnost a stabilitu zabezpečující tyto opatření: •
aplikace je umístěná na speciálně dedikovaném webovém serveru, a nebo v hostingu se smluvně zaručenou kvalitou služby
•
server je připojen na vysokorychlostní připojení se smluvně garantovanou dostupností
•
před a nebo přímo na webovém serveru je korektně nakonfigurován firewall a monitorovací systém Intrusion Detection System
•
•
na webovém serveru běží: •
stabilní a aktualizovaná verze operačního systému
•
stabilní verze webového serveru Apache v režimu safemode
•
stabilní a zabezpečená verze PHP enginu s nastavěním register_globals=off
•
stabilní a zabezpečená verze MySql enginu omezena pouze na localhost
administrativní rozhraní phpMyAdmin, je přístupné jenom skrz bezpečné privátní rozhraní
•
aplikace je uložena v chrooted prostředí s korektně nastaveným vlastnictvím souborů a korektně nastavenými právy
•
•
aplikace je navržena a implementována bezpečně s důrazem na: •
lexikální kontrolu uživatelských vstupů na straně uživatele i serveru
•
kontrolu SQL dotazů na MySql injections
•
zasílaní důvěrných informací pomocí https protokolu s podporou SSL šifrování
•
ověřování některých požadavků potvrzovacími emailovým správami
•
minimální bezpečnostní požadavky uživatelských hesel
aplikace a její databáze je pravidelně zálohována
KAPITOLA 7. ZÁVĚR
43
7 Závěr Ve své bakalářské práci jsem se zaměřil na návrh a částečnou implementaci obecného systému evidence školících aktivit. V prvotní etapě jsem se zabýval vypracováním detailního popisu požadavků na funkce, uživatelské role, scénáře a vlastnosti takového systému. Na základě těchto požadavků jsem dále vykonal průzkum dostupných stávajících řešení. Prohledal jsem seznamy certifikačních programů a pokusil se zjistit jestli pro svoji evidenci využívají nějaké evidenční systémy. Zjistil jsem, že výrobci programů si často navrhují vlastní uzavřené aplikace, dostupné jenom pro jejich zákazníky po ověření identity. Nenašel jsem žádný opensource ani komerční produkt podobného typu, který by byl na trhu dostupný. Tento fakt mě utvrdil ve smyslnosti mé práce a její jedinečnosti. Popsal jsem proto některé ze systém s kterými jsem se potkal ve své praxi a které jsem podle mích kritérií a specifikací navzájem porovnal. Při popisu jsem odhalil i některé jejich nedostatky návrhu. Pro lepší návrh mojí aplikace jsem tyto zkušenosti pak aplikoval mé práci. Většinu svého přínosu práce vidím v návrhové části, kde jsem se zaměřil na potřebu modulárně škálovatelné a rozšířitelné aplikace. Svůj návrh jsem zaměřil primárně na několik hlavních procesů – evidenci organizací, evidenci osob a jejich uživatelských rolí, systém výuky a systém finanční správy. Aplikaci jsem navrhl tak, aby všechny hlavní části mohli být jazykové nezávislé a rozšířitelné. Některé další možnosti rozšíření, například o systém zprostředkování práce, jsem již navrhl v podobě uživatelských rolí absolventa a manažera pracovní agentury. Mezi další možnosti rozšíření mě napadají například sekce knihovny, uživatelské fóra a diskuzní skupiny, systémy vstupných testů, systémy vytváření referencí pro zaměstnavatele, či správa místností a rezervací učeben. Systém uživatelských rolí je navržen tak, že osoby můžou variabilně být evidovány ve více organizacích, kurzech i rolích. Je tak zabezpečená i zpětná kompatibilita záznamů do minulosti. Některé z těchto funkcionalit výše popsané stávající portálové systémy neošetřují. Ovšem zjistil jsem, že jsem při svém návrhu opomněl na nutnost kontroly prerekvizit a návazností kurzů, a na potřebu systému komunikace a zasílaní informačních emailových správ. Z důvodu netriviálnosti problému a v mojí snaze o co nejlepší návrh aplikace jsem věnoval méně času na implementaci aplikace. Při realizaci jsem se zaměřil na klíčové části evidence organizací, osob, certifikačních programů, školení a kurzů. Navrhl jsem použití moderních opensource technologií a zaměřil jsem se na potřebu ošetření bezpečnosti a stabili-
44
KAPITOLA 7. ZÁVĚR
ty aplikace a celkovou ergonomii a přehlednost produktu. Evidenční portál jsem rozdělil do veřejné a privátní sekce. Běžný návštěvníci můžou tak procházet veřejně dostupné informace, ale k přístupu do privátní sekce je potřebná registrace a příslušná delegace práv uživatelům. Pro evidenci organizací jsem navrhl stromovou strukturu reprezentace, kde v porovnáni s lineární strukturou je lepší možnost správy práv a možnost další rozšiřitelnosti. Celkově hodnotím svoji práci pro mě jako přínosnou a cennou zkušenost. Zjistil jsem, že v úvodě jsem podhodnotil komplexnost a netriviálnost problematiky. Z těchto důvodu jsem se ve své práci zaměřil na komplexnost a celistvost návrhu na úkor následné implementace, kterou jsem omezil na klíčové části. V budoucnosti vidím i nadále další potenciál v této problematice a rád bych navázal v práci rozšířením zejména o analýzu dalších stávajících produktů, rozšíření návrhu o další funkcionality se zaměření se primárně na implementační část práce.
KAPITOLA 8. POUŽITÉ ZDROJE
45
8 Použité zdroje 8.1 Seznam literatury [1] Richta, K., Sochor, J.: Softwarové inženýrství I, 1. vyd. Praha: ČVUT, 1996. [2] Kosek, J.: PHP – tvorba interaktivních internetových aplikací, 1. vyd. Praha: Grada Publishings s.r.o., 1998. [3] Welling , L.,Thomson, L.: PHP a MySQL – rozvoj webových aplikací, 2.vyd. Praha: SoftPress s.r.o., 2004. [4] Pokorný, J., Halaška, I.: Databázové systémy. Praha: Vydavatelství ČVUT, 1997. [5] Halaška, I., Pokorný, J., Valenta, M.: Databázové systémy – cvičení. Praha: Vydavatelství ČVUT, 2002.
46
KAPITOLA 8. POUŽITÉ ZDROJE
8.2 Internetové odkazy [1i] Globální informační systém Networking Academy. http://cisco.netacad.net/. [2i] Microsoft IT Academy program. http://www.microsoft.com/education/msitacademy/. [3i] Informační systém evidence Networking Academy v ČR. https://www.celn.cz/amos/. [4i] ArgoUml – nástroj na vytváření UML diagramů. http://argouml.tigris.org/. [5i] Zákon o ochraně osobních údajů. http://business.center.cz/business/pravo/zakony/oou/. [6i] Úřad pro ochranu osobních údajů. http://www.uoou.cz/. [7i] Certification Top 10 Lists. http://www.certmag.com/articles/templates/CM_gen_Article_template.asp?articleid=2401 [8i] Certification Vendors. http://www.gocertify.com/vendors/. [9i] Microsoft Learning. http://www.microsoftlearning.com/. [10i] Microsoft Live ID. https://login.live.com/. [11i] MS IT Academy - member portal. http://members.microsoft.com/itacademy/ITAMOAC.mspx. [12i] Microsoft Learning – Instructors Learning Management System (LMS). http://itacademyinstructor.microsoftelearning.com/. [13i] Microsoft Learning – Microsoft IT Academy Student Online Campus. http://itacademy.microsoftelearning.com/. [14i] Wiley & Sons MS IT Academy Resource portal. http://eu.wiley.com/WileyCDA/Section/id-302887.html. [15i] DbWrench - Database design and synchronization software. http://www.icewalkers.com/Linux/Software/522190/DbWrench.html. [16i] Referenční manuál programovacího jazyka PHP. http://www.php.net. [17i] Repositář PHP tříd. http://www.phpclasses.org. [18i] Top 25 PHP template engines. http://www.whenpenguinsattack.com/2006/07/19/php-template-engine-roundup/.
KAPITOLA 8. POUŽITÉ ZDROJE
47
[19i] Smarty Template Engine. http://smarty.php.net/. [20i] SMARTY - šablonový systém pro PHP. http://interval.cz/serialy/smarty-sablonovaci-system-pro-php/. [21i] Jazykových překladač Texy. http://texy.info/cs/. [22i] Javascript Texyla editor. http://texyla.jaknato.com/. [23i] Otevřená encyklopedie – česká verze. http://www.wikipedia.cz/. [24i] Otevřená encyklopedie – anglická verze. http://www.wikipedia.com/. [25i] Operační systém Linux – distribuce Ubuntu 6.06 LTS Dapper Drake. http://releases.ubuntu.cz/dapper/. [26i] Apache – webserver. http://www.apache.org/. [27i] MySQL referenční manuál. http://dev.mysql.com/doc/refman/4.1/en/index.html. [28i] phpMyAdmin project. http://www.phpmyadmin.net/. [29i] Smarty v PHP5. http://smarty.ronnieweb.net/. [30i] OpenOffice.org. http://www.openoffice.cz. [31i] Textový editor PSPad. http://www.pspad.com/cz/. [32i] Návrh aplikací v jazyce UML. http://interval.cz/clanek.asp?article=2783. [33i] Nástroje pro tvorbu UML diagramů. http://www.root.cz/clanky/nastroje-pro-tvorbu-uml-diagramu/#k072. [34i] Data Model Cardinality. http://www.datamodel.org/DataModelCardinality.html. [35i] Semestrální projekt X36SIN, team 6. http://team.kvalitne.cz/. [36i] Slovník. http://www.slovnik.cz/. [37i] Pokyny pro psaní bakalářských a magisterských závěrečných prací na katedře počítačů. https://info336.felk.cvut.cz/. [38i] Polách: Pravidla sazby diplomových prací. JČU Pedagogická fakulta, 1998. http://home.pf.jcu.cz/%7Eedpo/pravidla/pravidla.pdf.
48
KAPITOLA 8. POUŽITÉ ZDROJE
[39i] Rybička: Diplomové práce. Mendelova Univerzita Brno - Provozně technická fakulta, 2006. http://old.mendelu.cz/%7Erybicka/zpract/jaknadip.pdf.
KAPITOLA 9. SEZNAM TABULEK, ILUSTRACÍ A PŘÍLOH
49
9 Seznam tabulek, ilustrací a příloh 9.1 Seznam tabulek Tabulka 3.1: Porovnání stávajících řešení................................................................................ 22 Tabulka 4.1: Tabulka stavů osob............................................................................................. 23 Tabulka 4.2: Vysvětlivky k datovému modelu........................................................................ 26 Tabulka 4.3: Tabulka stavů organizace....................................................................................28
9.2 Seznam ilustrací Ilustrace 3.1: Kontextový diagram – neregistrovaný uživatel.................................................... 7 Ilustrace 3.2: Kontextový diagram A – registrovaný uživatel.................................................... 9 Ilustrace 3.3: Kontextový diagram B – registrovaný uživatel.................................................. 11 Ilustrace 3.4: Cisco Academy Connection................................................................................ 15 Ilustrace 3.5: Microsoft IT Academy Instructor Learning Management System..................... 16 Ilustrace 3.6: Microsoft IT Academy Student Online Campus.................................................17 Ilustrace 3.7: Czech Efficient Learning Node, AMOS – přihláška ke studiu........................... 18 Ilustrace 3.8: Czech Efficient Learning Node, AMOS – správa kurzu.....................................19 Ilustrace 4.1: Datový model – evidence organizací.................................................................. 27 Ilustrace 4.2: Datový model – evidence osob........................................................................... 29 Ilustrace 4.3: Datový model – evidence školících programů, kurzů a certifikací.....................30 Ilustrace 4.4: Datový model – certifikace................................................................................. 30 Ilustrace 4.5: Datový model – výuka........................................................................................ 31 Ilustrace 4.6: Datový model – fakturace................................................................................... 32 Ilustrace 6.1: Implementace – úvodní stránka.......................................................................... 39 Ilustrace 6.2: Implementace – seznam organizací členěn podle A. stromové struktury, B. Abecedně...................................................................................................................................40 Ilustrace 6.3: Implementace – detail organizace....................................................................... 40
50
KAPITOLA 9. SEZNAM TABULEK, ILUSTRACÍ A PŘÍLOH
9.3 Seznam příloh Příloha A – Oznámení o zpracování osobních údajů podle § 16 zákona č.101/2000 Sb. Příloha B – Datový model Příloha C - Struktura přiloženého CD