• No results found

Informační systém pro on-line zadávání a přihlašování na zkouškové termíny

N/A
N/A
Protected

Academic year: 2022

Share "Informační systém pro on-line zadávání a přihlašování na zkouškové termíny "

Copied!
60
0
0

Loading.... (view fulltext now)

Full text

(1)

Fakulta strojní

DIPLOMOVÁ PRÁCE

Informační systém pro on-line zadávání a přihlašování na zkouškové termíny

Liberec 2003 David Vostrý

(2)

Fakulta strojní

Studijní obor : 23 – 40 – 8 Automatizované systémy řízení ve strojírenství Zaměření : Automatizace inženýrských prací

Katedra aplikované kybernetiky

Informační systém pro on-line zadávání a přihlašování na zkouškové termíny

Information system for on-line setting and signing up to exam terms

David Vostrý

Vedoucí diplomové práce : Ing. Jan Žitník Konzultant diplomové práce : Ing. Jan Žitník

Rozsah diplomové práce počet stran: 50 počet příloh: 3

(3)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta strojní

Katedra aplikované kybernetiky

Studijní obor: 23 – 40 – 8 Automatizované systémy řízení ve strojírenství Studijní zaměření: automatizace inženýrských prací

Diplomant: David Vostrý

Téma práce: Informační systém pro on-line zadávání a přihlašování na zkouškové termíny

Theme of work: Information system for on-line setting and signing up to exam terms

Rok obhajoby DP: 2003

Vedoucí DP: Ing. Jan Žitník Konzultant: Ing. Jan Žitník

Anotace:

Smyslem diplomové práce je vytvořit Informační systém pro online zadávání a přihlašování na zkouškové termíny. Cílem je reálné nahrazení přihlašovacích archů k přihlašování na zkoušky, realizované na zvolené platformě s pomocí vhodného skriptovacího jazyka a databázového systému.

Annotation:

The purpose of this diploma work is to create an information system for on-line setting and signing up to exam terms. The objective is the substitution of the signing-up sheets realized on the selected platform with advisable script language and database system.

(4)

Místopřísežné prohlášení

„Místopřísežně prohlašuji, že jsem diplomovou práci vypracoval samostatně s použitím uvedené literatury.“

V Liberci 23. 5. 2003

………

David Vostrý

(5)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta strojní

__________________________________________________________________

Katedra aplikované kybernetiky Studijní rok: 2002/03

ZADÁNÍ DIPLOMOVÉ PRÁCE

Jméno a příjmení: David V o s t r ý

Obor: 23–40–8 Automatizované systémy řízení ve strojírenství

Zaměření: automatizace inženýrských prací

Ve smyslu zákona č. 111/1998 Sb. o vysokých školách se Vám určuje diplomová práce na téma:

Informační systém pro on-line zadávání a přihlašování na zkouškové termíny

Zásady pro vypracování:

1. Seznámení s tvorbou webových aplikací a návrh architektury zadaného informačního systému.

2. Přehled databázových systémů a skriptovacích jazyků pro WWW server a výběr vhodného prostředí pro zvolenou platformu.

3. Definice a implementace databázové struktury pro zadaný informační systém.

4. Implementace informačního systému a jeho nasazení na WWW serveru katedry kybernetiky

(6)

1. Úvod ... 7

2. Architektura WWW ... 8

2.1 Historie Internetu ... 10

2.2 Počítačové sítě ... 12

2.2.1 Sítě LAN a WAN ... 12

2.2.2 Síťové protokoly ... 14

2.3 Historie a vývoj HTML ... 19

2.4 Dynamicky generované aplikace ... 21

2.4.1 CGI ... 22

2.4.2 Skripty ... 23

2.4.3 PHP ... 24

2.4.4 ISAPI ... 26

2.4.5 ASP ... 28

3. Databáze ... 32

3.1 Definice databáze ... 32

3.2 Databázový systém ... 33

3.3 Architektura klient-server ... 34

3.4 Databázový jazyk SQL ... 35

3.5 Druhy databázových systémů ... 37

4. Architektura informačního systému ... 38

4.1 Úkol systému ... 38

4.2 Zvolení platformy Windows ... 39

4.2.1 Server Windows 2000 ... 39

4.2.2 Popis databázového systému MS SQL ... 40

4.3 Funkce systému ... 41

4.4 Struktura databáze ... 45

4.4.1 Diagram datových toků ... 46

4.4.2 Relační model dat ... 47

4.5 Nasazení na serveru katedry ... 48

5. Závěr ... 49

6. Použitá literatura ... 50 Přílohy

(7)

1. Úvod

Internet. Fenomén posledních 10 let. Tak by se dala charakterizovat celosvětová siť, kterou v dnešní době využívají miliony lidí. Ať už pro zábavu nebo k výkonu své práce, ale především jako výborného pomocníka v hledání nejrůznějších více či méně potřebných informací. Jednou z výhod počítačů, včetně celosvětové sítě internet, je ulehčování a nahrazování úkonů, které jsou řešeny jinou formou než elektronicky.

Cílem této diplomové práce je právě nahrazení klasických papírových archů používaných k přihlašování na zkoušky moderní formou elektronické komunikace a zjednodušit tak způsob přihlašování studentům, ale i učitelům ve vypisování těchto zkušebních termínů.

Proto věnuji první pozornost na architekturu www, kterou tato diplomová práce využívá. Této architektuře se věnuji v kapitole 2, kde popisuji historii sítě internet a rozdělení počítačových sítí. Dále se v této kapitole zaměřuji na informace o historii a vývoji HTML a dynamicky generovaných aplikací, s největším důrazem na skriptovací jazyk ASP na kterém je tato dynamická

aplikace postavena.

V kapitola 3 se věnuji databázím, architektuře klient - server, databázovým systémům - s důrazem na Microsoft SQL server 7.0 a dotazovacímu jazyku SQL, které využívám k implementaci aplikace.

V kapitole 4 popisuji úkoly systému, které má navržená aplikace splňovat, funkcím tohoto systému a v neposlední řadě struktuře, jak je databáze potřebná k ukládání všech informací vytvořena. Závěr této kapitoly jsem věnoval vlastnímu nasazení této dynamické aplikace na server katedry.

(8)

2. Architektura WWW

Systém je postaven na architektuře www, jehož principu se budeme nyní věnovat. Začneme ve Švýcarsku, konkrétně v Ženevě, kde má své sídlo organizace se jménem CERN. Jde o zkratku z Centre Europeen pour Recherche Nucleare, což dává tušit, že jde o středisko jaderných výzkumů. Pro nás je ovšem podstatné to, že právě zde se zrodila služba WWW (World Wide Web). Původně byla tato služba vyvíjena jako prostředek pro vzájemné šíření informací mezi vědci, pracujícími v oblasti jaderného výzkumu. Později se ale ukázalo, že tato služba byla navrhnuta velmi rozumně, že nabízí opravdu velké možnosti a tak si časem získala velmi velkou oblibu a rozšířila se i mimo komunitu jaderných fyziků.

WWW Klient

Základními jednotkami, po kterých se informace uživatelům předkládají, jsou tzv. stránky (pages). Chcete-li si je ale prohlížet na vašem počítači, potřebujete k tomu vhodný program, který je dokáže správně zobrazovat.

Takovýto program plní funkci klientské části služby World Wide Web, neboli funguje jako tzv. WWW klient (zatímco v roli WWW serveru vystupuje počítač, kde jsou tyto stránky ve formě souborů uloženy, a odkud jsou „čtenářům"

zasílány).

Obrázek 1: Statický obsah webu – požadavek a odeslání

Zdroj: autor

(9)

Možnost vzájemně provázat jednotlivé stránky (prostřednictvím odkazů) je jednou ze dvou nejdůležitějších vlastností služby World Wide Web (tou druhou je grafický charakter prezentovaných informací, s možností vkládat obrázky atd.). Přitom vůbec není zapotřebí, aby se vzájemně provázané stránky nacházely na jednom a témže počítači (WWW serveru) - určitá stránka se může odkazovat na jinou stránku, která se fyzicky nachází například na druhé straně zeměkoule.

Odkazy mezi jednotlivými stránkami mohou být „schovány" pod různými částmi textu (ale například také pod obrázky). Některé WWW stránky představují určité vstupní body k jistému okruhu informací (k dalším stránkám). Říká se jim domovské stránky (home pages), a jsou místem, kde by „návštěva" určitého okruhu informací měla začínat. Díky vzájemné provázanosti jednotlivých stránek můžeme navštívit jinou WWW stránku pomocí těchto odkazů. Z této stránky pak směřují hypertextové odkazy na četné další stránky.

Uniform Resource Locator

Základním druhem ukazatele, pomocí kterého ukazujeme na konkrétní

hypertextový dokument (resp. tzv. stránku) je URL - což je zkratka od: Uniform Resource Locator. Přídomek Uniform (ve smyslu: jednotný) má tento druh ukazatele proto, že je použitelný i jako ukazatel na jiné druhy objektů, než jen na stránky, alias hypertextové dokumenty. Nese totiž v sobě

tři základní informační složky: informaci o uzlovém počítači Internetu, na kterém se zmíněný objekt nachází, dále údaj o konkrétním souboru, který tento objekt představuje (resp. údaj o objektu jiného typu, nejde-li o skutečný sobor), a konečně i informaci o tom, jakým způsobem se má ke zmíněnému objektu přistupovat (jakým konkrétním protokolem má být přenesen). Prostřednictvím takovýchto ukazatelů URL lze jednoznačně identifikovat prakticky libovolné druhy objektů v Internetu, které mají povahu souborů (ale ani to není nutnou podmínkou). Například soubory stránek mají v URL klíčové slovo „http", zatímco soubory nacházející se na tzv. FTP serverech a určené k přenosu protokolem FTP tam mají slovíčko „ftp" atd.

Ukazatele URL vždy jednoznačně určují místo, kde se právě nacházíme.

(10)

2.1 Historie Internetu

V úvodu bylo zmíněno, že diplomová práce využívá celosvětové sítě

internet a níže uvádím historii, jak síť vznikla. V šedesátých letech, kdy se americká armáda snažila najít způsob, jak zajistit, aby armádní

počítače rozmístěné po celém území USA mohly spolu bez problému komunikovat, a to i v případě, že část této sítě bude vyřazena z provozu.

Pokud bude některá linka zničena, informace bude ihned vedena k příjemci jinou trasou.

Arpanet

V průběhu těchto 60-tých let byla tato spletitá koncepce decentralizované

odolné paketově-orientované sítě rozpracována organizací RAND spolu s univerzitami MIT a Los Angeles (UCLA). V roce 1968 byla podle těchto

principů postavena první testovací síť v Národní fyzikální laboratoři ve Velké Británii. Krátce poté se Pentagonská agentura ARPA (Advanced Research Projects Agency) rozhodla financovat obdobný, avšak větší a ambicióznější projekt v USA.

Na podzim 1969 byl instalován první uzel sítě v UCLA a koncem téhož roku byly na světě čtyři uzly, které vytvořily zárodek sítě, pojmenované podle svého sponzora ARPANET. Tyto čtyři počítače mohly vzájemně přenášet data přes dedikované rychlé přenosové linky; mohly být dokonce i vzdáleně programovány z jiných uzlů. Díky ARPANETu tak mohli vědci vzájemně na dálku sdílet své výpočetní prostředky. V roce 1971 měl již ARPANET patnáct uzlů, o rok později třicet sedm.

Ve druhém roce provozu sítě se stala zřejmou jedna nezamýšlená skutečnost: uživatelé ARPANETu postupně přeměnili síť pro sdílení výpočetních zdrojů na federálně dotovaný elektronický poštovní úřad. Hlavním provozem na ARPANETu nebylo vzdálené počítání, nýbrž výměna informací a osobních zpráv. Výzkumníci používali síť ke spolupráci na projektech, k výměně pracovních zpráv a nakonec k obyčejnému povídání. Nedlouho poté byl objeven "mailing-list" - ARPANETovská komunikační metoda pro automatické rozesílání identické zprávy velkému počtu síťových "předplatitelů".

(11)

Během 70-tých let se síť ARPANET stále více rozrůstala; její decentralizovaná struktura tuto expanzi jen usnadňovala. Na rozdíl od standardních firemních počítačových sítí mohl ARPANET připojovat mnoho různých typů počítačů - stačilo, aby tyto počítače rozuměly paketově-orientovanému protokolu nové

"anarchistické" sítě, vše ostatní bylo irelevantní.

Rozšíření internetu

Postupně se k internetu připojovali další instituce, především university.

V této době byl internet čistě nekomerční záležitostí. Na jeho vybudování přispívala americká armáda a různé vládní agentury. V roce 1989 vymyslel Tim Berners-Lee nový způsob komunikace - hypertextové dokumenty. Texty, které obsahují odkazy na další dokumenty, které mohou být umístěny na jiném počítači. Díky jednoduchému a intuitivnímu ovládání se tento způsob

komunikace rozšířil i za brány CERNu a dnes jej známe pod jménem World Wide Web. Zanedlouho byly k dokumentům připojeny i obrázky. Vzhled dokumentů byl přirozenější a umožnil ještě lepší komunikaci. Právě toto vedlo k masovému rozšíření internetu.

Internet v ČR

Jako datum připojení ČSFR k internetu se uvádí listopad 1991. Ve VC ČVUT tehdy úspěšně proběhly první pokusy s připojením na internet k uzlu v Linci.

Formální připojení ČSFR k internetu se slavnostně uskutečnilo 13. února 1992.

Internet byl tedy dostupný v Praze na ČVUT, ale po připojení volaly i ostatní vysoké školy z celé ČSFR. V prosinci 1991 schválilo české ministerstvo školství projekt předložený akademickou obcí a v červnu 1992 uvolnilo 20 miliónů korun pro vybudování páteřní sítě spojující univerzitní města. Po rozpadu ČSFR se FESNET rozdělil na CESNET a slovenskou část SANET. V listopadu 1992 byly

pevnou linkou propojeny Praha a Brno - dva hlavní uzly sítě CESNET - a koncem března 1993 bylo připojeno již 9 měst. I když CESNET byl

vybudován jako akademická síť, v reakci na poptávku po připojení se zanedlouho stal i komerčním poskytovatelem. Dnes je jedním z mnoha -

i to komentuje obrovskou dynamiku internetu: za několik let od nuly k rozvinutému konkurenčnímu prostředí.

(12)

2.2 Počítačové sítě

U diplomové práce je využíváno počítačové sítě. Ty se nejčastěji rozdělují na lokální a rozlehlé, neboli na sítě LAN a WAN. Někdy je příslušnost určité konkrétní sítě do jedné z těchto dvou kategorií zcela jednoznačná, zatímco jindy to může být dosti nejasné a závislé na subjektivním názoru.

2.2.1 Sítě LAN a WAN

Rozdělování počítačových sítí na lokální (LAN, Local Area Networks) a rozlehlé (WAN, Wide Area Networks) je zřejmě nejstarším a nejčastěji

používaným způsobem jejich rozdělování. Své rozlišující kritérium si přitom nese již ve svém názvu: anglické „Local Area" znamená v doslovném překladu

„místní oblast", zatímco „Wide Area" by bylo třeba překládat jako „široká oblast". Problematická je ale exaktnost tohoto kritéria - co je ještě natolik

„místní" či „malé", aby to bylo možné zařadit do kategorie „Local Area", a co je naopak dostatečně „rozsáhlé", „široké" či „velké", aby to patřilo do kategorie

„Wide Area"? U hodně malých sítí, například soustředěných do jedné jediné místnosti, asi nikdo nebude pochybovat že jde o síť lokální. V případě sítě pokrývající území celých kontinentů nejspíše nebude pochyb o tom, že jde o síť rozlehlou.

Rozlišovací kritérium, založené na velikosti sítě, není uprostřed velikostního spektra příliš dobře aplikovatelné, resp., je zatížené příliš velkou mírou subjektivního rozhodování. Současným trendem je postupné splývání lokálních a rozlehlých sítí, alespoň z pohledu uživatele. Tedy trend vedoucí k tomu, aby uživatel nepociťoval žádný významnější rozdíl mezi tím, kdy pracuje v sítí lokální a kdy v síti rozlehlé, a všude měl v zásadě stejné možnosti a mohl pracovat stejným způsobem.

Jednou ze zajímavých odlišností lokálních sítí a sítí rozlehlých jsou obvyklé důvody, kvůli kterým se tyto sítě budují. V případě typické lokální sítě jde nejčastěji o potřebu sdílení technických a programových prostředků, úzce související i s potřebou správy sítě. Má-li například někdo udržovat ve správně nakonfigurovaném stavu aplikace, se kterými pracuje více uživatelů, pak je

(13)

jistě výhodnější udržovat jedem exemplář aplikace, který všichni uživatelé sdílí

(například v rámci výpočetního modelu file server / pracovní stanice), než mnoho na sobě nezávislých exemplářů. Dalším důvodem, který začíná být

v poslední době velmi aktuální, je pak i potřeba spolupráce uživatelů, vedoucí až k provozování různých spolupracujících aplikací, spadajících do kategorie groupwaru. Naproti tomu rozlehlé sítě historicky vznikaly spíše z potřeby komunikovat (například přenášet elektronickou poštu, přenášet celé soubory apod.), a z potřeby provádět určité činnosti „na dálku".

Typické lokální síť pracují s výrazně vyššími přenosovými rychlostmi než sítě rozlehlé. To je ostatně dáno i obvykle používanými přenosovými cestami a přenosovými technologiemi - velmi mnoho lokálních sítí je dnes stavěno na bázi Ethernetu, který ve své klasické podobě pracuje s přenosovou rychlostí 10 Mbps (a v podobě tzv. rychlého Ethernetu dokonce 100 Mbps).

Naproti tomu rozlehlé sítě nejčastěji používají spoje s řádově nižšími rychlostmi, např. 64 kbps apod.

Dosti výraznou odlišností rozlehlých a lokálních sítí bývá i způsob fungování jejich přenosových mechanismů, konkrétně přenosových protokolů síťové

vrstvy - což úzce souvisí s mnohem menším přenosovým zpožděním v lokálních sítích a také s relativní spolehlivostí přenosů (v rozlehlých sítích

jsou používané přenosové cesty mnohem méně spolehlivé). Některé přenosové protokoly síťové vrstvy se dokáží vyrovnat s oběma prostředími stejně dobře (jako například protokol IP v rámci TCP/IP), zatímco jiné jsou šity na míru přenosům v lokálních sítích, a v rámci rozlehlých sítí jsou značně neefektivní (jako například Novellský protokol IPX).

Tabulka 1: Porovnání LAN a WAN

LAN WAN

Kvůli čemu se zřizují spíše pro potřeby sdílení spíše pro potřeby komunikace Přenosová rychlost vyšší (např. 10 až 100 Mbps) nižší (např. 64 kbps)

Topologie sítě systematická (pravidelná) nesystematická (nepravidelná) Vlastnictví přenosové infrastruktury vlastní provozovatel provozovatel si pronajímá Charakter uzlů „menší", převažují prac. stanice „větší", převažují servery Dostupnost uzlů „občas“ (dle potřeb uživatelů) trvalé

Přenosové zpoždění malé velké

Spolehlivost přenosových cest vyšší nižší

Zdroj: http://archiv.czech.net/

(14)

2.2.2 Síťové protokoly

Pro vzájemnou komunikaci mezi počítači se v počítačových sítích využívá

síťových protokolů. Síťových protokolů existuje celá řada. V Internetu se používají síťové protokoly TCP/IP. Síťový protokol je norma napsaná na papíře. V Internetu se používají normy nazývané Request For Comments – zkratkou RFC, které se číslují průběžně od jedničky.

Mezinárodní normalizační úřad (ISO) normalizoval soustavu protokolů označovaných jako ISO OSI. Nejčastěji se budeme setkávat s modelem, který používá Internet, tento model se též nazývá rodinou protokolů TCP/IP.

Kromě protokolů TCP/IP se setkáme ještě s modelem ISO OSI, který standardizoval mezinárodní standardizační úřad (ISO). Rodina protokolů TCP/IP využívá čtyři vrstvy a protokoly ISO OSI používají vrstev dokonce sedm, jak je znázorněno na obrázku 2. Soustavy síťových protokolů TCP/IP a ISO OSI se od sebe liší – jsou vzájemně neporovnatelné. Z obrázku 2 je však patrné, že na síťové a transportní vrstvě jsou si velmi blízké. Rodina síťových protokolů TCP/IP neřeší (až na výjimky, jako je protokol SLIP) linkovou a fyzickou vrstvu, proto se i v Internetu setkáváme s linkovými a fyzickými protokoly z modelu ISO OSI.

Obrázek 2: Síťové modely TCP/IP a ISO OSI

Zdroj: http://www.cpress.cz

(15)

ISO OSI

Komunikace mezi dvěma počítači je schématicky znázorněna na obrázku 3.

Obrázek 3: Sedmivrstvá architektura ISO OSI

Zdroj: http://www.cpress.cz

Fyzická vrstva

Fyzická vrstva popisuje elektrické či optické signály používané při komunikaci mezi počítači. Na fyzické vrstvě je vytvořen tzv. fyzický okruh.

Na fyzický okruh mezi dva počítače bývají často vkládána další zařízení, např. modemy, které modulují signál na telefonní vedení atp.

Linková vrstva

Linková vrstva zajišťuje v případě sériových linek výměnu dat mezi sousedními počítači a v případě lokálních sítí výměnu dat v rámci lokální sítě.

Základní jednotkou pro přenos dat je na linkové vrstvě datový rámec. Datový rámec se skládá ze záhlaví (Header), přenášených dat (Payload) a zápatí (Trailer). Datový rámec nese v záhlaví linkovou adresu příjemce, linkovou adresu odesílatele a další řídící informace. V zápatí nese mj. obvykle kontrolní součet z přenášených dat.

(16)

Síťová vrstva

Síťová vrstva zabezpečuje přenos dat mezi vzdálenými počítači WAN.

Základní jednotkou přenosu je síťový paket, který se balí do datového rámce.

Síťový paket se také skládá ze záhlaví a datového pole. Na síťové vrstvě je jednoznačně v celé WAN adresováno síťové rozhraní. Síťovým rozhraním může být např. karta pro Ethernet.

Transportní vrstva

Síťová vrstva zabezpečí spojení mezi vzdálenými počítači, takže transportní vrstvě se jeví jakoby žádné modemy, opakovače, mosty či směrovače na cestě nebyly. Transportní vrstva se zcela spoléhá na služby nižších vrstev. Mezi dvěma počítači může být několik transportních spojení současně. Z hlediska síťové vrstvy jsou pakety adresovány adresou počítače (resp. jeho síťového rozhraní). Z hlediska transportní vrstvy jsou adresovány jednotlivé aplikace.

Aplikace jsou jednoznačně adresovány v rámci jednoho počítače. Jednotkou přenosu je transportní paket, který se opět skládá ze záhlaví a datové části.

Relační vrstva

Relační vrstva zabezpečuje výměnu dat mezi aplikacemi, tj. provádí tzv. checkpoint, synchronizaci transakcí (commit), korektní uzavírání souborů atd. Základní jednotkou je relační paket, který se opět vkládá do transportního paketu.

Prezentační vrstva

Prezentační vrstva je zodpovědná za reprezentaci a zabezpečení dat.

Reprezentace dat může být na různých počítačích různá. Např. se jedná o problém zdali je nejvyšší bit v bajtu zcela vlevo nebo vpravo atp.

Zabezpečením se rozumí šifrování, zabezpečení integrity dat, digitální podepisování atd.

Aplikační vrstva

Aplikační vrstva předepisuje v jakém formátu a jak mají být data přebírána/předávána od aplikačních programů. Např. protokol virtuální terminál popisuje jak mají být data formátována, ale i dialog mezi oběma konci spojení.

(17)

TCP/IP

Rodina protokolů TCP/IP se nezabývá fyzickou a linkovou vrstvou. V praxi se i v Internetu používají pro fyzickou a linkovou vrstvu často protokoly vyhovující normám ISO OSI. Vztah mezi protokoly ISO OSI a TCP/IP je takový, že každá skupina má vlastní definici svých vrstev i protokolů.

Proto jsou protokoly ISO OSI a TCP/IP obecně nesouměřitelné.

Internet protokol

Internet Protokol (dále jen IP-protokol) prakticky odpovídá síťové vrstvě.

IP-protokol přenáší tzv. IP-datagramy mezi vzdálenými počítači. Každý IP-datagram ve svém záhlaví nese adresu příjemce, což je úplná směrovací informace pro dopravu IP-datagramu k adresátovi. Takže síť může přenášet každý IP-datagram samostatně. IP-datagramy tak mohou k adresátovi dorazit v jiném pořadí než byly odeslány. Každé síťové rozhraní v rozsáhlé síti Internet má svou celosvětově jednoznačnou IP-adresu (jedno síťové rozhraní může mít více IP-adres, avšak jednu IP-adresu nesmí používat více síťových rozhraní).

Internet je tvořen jednotlivými sítěmi, které jsou propojeny pomocí směrovačů. Směrovač se anglicky nazývá router, ve starších publikacích se však označuje jako gateway.

Protokoly TCP a UDP

Protokoly TCP a UDP odpovídají transportní vrstvě. Protokol TCP dopravuje data pomocí TCP segmentů, které jsou adresovány jednotlivým aplikacím.

Protokol UDP dopravuje data pomocí tzv. UDP datagramů. Protokoly TCP a UDP zajišťují spojení mezi aplikacemi běžícími na vzdálených počítačích.

Protokoly TCP a UDP mohou zajišťovat i komunikaci mezi procesy běžícími na témže počítači. Rozdíl mezi protokoly TCP a UDP spočívá v tom, že protokol

TCP je tzv. spojovanou službou, tj. příjemce potvrzuje přijímaná data.

V případě ztráty dat (ztráty TCP segmentu) si příjemce vyžádá zopakování přenosu. Protokol UDP přenáší data pomocí datagramů (obdoba telegramu), tj. odesílatel odešle datagram a už se nezajímá o to, zdali byl doručen.

Adresou je tzv. port. Pro pochopení rozdílu mezi IP-adresou a portem se používá srovnání s poštovní adresou. IP-adresa odpovídá adrese domu a port jménu a příjmení osoby, které má být dopis doručen.

(18)

Aplikační protokoly

Aplikační protokoly odpovídají několika vrstvám ISO OSI. Relační, prezentační a aplikační vrstva ISO OSI je zredukována do jedné aplikační vrstvy TCP/IP. Absence prezentační vrstvy se řeší zavedením specializovaných

„prezentačních-aplikačních“ protokolů, jako jsou protokoly SSL a S/MIME specializující se na zabezpečení dat. Nebo protokoly Virtuální terminál a ASN.1 určené pro prezentaci dat. Protokol Virtuální terminál specifikuje prezentaci dat v síti pro protokol Telnet, avšak využívají jej i další protokoly (FTP, SMTP a částečně i HTTP). Obdobně protokol ASN.1 byl nejprve využíván protokolem SNMP, avšak je využíván např. i protokolem S/MIME.

Aplikačních protokolů je velké množství. Z praktického hlediska je lze rozdělit na:

• Uživatelské protokoly, které využívají uživatelské aplikace. Příkladem to jsou protokoly: HTTP, SMTP, Telnet, FTP, IMAP, POP3 atd.

• Služební protokoly, tj. protokoly se kterými se běžní uživatelé Internetu nesetkají. Tyto protokoly slouží pro správnou funkci Internetu. Jedná se např. o směrovací protokoly, které používají směrovače mezi sebou, aby si správně nastavily směrovací tabulky. Dalším příkladem je protokol SNMP, který slouží ke správě sítí.

Způsoby přenosů informací

Síťových protokolů je velké množství, dokonce na jedné vrstvě máme často k dispozici několik protokolů. Zejména u protokolů nižších vrstev rozlišujeme jaký typ přenosu protokol zabezpečuje a zdali zabezpečuje službu spojovanou nebo nespojovanou, zdali protokol používá virtuální okruhy atd. Rozeznáváme přenos synchronní, paketový a asynchronní.

Paketový přenos

Paketový přenos je výhodný zejména pro přenos dat. Pakety nesou data obecně různé délky. Internet využívá právě paketového přenosu. Paket nese data vždy jedné aplikace (jednoho spojení). Jelikož jsou pakety různé délky, nelze garantovat šíři pásma. Výhodou je efektivní využití pásma, protože v případě, že aplikace nepotřebuje přenášet data, pak pásmo mohou využít jiné aplikace.

(19)

2.3 Historie a vývoj HTML

Tato kapitola je věnována historii a vývoji HTML. Pomocí tágu HTML jsou jednotlivé stránky aplikace postaveny. První definici jazyka HTML vytvořil v roce 1991 Tim Berners-Lee jako součást projektu WWW, který měl umožnit vědcům zabývajícím se fyzikou vysokých energií komunikaci a sdílení výsledků výzkumu po celém světě. Tato verze HTML je známa pod označením HTML 0.9. Umožňovala text rozčlenit do několika logických úrovní, použít několik druhů zvýraznění textu a zařadit do textu odkazy a obrázky.

První verze WWW-softwaru byla napsána pro operační systém NextStep a obsahovala jak prohlížeč, tak i integrovaný editor WWW-stránek. Požadavky uživatelů na WWW vzrůstaly, a tak producenti různých prohlížečů obohacovali HTML o některé nové prvky. Aby byla zachována kompatibilita mezi jednotlivými modifikacemi HTML, vytvořil Berners-Lee pod hlavičkou IETF (Internet Engineering Task Force) návrh standartu HTML 2.0, který zahrnoval všechny v té době běžně používané prvky HTML. Verze HTML 2.0 má zároveň dvě úrovně. První z nich (Level 1) pouze málo rozšiřuje předchozí verzi HTML.

Level 2 navíc definuje práci s formuláři.

Další rozšíření jazyka známá jako HTML+ zahrnují zejména rozšíření HTML o vytváření tabulek a matematických vzorců. Rovněž se zde objevují prvky, které umožňují precizněji kontrolovat výsledný vzhled textu – lepší obtékání obrázků textem a styly dokumentů. Dave Raggett z laboratořích Hewlett- Packard HTML+ formalizoval a vytvořil jeho deklaraci DTD (Document Type Declaration) v jazyce SGML – na jaře roku 1995 tak vznikl návrh standardu HTML 3.0. Některé prvky HTML 3.0, jako například tabulky, podporovaly novější verze prohlížečů Mosaic a Netscape. Kompletní podporu pro všechny rysy HTML 3.0 nabízel pouze experimentální prohlížeč Arena. Ten je bohužel k dispozici pouze pro operační systémy typu Unix.

Na počátku roku 1996 již bylo jasné, že HTML 3.0 bylo tak mohutným skokem vpřed, že se nenašel nikdo, kdo by dokázal implementovat prohlížeč s jeho podporou. Vývoj standardů Webu v té době již koordinovalo konsorcium W3C, jehož členy jsou mimo jiné přední softwarové firmy. Členové W3C

(20)

se tedy shodli na vlastnostech, o které rozšíří HTML 2.0, a vytvořily tak HTML 3.2. HTML 3.2 však zdaleka neobsahuje vše z HTML 3.0. Z verze 3.0 zůstaly v podstatě jen okleštěné tabulky. Ostatní nové prvky HTML 3.2 jsou jen jakousi směskou, kterou v té době podporovaly nejnovější prohlížeče. Kromě tabulek přibyly ve verzi 3.2 zejména možnosti lepší kontroly formátování včetně mnohem volnějšího výběru použitých druhů písma – logický ústupek požadavkům na graficky perfektně vypadající stránky. Další podstatné rozšíření se týkalo podpory Java-apletů. Tato verze HTML nese kódové jméno Wilbur a od ledna 1997 je doporučením konsorcia W3C – znamená to, že by ji měli všichni používat, aby byla ve Webu zajištěna kompatibilita. Většina dnešních prohlížečů však již nabízí další rozšíření nad rámec HTML 3.2. Jejich používání je však dvojsečné – na jednu stranu nejsou nijak standardizována a některé prohlížeče jim nemusí rozumět, na stranu druhou jsou mnohdy velmi užitečná a jejich používání a rozšíření může urychlit jejich zařazení do standardu. Mezi takováto rozšíření patří především rámy (frames) a různé skriptové jazyky (například JavaScript).

Posledním hitem, který s HTML úzce souvisí, jsou kaskádové styly dokumentů (CSS), které jsou doporučením W3C od prosince 1996. Zatím je však podporuje pouze Internet Explorer, Netscape Navigátor a experimentální prohlížeč a HTML-editor Amaya, který je určen opět pro platformu Unix.

Na jaře roku 1997 zveřejnilo W3C další plány na rozšíření HTML pod kódovým názvem Cougar. Cougar v sobě zahrnuje HTML 3.2 společně s běžně používanými konstrukcemi jako jsou rámy, skripty a obecné vkládání objektů.

Dalšími novinkami byla podpora vícejazyčných dokumentů.

Na začátku července 1997 uveřejnilo W3C návrh HTML 4.0, který vznikl drobnými úpravami Cougaru a vytvořením jediného komplexního dokumentu popisujícího návrh standardu. Návrh standardu HTML 4.0 se snaží dosáhnout původního záměru a představit HTML jako jazyk pro vyznačování jednotlivých částí dokumentu. Veškeré atributy, které ovlivňují pouze vzhled, by měli být definovány pomocí připojených stylů.

(21)

2.4 Dynamicky generované aplikace

Použití dynamicky generovaných stránek je vhodné u stránek, jenž obsahují informace v čase proměnlivé. Příkladem mohou být HTML stránky obsahující údaje z nějaké databáze, aktuální čas serveru, seznam přihlášených uživatelů a atd. Diplomová práce využívá právě jeden ze způsobů generovaných stránek a v dalších podkapitolách je věnované místo nejčastěji používaným způsobům, jak toho dosáhnout. Aby mohly být dosaženy výše uvedené vlastnosti, je potřeba pro každý dotaz klienta provést určité akce, které povedou k požadované stránce. Existují dvě cesty, jak toho dosáhnout:

• Serverem vkládané vsuvky. V tomto případě jsou HTML dokumenty doplněny speciálními příkazy, které WWW-server nahradí částmi HTML kódu. Server tedy musí v každém dokumentu vyhledat příkazy, provést je a jejich výsledek vložit do dokumentu. Teprve takto upravený dokument je zaslán klientovi jako odpověď na jeho požadavek. Dnes se běžně používá několik druhů serverem vkládaných vsuvek.

Nejobvyklejší jsou Server Side Includes (SSI). Mezi další patří například Active Server Pages (ASP). Jde o relativně novou technologii firmy Microsoft použitou v jejich Internet Information Serveru. Pracuje na stejném principu jako SSI, nabízí však mnohem větší možnosti.

Na obdobném principu pracují další systémy – například LiveWire od Netscapu nebo volně šiřitelné PHP.

• CGI-skripty. CGI-skript je program, jehož výstupem je HTML dokument.

Když server zjistí, že požadavek klienta směřuje k CGI-skriptu, spustí jej a jeho výsledek předá klientovi jako odpověď na požadavek.

Možnosti CGI-skriptů jsou takřka neomezené, záleží na schopnostech programátora. Chování CGI-skriptů může být ovlivňováno parametry zaslanými spolu s požadavkem klienta. Pro psaní CGI-skriptů lze využít v podstatě libovolný programovací jazyk.

Výše uvedené způsoby dynamicky generovaných stránek jsou prováděny na serveru. Existuje však i další možnost – zařazení krátkých programů (tzv. skriptů) přímo do stránky. Tyto skripty jsou prováděny až prohlížečem v našem počítači.

(22)

2.4.1 CGI

Jedním z prvních rozšíření statického internetu bylo vytvoření technologie Common Gate Interface (obecné rozhraní brány). Common Gate Interface (CGI) zajišťuje mechanismus, jehož prostřednictvím může webový prohlížeč předat serveru požadavek na vykonání nějaké aplikace na webovém serveru.

Výsledek takové aplikace se převede či naformátuje do tvaru, kterému prohlížeč rozumí (HTML), a odešle se mu zpět.

Aplikace CGI zvýšily úroveň možností webu a posunuly Word Wide Web z polohy jednoduché platformy pro sdílení informací na životaschopnou platformu sloužící ke zpracování informací. Reakcí na tuto evoluci webu byl rychlý růst a začátek zájmu o Internet ze strany obchodního světa.

CGI definuje rozhraní, pomocí něhož může WWW-server komunikovat s libovolným programem. Na program jsou kladeny pouze dva požadavky:

• Musí umět přebírat parametry předané podle definice CGI

• Výsledkem jeho činnosti je odpověď ve formátu HTTP (bez první stavové řádky) zapsaná na standardní výstup programu

V praxi se pro psaní těchto programů používají nejčastěji příkazové interprety Unixu nebo skriptový jazyk Perl. Odtud se pro ně také vžilo označení CGI-skript. CGI-skript však může být i program napsaný v nějakém klasickém programovacím jazyce jako Pascal, C, C++ nebo Java.

CGI-skripty se používají téměř ke všemu – k objednávání zboží, pro přístup k rešeršním systémům, pro diskusní skupiny s WWW-rozhraním, pro počítadla přístupů, jako prostředek pro elektronické nakupování atd. Možnosti jsou opravdu téměř neomezené a vše závisí na schopnosti programátora a správce WWW-serveru.

(23)

2.4.2 Skripty

Poprvé zabudovala skripty do svého prohlížeče firma Netscape.

Ta umožnila přímo do stránky vkládat programy – skripty v jazyce JavaScript.

Tyto programy však na rozdíl například od CGI-skriptů vykonává prohlížeč.

Odezva na akce uživatele tedy je okamžitá v porovnání s pomalou komunikací s WWW-serverem.

Skripty mohou být použity k mnoha účelům:

• Modifikování dokumentu v průběhu jeho nahrávání

• Kontrolování správnosti dat vkládaných do formulářů

• Inteligentnímu chování formulářů, které mohou automaticky doplňovat některé chybějící hodnoty

• Vytváření stránek, které mají interaktivnější uživatelské rozhraní (odkazy mění po přejetí barvu apod.)

Skripty se ukázaly býti natolik užitečnou pomůckou, že do HTML byla přidána podpora pro vkládání skriptů nezávislá na použitém skriptovacím jazyce. Kromě JavaScriptu se dnes totiž na stránkách používá i VBScript, což je speciálně upravená verze Visual Basic od Microsoft. Existují i další skriptovací jazyky – např. Tlc.

Ovšem ne všechny prohlížeče podporují všechny skriptovací jazyky.

Netscape podporuje JavaScript a Internet Explorer podporuje jak VBScript tak JavaScript (respektive modifikaci JScript – kompatibilní s JavaScriptem).

Pokud se rozhodneme používat skripty na stránkách, je v současné době nejlepším řešením JavaScript, protože je podporován oběma leadery na poli prohlížečů.

(24)

2.4.3 PHP

U PHP jsou HTML dokumenty doplňovány speciálními příkazy, které WWW- server nahradí částmi HTML kódu. Server tyto příkazy vyhledá a provede, jejich výsledek poté vloží do požadovaného dokumentu. Tento dokument je poté zaslán jako odpověď na požadavek klienta.

PHP je nástupcem staršího produktu, nazvaného PHP/FI. PHP/FI vytvořil Rasmus Lerdorf v roce 1995, na počátku jako jednoduchou sadu skriptů v jazyce Perl pro zpracování záznamů o přístupech k jeho webu. Tuto sadu nazval 'Personal Home Page Tools'. Protože byla třeba větší funkčnost, napsal Rasmus mnohem rozsáhlejší implementaci v C, která byla schopna komunikovat s databázemi a umožňovala uživatelům vyvíjet jednoduché dynamické aplikace pro Web. Rasmus se rozhodl uvolnit zdrojový kód PHP/FI pro všechny, takže kdokoli ho může používat, stejně jako opravovat chyby a vylepšovat kód. PHP/FI, což znamená Personal Home Page / Forms Interpreter, obsahovalo něco ze základní funkcionality PHP, jak ho známe dnes. Mělo proměnné perlovského typu, automatickou interpretaci formulářových proměnných a syntaxi vloženou do HTML. Syntaxe samotná

byla podobná jazyku Perl, přestože mnohem omezenější, jednodušší a v něčem nekonzistentní.

V roce 1997 se PHP/FI 2.0, druhá implementace psaná v C, stala kultovní záležitostí pro (odhadem) tisíce uživatelů po celém světě, a s přibližně 50.000 doménami oznamujícími nainstalované PHP/FI, což čítalo zhruba 1 % všech domén na Internetu. PHP/FI 2.0 bylo oficiálně uvolněno až v listopadu 1997, poté co strávilo většinu svého života v betaverzích. Krátce nato bylo následováno první alfaverzí PHP 3.0. PHP 3.0 byla první verze, která se velmi blížila takovému PHP, jak ho známe dnes. Vytvořili ho Andi Gutmans a Zeev Suraski v roce 1997 jako kompletně přepsaný celek, poté co shledali PHP/FI 2.0 výrazně "poddimenzované" pro vývoj svých aplikací pro e-komerci.

Jednou z nejsilnějších zbraní PHP 3.0 byly jeho obrovské možnosti rozšíření. K poskytnutí pevné infrastruktury pro mnoho různých databází, protokolů a API koncovým uživatelům, přilákaly možnosti rozšíření PHP 3.0

(25)

také tucty vývojářů, kteří se připojili a vytvořili nové rozšiřující moduly. Toto byl nesporně klíč k obrovskému úspěchu PHP 3.0. Jiným klíčovým prvkem v PHP 3.0 byla podpora objektově orientované syntaxe a mnohem silnější a konzistentnější syntaxe jazyka.

Nový jazyk byl uvolněn pod novým názvem, který odstranil implikaci omezeného osobního použití, kterou neslo označení PHP/FI 2.0. Byl nazván pouze 'PHP', což je rekurzívní akronym - PHP: Hypertext Preprocessor.

Na konci roku 1998 vyrostlo PHP do rozsahu instalací v řádu (odhadem) desítek tisíc uživatelů a stovek tisíc Webů.

V zimě 1998, krátce po oficiálním uvolnění PHP 3.0, začali Andi Gutmans a Zeev Suraski pracovat na přepsání jádra PHP. Cílem návrhu bylo zvýšit výkon pro složité aplikace a zlepšit modularitu kódové báze PHP. Takové aplikace byly schopny pracovat s PHP 3.0 (díky novým možnostem a podpoře široké škály databází a API od jiných tvůrců), ale PHP 3.0 nebylo navrženo pro efektivní práci tak náročných aplikací.

Nový engine, nazvaný 'Zend Engine' (sestaven z jejich křestních jmen, Zeev a Andi), úspěšně splnil cíle návrhu a byl uveden v polovině roku 1999.

PHP 4.0, založené na tomto enginu a doplněné širokou škálou nových prvků, bylo oficiálně uvolněno v květnu 2000, necelé dva roky po svém předchůdci, PHP 3.0. K podstatně zvýšenému výkonu této verze, přidává PHP 4.0 další klíčové prvky, jako je podpora pro mnoho WWW serverů, HTTP sessions, buffering výstupu, bezpečnější způsoby zpracování vstupů uživatele a mnoho nových jazykových konstruktů.

PHP 4 je momentálně poslední uvolněnou verzí PHP. Již byla započata práce na modifikaci a vylepšení jádra Zend Engine k integraci prvků, které byly navrženy pro PHP 5.0. Dnes používají PHP (odhadem) stovky tisíc vývojářů a nainstalované PHP hlásí několik milionů serverů - tj. přes 20 % domén na Internetu. Vývojový tým PHP zahrnuje tucty vývojářů, stejně tak jako tucty dalších lidí, kteří pracují na projektech spojených s PHP, jako je PEAR a dokumentační projekt.

(26)

2.4.4 ISAPI

Kromě podpory CGI přidal Microsoft ještě alternativu k CGI, a sice Internet Server Application Programming Interface (ISAPI – rozhraní pro programování aplikací internetového serveru). ISAPI se pokouší překonávat ty nejvíce omezující prvky aplikací CGI.

Kdykoliv klient požaduje vykonání aplikace CGI, webový server spustí

samostatnou instanci dané aplikace, odešle jí požadované informace od uživatele a výsledek zpracování aplikací CGI odešle klientovi. Problém s tímto přístupem spočívá v tom, že pro každý požadavek se nahrává samostatná aplikace CGI. Pokud vyžaduje spuštění takové aplikace CGI mnoho uživatelů najednou, velmi se tím vyčerpávají zdroje serveru.

ISAPI tento problém řeší tak, že spoléhá na dynamicky připojované knihovny (DLL). Každá aplikace ISAPI má formu jediné knihovny DLL, která

se nahrává do stejného paměťového prostoru jako je webový server v okamžiku, kdy je aplikace poprvé požadována. Jakmile je jednou v paměti,

knihovna DLL tam zůstane a bude reagovat na požadavky uživatelů, až dokud jí systém explicitně neřekne, že má paměť uvolnit. Takto zvýšená výkonnost využití paměti však má svou cenu. Všechny knihovny DLL ISAPI musí umožňovat zavedení více toků (threadů), aniž by to způsobovalo problémy s funkcemi aplikace.

Aplikace ISAPI jsou obvykle rychlejší, než jim odpovídající aplikace CGI, protože webový server nemusí po každém požadavku spouštět novou aplikaci.

Jakmile je aplikace ISAPI jednou v paměti, zůstává tam. Webový server jí nemusí znovu zavádět.

Kromě aplikací umožňuje technologie ISAPI vyvíjet filtry. Filtr ISAPI je zvláštní knihovna DLL, která se nachází ve stejném paměťovém prostoru jako webový server. Webový server ji volá jako reakci na každý požadavek HTTP.

(27)

V tomto smyslu mění filtr ISAPI způsob, jakým se chová samotný webový server. Filtr ISAPI pak instruuje webový server, jak má požadavek zpracovat.

Filtry ISAPI nám umožňují upravit reakce webového serveru na určité typy požadavků od uživatelů. Abychom rozdíl mezi filtry ISAPI a aplikacemi ISAPI (a aplikacemi CGI) ještě více objasnili, řekněme si, že filtry ISAPI poskytují tři typy funkcí, které je od aplikací ISAPI (a CGI) výrazně odlišují:

• Filtr ISAPI umožňuje vytvořit určitou formu zabezpečení na úrovni webu

nebo stránky, protože tvoří vlastně vrstvu vloženou mezi klienta a webový server.

• Filtr ISAPI dovoluje sledovat více informací o požadavcích na webový server a o odeslaném obsahu, než dokáže samotný webový server HTTP. Tyto informace lze uložit ve formátu odděleném od funkcí záznamu webového serveru.

• Filtr ISAPI může předávat informace klientům jiným způsobem, než samotný webový server

Speciální filtr může interpretovat tok informací ze serveru. Na základě této interpretace mění a upravuje formát toku, který se pak od původního toku informací ze serveru liší. Knihovna ASP.DLL je příkladem tohoto typu filtru

ISAPI. Interpretuje serverový kód ve skriptu požadovaném klientem a v závislosti na výsledku interpretace předá klientovi obsah upravený podle

jeho požadavku.

(28)

2.4.5 ASP

Po uvedení Internet Information Serveru 2.0 spustila firma Microsoft beta- testování technologie, jejíž kódové jméno bylo Denali. Tato technologie je dnes známa pod označením Active Server Pages a je velmi důležitým aspektem strategie Internet Information Serveru společnosti Microsoft.

Diplomová práce využívá právě ASP a proto je této podkapitole věnováno více řádků.

Knihovna ASP.DLL

Technologie ASP je uložena v jediné malé (cca 300KB) knihovně ASP.DLL.

Tato knihovna je filtr ISAPI, který sídlí ve stejném paměťovém prostoru jako Internet Information Server. Kdykoli uživatel požaduje soubor, jehož přípona je .ASP, filtr ISAPI ASP se postará o jeho interpretaci. ASP pak nahraje knihovnu DLL potřebného skriptového jazyka do paměti, vykoná veškerý serverový kód aktivní serverové stránky a výsledný kód HTML vrátí webovému serveru. Ten jej odešle požadujícímu prohlížeči. Tedy výstupem kódu ASP, který se vykoná na serveru, je kód HTML (nebo HTML se skripty zpracovanými na straně klienta), jenž se vloží do textového toku HTML odesílaného klientovi.

Obrázek 4: Dynamicky vytvořený webový obsah – požadavek a odeslání

Zdroj: autor

(29)

Objektový model ASP

ASP zahrnuje vlastnosti a metody následujících sedmi zabudovaných objektů:

• Application

• ASPError

• ObjectContext

• Request

• Response

• Server

• Session

Tyto objekty jsou součástí knihovny ASP.DLL a aplikace ASP je vždy mohou využívat.

Objekt Application

Objekt Application představuje samotnou aplikaci ASP. Tento objekt je univerzální pro všechny uživatele připojené k aplikaci a pro všechny uživatele existuje jen jeden objekt Application. Objekt Application má dvě události, Application_OnStart a Application_OnEnd, které se iniciují, když první uživatel požaduje stránku z vaší aplikace, respektive když správce výslovně zruší nahrání aplikace pomocí Microsoft Management Konsole. Události OnStart lze použít k inicializaci informací potřebných pro všechny aspekty aplikace.

Událost OnEnd lze využít k určitým úklidovým pracím po ukončení aplikace.

Na úrovni aplikace můžete uložit libovolný typ proměnné. Tyto proměnné obsahují stejné hodnoty pro všechny uživatele webu.

Objekt ASPError

Novinkou v Active Server Pages 3.0 je objekt ASPError, který umožňuje

vývojářům přistupovat k vlastnostem charakterizujícím poslední chybu, k níž došlo v právě vykonaném skriptu. Tento objekt je přístupný pouze prostřednictvím metody GetLastError objektu Server a všechny jeho vlastnosti jsou pouze pro čtení. Přidání objektu ASPError je důležitým počinem ASP 3.0 a výrazně zlepšuje možnosti zpracování chyb ve skriptech Active Server Pages.

(30)

Objekt ObjectContext

Objekt ObjectContext je vlastně součástí Microsoft Transaction Serveru a přes ASP se k němu jen přistupuje. Objekt ObjectContext umožňuje vytvářet transakční aktivní serverové stránky. Funkce podporující transakce v těchto stránkách budou úspěšně jako celek nebo budou úplně neúspěšné. Pokud aplikace vyžaduje použití funkcí, které samy o sobě transakce nepodporují (zejména přístup k souborům), musíme napsat vlastní kód, který zpracuje úspěch nebo chybu těchto funkcí.

Objekt Request

Objekt Request představuje způsob, jakým pracujeme s požadavkem HTTP klienta. Je to jeden z nejdůležitějších objektů v objektovém modulu ASP.

Právě přes objekt Request přistupujeme jak k datům ve formulářích HTML, tak i k parametrům zaslaným prostřednictvím adresového řádku. Navíc lze objekt Request používat k příjmu informací o cookie uživatele přes HTTP a k příjmu certifikačních informací klienta.

Kolekce ServerVariables objektu Request nám také zpřístupňuje všechny informace v hlavičce požadavku HTTP. Tyto informace obsahují (kromě informací v cookie) další související data popisující počítač klienta, jeho připojení a jeho vlastní požadavky. Kolekce ServerVariables odpovídá proměnným prostředí v tradičních aplikacích CGI.

Objekt Response

Objekt Response nám dovoluje přistupovat k reakci HTTP odesílané zpět

uživateli a řídit ji. Přes objekt Response lze posílat klientovi cookie a nastavovat, zda má vypršet doba platnosti nějakého obsahu, a pokud ano,

tak kdy. Navíc lze objektem Response plně řídit, jak se data klientovi odesílají.

Objekt Response dovoluje bezproblémové přesměrování uživatele z jedné adresy URL na jinou.

(31)

Objekt Server

Objekt Server nám umožňuje přímo přistupovat k webovému serveru.

Tento objekt obsahuje mnoho prvků, jež lze využít prakticky ve všech aplikacích. Pomocí objektu Server můžeme nastavit proměnnou doby ukončení vykonávání skriptů (jak dlouho se bude webový server pokoušet obsloužit skript, než místo něj vygeneruje chybové hlášení).

Objekt Server lze také použít k připojení (mapování) virtuální cesty k fyzické cestě nebo zakódování informací odesílaných přes adresový řádek.

Nejdůležitější metodou objektu Server je však metoda CreateObject, jež nám umožňuje vytvářet instance serverových komponent. Tuto metodu musíme použít, kdykoli požadujeme funkce vybočující z rámce funkcí poskytovaných zabudovanými objekty. Například přístup k databázi zpracovávají různé datové objekty ActiveX, jejíchž instance musí být na serveru nejprve vytvořena.

Teprve pak je lze použít.

Objekt Session

Objekt Session obsahuje informace jedinečné pro aktuální připojení konkrétního uživatele na webový server. Každé připojení uživatele lze identifikovat pomocí jednoznačného cookie, které se uživateli odešle po přijetí každého jeho požadavku. Webový server spouští připojení pro každého nového uživatele, který požaduje nějakou stránku z webové aplikace. Toto připojení zůstává standardně aktivní po dobu 20 minut od posledního požadavku uživatele. Připojení lze také explicitně ukončit vykonáním určitého kódu.

(32)

3. Databáze

Současné informační technologie umožňují uchovávat na jednom místě (například na disku počítače) ohromné množství informací. Tím vzrůstá potřeba najít způsob, jak tyto údaje organizovat, aby bylo možné je rychle vyhledávat. Zároveň s tím se vyvíjejí specializované programy, které jsou schopné s údaji určitým způsobem organizovanými (strukturovanými) pracovat. Systémům organizovaných dat, ke kterým je přístup zajištěn pomocí

speciálního počítačového programu, říkáme databáze. Databází bylo u diplomové práce využito pro ukládání veškerých údajů.

3.1 Definice databáze

Databáze by se dala definovat, jako soubor (souhrn, množina) dat uložených v paměti počítače, logicky uspořádaných ve formě záznamů, které jsou navzájem v určitém vztahu a jsou přístupné s pomocí programového vybavení (databázového softwaru), určeného k ukládání, zpracování, vyhledávání a prezentaci velkých objemů dat.

V systémech typu dBase či FoxPro pojem databáze znamená tabulku. Platí, že jedna databáze je jedna tabulka, navíc jedné tabulce (databázi) odpovídá právě jeden soubor na disku. Stejným způsobem se ukládají další databázové objekty, jako indexy či programové bloky. Systémům s tímto přístupem říkáme desktopové databáze a vyznačují se zejména značně omezeným rozsahem funkčních vlastností (jedno či několika málo uživatelské zpracování dat, orientace na jednu platformu, nedostatečná podpora standardů, …) a použitou architekturou, v tomto případě tzv. architekturou file-server. Pro ni je charakteristický zejména fakt, že do volajícího programu (prohlížeč, analytický program ...) jsou předána veškerá data v příslušných tabulkách uložená a teprve tento nad nimi uplatňuje kritéria výběru a rozhoduje, se kterými se bude dále pracovat. Důsledek je jasný - při zpracování na síti jsou přenášena k pracovní stanici všechna data a dochází tak ke zbytečné zátěži komunikačních linek i samotné stanice. Druhou nejčastější architekturou je klient-server.

(33)

3.2 Databázový systém

Uložení databázových objektů do souborů v poměru jedna ku jedné je značně nevýhodné z mnoha dalších ohledů - bezpečnost, správa, zálohování,

optimalizace výkonu či logická konzistentnost. Proto existují řešení (u vyspělejších "databázových systémů") snažící se o logické seskupení k sobě

toho, co k sobě patří. Prostoru vyhrazenému pro uložení dat (ať již těch, která popisují, jak jaký objekt vypadá, tak těch "opravdových" zpracovávaných dat) nejvíce odpovídá pojem databáze.

Při popisu (samozřejmě i při čtení) některé z databázových technologií je tedy nutno vycházet z toho, že DATABÁZE je právě tento prostor. Nepřesný také často bývá výklad pojmu BÁZE DAT jako seskupení pouze výkonných dat, systémem zpracovávaných. Spíše lze položit mezi databázi a bázi dat rovnítko.

V návaznosti na použitý pojem desktopové databáze můžeme chápat databázi jako souhrn všech tabulek, indexů a programových bloků.

Samotný DATABÁZOVÝ SYSTÉM se významově nejvíce přibližuje desktopovým databázím. Jinak řečeno, databázový systém je spojení databáze a množiny základních řídících a aplikačních programů. Tuto množinu můžeme pojmenovat jako SYSTÉM ŘÍZENÍ BÁZE DAT (běžně se používá zkratka SŘBD).

Pokud navíc splňuje určitá kritéria (podpora více hardwarových a softwarových prostředí, realizace architektury client-server, umožnění víceuživatelského zpracování, zabudování grafického uživatelského rozhraní...), hovoříme o VYSPĚLÝCH SŘBD. V odborné literatuře se lze dočíst "vznešenější" definici, která říká, že SŘBD (či anglicky DBMS - Data Base Management System) je programový systém umožňující vytvoření, údržbu a použití báze dat.

Typickými představiteli vyspělých SŘBD jsou dnes databázové produkty firem Oracle, Informix, SyBase a několika dalších.

(34)

3.3 Architektura klient-server

U diplomové práce je použit systém dotazovaní architektury klient-server.

Nejlépe si lze vlastnosti tohoto uspořádání představit na příkladě.

Zpracováváme-li značný objem dat uložených na serveru a jako výsledek nás zajímá jeden konkrétní záznam (např. zjišťujeme jméno a příjmení osoby podle nám známého telefonního čísla), je zbytečné "stáhnout" si všechna data k sobě na počítač a celé je prohledat. Lepší je nechat daný záznam vyhledat serveru a on nám pošle výsledek. Výhody jsou jasné - na pracovní stanici již žádná data neprozkoumáváme (případně řádově menší množství než je jich na serveru) a značně ulehčujeme přenosovým linkám a správě celého systému.

Na první pohled by se mohlo zdát, že řešení za použití této architektury přináší pouze samé klady, ale jak už tomu tak na tomto světě bývá - nic není černobílé. Systémy v architektuře klient-server jsou nákladnější na tvorbu a nezanedbatelné nejsou ani nároky kladené na hardware. Lze však říci, že se jedná o přístup, který je "zlatou střední cestou" v návaznosti na rostoucí objem zpracovávaných dat.

Obrázek 5: Architektura klient – server Legenda: 1. dotaz klienta na webový server

2. zaslání SQL dotazu z webového serveru na SQL server 3. vrácení odpovědi z SQL serveru na webový server

4. vracení dotazu z webového serveru klientovi

Zdroj: autor

(35)

3.4 Databázový jazyk SQL

Pomocí databázového jazyku jsou u diplomové práce uskutečňovány dotazy od www serveru na databázový systém. Za zkratkou SQL je schován název Structured Query Language a jedná se o neprocedurální jazyk. (Pomocí procedurálního jazyka říkáme, jak chceme konkrétní věc provést, pomocí neprocedurálního jazyka naopak říkáme, co chceme provést.)

První prototypová implementace tohoto jazyka, který se až do konce 70.

let nazýval Sequel, vznikla roku 1974 v laboratořích společnosti IBM a byla použita ve firemním systému s názvem R. Cílem bylo (a stále je) poskytnout vývojářům standardní metodu přístupu k datům uloženým v databázovém systému, která by byla nezávislá na dalších použitých vývojových nástrojích.

Na jednu stranu se jedná o jazyk poměrně mocný a současně jednoduchý (stačí si do angličtiny přeložit, co vlastně chceme, a samotný příkaz bude vypadat velmi podobně), současně však samostatně nedostačující k tvorbě

kvalitní aplikace (nejsou zde například implementovány příkazy pro uživatelský vstup a výstup).

Jazyk SQL také není možné chápat striktně jako dotazovací - samotný SQL se skládá minimálně ze dvou částí. První je označována jako DDL (Data Definition Language), druhá pak jako DML (Data Manipulation Language).

Pomocí příkazů DDL je možné nadefinovat vlastní databázové struktury (ať již odpovídající fyzickému uložení dat, jako jsou tabulky či indexy, či abstraktní, logické - například pohledy). Naproti tomu pomocí příkazů DML s daty opravdu

"manipulujeme", tedy vkládáme je, provádíme nad nimi dotazy či je upravujeme. Stranou v mnoha systémech nezůstávají ani prostředky pro řízení transakčního zpracování.

Přestože na první dojem je SQL spojeno s některým relačním SŘBD

(systém řízení báze dat), není nikde stanoveno, že by nebyl použitelný v systémech založených na jiném modelu nebo že všechny relační databáze

musí SQL podporovat. Nikde také není řečeno, že se musí jednat o jazyk interpretační či vyžadující kompilaci. Možné jsou všechny tři varianty - čistá interpretace, překlad do pre-kódu i překlad do samostatně spustitelného kódu.

(36)

Přitom, jak už to tak bývá, každá varianta má své výhody a nevýhody.

Například, pokud se jedná o program zkompilovaný do samostatně spustitelného kódu, je nutno zajistit jeho rekompilaci, pokud dojde k nějaké změně v použitých databázových strukturách.

Stejně jako v případě celé řady dalších programovacích jazyků se i SQL může pochlubit poměrně živelným vývojem. Na trhu se v první polovině 80. let objevily asi čtyři desítky komerčních SQL systémů. Situace začala být poměrně vážná, a tak se přikročilo k prvnímu normalizačnímu kroku. Organizace ANSI přijala roku 1986 jako standard variantu společnosti IBM a ve svém důsledku se jednalo o jakýsi průnik existujícími implementacemi. Tento standard bývá označován jako ANSI SQL či jako SQL86. O rok později byl přijat také v ISO.

Roku 1989 pak následoval další standard, který umožnil definovat integritní omezení.

Vývoj šel nezadržitelně kupředu a roku 1992 dochází k přijetí standardu SQL92, o kterém se již v době vzniku vědělo, že se nejedná o konečnou podobu standardu SQL. Proto nabízí dvě úrovně pro překlenutí určitého období. Jedná se o tzv. vstupní úroveň (Entry SQL) a tzv. prostřední úroveň

(Intermediate SQL). Zatímco v případě prvně jmenované se jedná jen o drobné kosmetické úpravy oproti předchozím standardům, Intermediate SQL

již obsahuje celou řadu nových prvků. Ty se objevují již několik let v mnoha SŘBD, bohužel však často s mírně odlišnou syntaxí (a vzhledem k někdy nejasné implementaci i sémantikou).

Další nevýhodou (z tehdejšího i dnešního pohledu) byla nepřítomnost triggerů, přestože se v mnoha systémech objevují od roku 1989. Již několik let se pracuje na další podobě standardu (označovaném dosud jako SQL3), který by měl nabídnout například možnost psát uložené procedury (již dnes jsou běžně používány, ostatně stejně jako celá další řada nenormalizovaných konstruktů). Proces standardizace je sice prospěšný, nese však s sebou i jednu hlavní nevýhodu - zpětnou kompatibilitu (obdobně jako v případě mikroprocesorů či operačních systémů pro osobní počítače).

(37)

3.5 Druhy databázových systémů

Databázové programy by se dali rozdělit dle finančních nákladů na pořízení a to konkrétně na:

Komerční programy:

• Oracle

• MS SQL Server

• Sybase

• Informix

• Progress

Programy zdarma (freeware):

• mSQL

• MySQL

• PostgreSQL

(38)

4. Architektura informačního systému

Architektura informačního systému se odvíjí od požadavků, které má tento informační systém splňovat a prostředků, kterými toho docílíme.

4.1 Úkol systému

Na zadaný informační server byly kladeny podmínky, které by měl tento systém splňovat. A to konkrétně níže uvedené základní dva požadavky:

• přihlášení a odhlášení na termín zkoušky

• zadávání termínů zkoušek

Tyto požadavky byly dále rozvedeny a konkrétně jsou popsány v kapitole 4.3 funkce systému.

Způsob jakým tyto požadavky na webovou aplikaci informačního systému byly zpracovány, závisí na zvolené platformě a skriptovacím jazyku, který byl použit.

Volbě těchto prostředků se věnuje následující kapitola.

(39)

4.2 Zvolení platformy Windows

Jelikož jsem měl v rámci diplomové práce k dispozici platformu Windows, konkrétně produkt firmy Microsoft – Windows 2000, tak jsem pro svoji internetovou aplikaci volil skriptovací jazyk ASP (Active Server Pages), který je implicitně podporován serverem, který je součástí tohoto systému.

Konkrétně se jedná o server označený jako IIS (Internet Information Server), kde je filtr ISAPI - ASP.DLL přímo součástí Windows 2000, respektive tohoto serveru.

Jako databázový systém byl na této platformě zvolen rovněž produkt firmy Microsoft – MS SQL. A to konkrétně ve verzi 7.0.

V dále uvedených podkapitolách se postupně blíže věnuji těmto produktům, které jsem ke své diplomové práci využil, respektive použil k docílení požadovaných úkolů systému.

4.2.1 Server Windows 2000

Pro informační systém je využíváno serveru firmy Microsoft - Windows 2000 Server. Skupina systémů Windows 2000 Server staví na technologii systému Windows NT. Integruje standardní adresářové služby, aplikace a služby pro síť WWW, komunikaci, soubory a tisk s vysokou spolehlivostí, efektivní správou a podporou nejnovějšího síťového hardwaru. Tím poskytuje platformu pro obchodní aktivity společností uskutečňované prostřednictvím sítě Internet.

Integrované služby pro síť WWW umožňují uživatelům snadno poskytovat hostitelské služby a spravovat servery WWW sloužící ke sdílení informací, vytváření obchodních aplikací založených na síti WWW a rozšíření souborových a tiskových služeb a služeb pro média a komunikaci do sítě WWW. A to vše prostřednictvím Služby Internet Information Services 5.0 (IIS), která je součástí tohoto systému.

(40)

4.2.2 Popis databázového systému MS SQL

Jako databázový systém jsem u dynamické aplikace použil Microsoft SQL Server verze 7.0, který je nástupcem předešlé verze 6.5. Je to velmi výkonný, odolný a spolehlivý relační databázový systém pro prostředí Windows, vhodný pro široké spektrum uživatelů i vývojářů podnikových aplikací. V této verzi došlo oproti předešlé k podstatnému vylepšení produktu v oblasti snadné obsluhy, spolehlivosti, přizpůsobitelnosti a funkcí pro skladování dat.

Vlastnosti

Může běžet na čemkoliv od laptopů po podnikové výpočetní systémy se stoprocentní kompatibilitou zdrojového kódu.

• Umožňuje automatickou konfiguraci a automatické dolaďování.

• Má integrovaný OLAP server.

• Má integrované služby Data Transformation Services.

• Data Warehousing Framework představuje komplexní přístup k řešení problému metadat.

• Zajišťuje víceserverovou správu pro velký počet serverů.

• Poskytuje širokou nabídku možností replikací.

• Má vynikající integraci s produkty Windows NT Server, Microsoft Office a BackOffice.

• Universal Data Access umožňuje přístup k rozmanitým zdrojům informací.

SQL Server 7.0 usnadňuje vytváření, správu a implementaci podnikových aplikací eliminuje standardní databázové operace a má propracované administrátorské nástroje. Z toho plyne snadná obsluha tohoto produktu, které jsem při implementaci využil.

(41)

4.3 Funkce systému

Při vlastním řešení tohoto informačního serveru byly požadavky, úkoly kladené na tuto dynamickou aplikaci, rozděleny právě dle těchto dvou základních požadavků - na dvě samostatné části.

Tou první částí je vlastní přihlašování a odhlašování ze zadaných – vypsaných termínů a druhou částí této dynamické aplikace – části věnované zadávání termínů.

Třetí, zcela nezávislou částí od předešlých dvou, je část administrátorská, sloužící k administraci účtů.

Část pro studenty

V první části webové aplikace určené pro studenty má student možnost nechat zobrazit zadané termíny zkoušek. Tento výpis může blíže specifikovat svým požadavkům a to konkrétně těmito volbami:

• zvolením požadované fakulty

• zvolením ročníku

• zvolením typu studia

Zaškrtnutím těchto přepínačů docílí toho, že se studentovi vypíše užší výpis možných termínů na které se může přihlásit a tím se volba termínu zjednoduší.

Další možností, jak zpřehlednit a urychlit navigaci ve vypsaných termínů, je nechat tento výpis třídit buď dle názvu předmětu jednotlivých termínů nebo nechat třídit výpis dle datumu zkoušky.

Termíny zkoušky, které již proběhly se ve výpisech termínů již nezobrazují, což rovněž zlehčuje a zpřehledňuje tento výpis.

References

Related documents

Ze svého repositáře může změny odesílat to jednoho nebo více dalších repositářů (push), případně od nich změny přijímat (fetch, pull). Tyto repositáře mohou

Ve firemní síti jsou totiž veškeré klientské stanice na platformě operačního systému Windows 2000 a Windows XP a Registr Windows jsem považoval za zdroj

Autor dále představuje prostředíspolečnosti Unicorn, a.s., zejména platformu Unicorn Universe, na které jsou v této společnosti vyvíjeny veškeré aplikace.

Zde se může zobrazit informace o spravovaných systémech obsažených ve skupinách logických komponent, které jsou připojeny k řízení změnových požadavků a

The application is extensible, so it is possible to add new geophysical methods and geometric shapes to the application logic.. The instructions for adding of the new methods

Jižní fasáda se skládá z mléčného skla, má vlastní nosný sys tém, který je navázaný na ocelové sloupy nesoucí konzole, viz.. Fasáda sálu je stejně jako fasáda jižní z

Další možností je přidělení autorizace pro spouštění konkrétních transakcí, k čemuž jsem přihlédl při návrhu systému oprávnění pro proces inventarizace

V podkategorii Koordinace horní končetiny podle tabulky (9) spadá mezi první tři položky s nejvyšší hodnotou Pearsonova korelačního koeficientu pouze jedna položka