DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY
7. Distribuované informačné systémy typu klient–server Hierarchické informačné systémy boli po dlhý čas jedinou alternatívou budovania informačných systémov. Technológia založená na centrálnych počítačoch a absencia komunikačných systémov s dostatočným výkonom, ani neumožňovala rozsiahlejší presun k alternatívnym architektúram IS. Kľúčovým momentom bol až nástup osobných počítačov a lokálnych počítačových sietí LAN, začiatkom 80-tych rokov. Tieto sa neskôr stali základom pre vznik nových technológií a architektúr IS. Vo všeobecnosti môžeme konštatovať, že proces presunu od tradičných centrálnych technológií ku distribuovaným IS nastal z dôvodov : • dynamických zmien v riadení a štruktúre podnikov, • členenia podnikov na menšie samostatné a izolované časti, • použitia heterogénnych hardvérových a softvérových komponentov IS, • dynamického nárastu objemu dát a ich distribúcie, • uplatňovania LAN vo funkcii integračného prostredia, • požiadavky na lepší pomer cena/úžitok IS. Tomuto trendu sa samozrejme začali prispôsobovať aj samotní výrobcovia softvéru a hardvéru IS, pričom s odstupom času môžeme pozorovať niekoľko vývojových fáz. Pre každú z nich je charakteristickým znakom, snaha o odstránenie pôvodnej technológie HIS a jej nahradenie distribuovaným IS (DIS). Jednotlivé vývojové fázy a ich náväznosť symbolicky znázorňuje obrázok (Obr. 7.1).
HIS
DIS
Mainframeterminal T
||||||||||
T
Distribuovaný systém 70-te
80-te 90-te
roky
||||| T
PC
T
LAN
Rightsizing
Downsizing
Upsizing ||||||||||
Obr. 7.1 Uplatnenie jednotlivých fáz pri tvorbe distribuovaných IS DOWNSIZING predstavuje riadený proces transformácie hardvéru IS zo sálových systémov typu Mainframe, na počítače strednej triedy (middware) a systémy založené na architektúre PC. Tento trend predpokladá presun časti spracovania na stranu koncového uzla (klienta) a distribúciu dát a aplikácií na rôzne počítače IS. UPSIZING – pod týmto termínom chápeme zvyšovanie celkového výkonu v rámci DIS tak, aby IS vyhovoval požiadavkám kooperatívneho spracovania a súčasne disponoval výkonom, približujúcim sa tradičným systémom Mainframe a HIS. RIGHTSIZING definujeme ako cieľovo riadený prechod od centralizovaného spracovania k systémovej architektúre s heterogénnymi a distribuovanými systémovými komponentmi (softvér, hardvér, LAN/WAN). Systém má tvoriť pružne modifikovateľný, komunikačne zameraný distribuovaný informačný systém DIS, vyhovujúci súčasným nárokom na moderný IS. Tento trend (rightsizing) predpokladá použitie počítačov všetkých výkonnostných tried (sálové, stredné, desktop), kooperatívne spolupracujúcich v rámci modelu klient–server.
123
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
Obrázok prirovnáva tieto jednotlivé fázy ku kyvadlovému efektu, pretože najskôr sa prejavila snaha rušiť existujúce hierarchické informačné systémy HIS (fáza Downsizing) a nahrádzať ich architektúrami založenými na lokálnych počítačoch a sieťach LAN. Počítače PC boli využívané ako izolované uzly IS (Standalone), ktoré spracovávali lokálne úlohy IS (Personal Productivity) a neskôr prostredníctvom sietí PC-LAN, aj spoločné centrálne aplikácie IS (Collaborative Computing). Neskôr pretože sa ukázalo, že samotný výkon PC a sietí LAN neumožní prostú zámenu centrálnych systémov, nasledovala vlna zvyšovania výkonu a nasadzovania stredne výkonných hardvérových platforiem. Hľadali sa rôzne varianty, za účelom dosiahnutia požadovaného výkonu, pri úspore nákladov a odstránení pôvodných HIS (fáza Upsizing). Tieto trendy nakoniec vedú k stabilizácií v podobe fázy (Rightsizing), ktorá predstavuje uplatnenie architektúry klient–server a rôznych hardvérových platforiem s požadovaným výkonom, nevynímajúc triedu Mainframe v úlohe supervýkonného servera (tzv. SUPERSERVER). Uvedené tendencie sa dnes premietajú aj do budovania novo koncipovaných informačných systémov, v ktorých sú aplikácie, dáta a ich spracovanie distribuované v rámci celkového IS. Distribúcia je obvykle závislá od používanej formy riadenia a štruktúry podniku s čiastočnou, alebo úplnou decentralizáciou. Stupeň a forma distribuovanosti sa môže pritom pružne meniť so zmenami riadenia podniku. Integrujúcim prostredím v prípade DIS sú siete LAN a WAN, zodpovedné za celkovú funkčnosť systému. Principiálne je koncepcia decentralizovaného riadenia a distribuovaného informačného systému znázornená na nasledujúcom obrázku (Obr. 7.2). Jednotlivé zložky decentralizovaného riadenia môžu komunikovať plošne v jednej hierarchii, alebo virtuálne všetky navzájom. Tomu samozrejme odpovedá aj vlastná koncepcia informačného systému s odpovedajúcou formou komunikácie, spôsobom spracovania a distribúciou dát IS.
LAN/WAN
a) plošné riadenie
b) virtuálne riadenie
Obr. 7.2 Decentralizované riadenie a distribuované IS
7.1 Základná koncepcia a používané architektúry DIS Distribuované informačné systémy využívajú na rozdiel od hierarchických informačných systémov alternatívne architektúry a technológie implementácie IS. Výber konkrétnej architektúry pritom samozrejme závisí od konkrétnych potrieb a možností príslušnej organizácie (podniku). V zásade je dovolené použitie heterogénneho riešenia, s kombináciou dielčích architektúr. Veľmi často sa v DIS uplatňuje napríklad architektúra Terminál–Host, ktorá bola pôvodne základom klasických HIS. Táto je dnes obvykle kombinovaná s architektúrou klient–server a implementovaná na menších systémoch strednej triedy (middware). V DIS sa v súčasnosti uplatňujú najmä architektúry: n Terminál–Host o Klient–Fileserver p Klient–Server q NCC (Network Centric Computing) Koncepcia distribuovaných informačných systémov vychádza z možnosti distribúcie údajovej základne, spracovania a aplikácií medzi jednotlivé uzly IS. Úroveň distribuovanosti pritom závisí od konkrétnych požiadaviek a možností prevádzkovateľov DIS, pričom obvykle nadväzuje na stupeň
124
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY decentralizácie riadenia organizácie. DIS sú charakteristické aj delegovaním funkcií IS na jednotlivé uzly IS, označované ako : • servery – uzly, respektíve programové entity poskytujúce vybrané služby, • klientov – uzly/programové entity využívajúce vybrané služby serverov. Klientom je vždy koncový systém, spolupracujúci s procesom servera. Súčinnosť servera s klientom zabezpečuje jednotlivé funkcie IS. Komunikácia serverov s klientmi je zabezpečená prostredníctvom príslušných komunikačných protokolov lokálnej počítačovej siete LAN, respektíve rozľahlej siete WAN. Podľa možnosti uplatnenia funkcií serverov a klientov v jednotlivých uzloch DIS, rozlišujeme implementáciu uzlov typu : • rovný s rovným (peer–to–peer), • vo vydelenom režime (dedicated). V režime rovný s rovným sú podporované funkcie servera na ktoromkoľvek uzle DIS. Vydelený režim predpokladá implementáciu funkcií serverov na špecializovaných uzloch DIS. Výber režimu samozrejme závisí na konkrétnej voľbe sieťového operačného systému a spôsobe implementácie siete LAN/WAN. Ďalším členením môže byť napríklad rozdelenie architektúr DIS, podľa spôsobu spracovania funkcií v jednotlivých uzloch DIS. Používa sa : • spracovanie úloh na strane servera, • spracovanie úloh na strane klienta, • spracovanie úloh na strane klienta aj servera. Pri výhradnom spracovaní úloh na strane servera ide o obdobnú filozofiu, ako u HIS. Úlohou klienta je získať prístup k príslušnému serveru, zadávať úlohy a preberať výsledky spracovania. Uvedený režim je určitou modifikáciou architektúry Terminál–Host, pretože presúva zodpovednosť za chod IS na centrálny server. Posledným kritériom klasifikácie architektúr DIS, bude previazanosť funkcií servera s funkciami IS. Jednotlivé servery členíme podľa funkcií, na ktoré sú špecializované, na : n nosné servery – zabezpečujúce vlastný chod IS: • súborové • databázové • prezentačné • aplikačné o pomocné servery – slúžiace ako podpora pre činnosť IS: • tlačové • komunikačné Súborové servery zabezpečujú prístup k údajom prostredníctvom systému súborov a adresárov, pričom nerozlišujú logický obsah a poslanie súborov. Súborový server je transparentný voči používaným aplikáciám, pretože zabezpečuje len čítanie, zápis súborov na server, prípadne kontrolu prístupových práv užívateľov. Nezaoberá sa ich interpretáciou a aplikačným spracovaDatabázový Aplikačný ním. Databázové servery pracujú na server server úrovni SRBD, pričom implementujú na strane servera základné databázové operácie a vykonávajú vlastné spracovanie bázy dát. Klienti formulujú prostrednícLAN Tlačový tvom dohovorených rozhraní (napríklad Súborový server server SQL), požiadavky na operácie s databáKlient zou. Server vykoná požadovanú operáciu a zašle na stranu klienta odpoveď s výKomunikačný sledkom operácie. Aplikačné servery server vykonávajú priamo príslušné operácie a Obr. 7.3 Koncepcia distribuovaného IS úlohy IS. Servery slúžia na beh apli125
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
kačných programov, pričom realizujú výpočty podľa logiky konkrétnej aplikácie, nad údajmi získanými zo súborových, alebo databázový serverov. Prezentačné servery, formátujú výstupy pre aplikácie, zabezpečujú obsluhu a príjem vstupov, riadia spôsob zobrazovania prostredníctvom grafických užívateľských rozhraní (GUI). Pomocné servery majú podporný význam a obvykle len zabezpečujú zdieľanie periférií, napríklad tlačiarní a modemov v rámci DIS.
7.1.1 Architektúra Fileserver–Klient Architektúra Fileserver–Klient sa v spojitosti s distribuovanými informačnými systémami objavila ako prvá. Funkcie súborového servera zakomponovala do svojho sieťového operačného systému NetWare, medzi prvými práve firma Novell. Súborový server bol určený najmä pre počítačové siete prepájajúce personálne počítače (tzv. siete PC-LAN). Jednotlivé funkcie štandardne implementované na strane súborového servera, môžeme zhrnúť do nasledovných bodov: • server slúži ako spoločný úložný priestor pre súbory, • poskytuje elementárne operácie so súbormi (otvorenie, čítanie, zápis, výmaz, ….), • zabezpečuje riadenie prístupu k súborom a jeho synchronizáciu, • klient naťahuje súbory zo servera do svojej operačnej pamäte, alebo zapisuje do súborov. Klienti súborových serverov zabezpečujú prístup ku vzdialeným súborom súborových serverov. Preberajú od používateľov požiadavky na súborové služby, preformulujú ich na interné príkazy súborových serverov a následne odošlú príslušným aplikačným protokolom (NCP, SMB, NFS, FTP, ...) na server. Server po analýze prístupových práv prístup zamietne, alebo vykoná príslušnú operáciu a odošle jej výsledok klientovi. Súboroví klienti pracujú transparentne, pretože vzdialené súbory sa javia používateľovi tak, ako by boli priamo dostupné na lokálnom systéme. Klient len smeruje požiadavky užívateľa medzi lokálne a vzdialené služby, odkiaľ plynie aj jeho označenie pre presmerovač (redirector). Princíp súborového servera a klienta naznačuje nasledujúci obrázok (Obr. 7.4). Súborový server pozostáva z jadra (Kernel FS), ktoré preberá požiadavky klientov na súborové služby, prostredníctvom špecializovaných aplikačných protokolov (napr. SMB). Kontroluje pri každej operácií prístupové práva užívateľov v tabuľke ACL (Access Control Table) a navyše udržuje špeciálnu tabuľku LT (Lock Table), slúžiacu na riadenie súbežného prístupu k súborom. Používané súbory ako aj ich konkrétne oblasti sú v danej tabuľke označené ako zamknuté a nemožno ich modifikovať niekoľkými klientmi súčasne. Klient obvykle mapuje logické disky servera (disk_i), na virtuálny lokálny súborový systém, vo forme tzv. sieťových diskov (napr. F:). Podľa volania súborových služieb nad lokálnym, alebo sieťovým diskom klient odovzdá požiadavky lokálnemu OS, prípadne ich presmeruje na súborový server. Kernel FS ACL LT
SMB
Cache
Disk_I\adresár
SMB
C:
Redirector open, close, read, write [C: ,F:]\adresar\subor
F: \\server\adresar
Obr. 7.4 Princíp súborového servera Pre DIS pracujúce s architektúrou Fileserver-Klient platí: • aplikačné úlohy DIS sú spracovávané na strane klientov, • na každom z klientov prebieha príslušná aplikácia DIS a databázový systém (SRBD), 126
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY • • • •
server slúži, len ako spoločný úložný priestor pre súbory DIS a databázové súbory, klienti načítavajú pri každej operácii, databázové súbory zo servera do pamäte RAM, súbežný prístup a integrita dát je zabezpečená zamykaním súborov a viet, server udržuje aktuálnu tabuľku zamknutia viet a súborov (LT).
Na ďalšom obrázku (Obr. 7.5) je znázornený základný režim činnosti DIS s architektúrou Fileserver–Klient. Klienti sú pripojení na súborový server siete LAN. Databázové súbory sú umiestnené v spoločnom adresári servera, ktorý je klientmi mapovaný na virtuálnu logickú mechaniku PC napríklad F:. Na klientoch prebiehajú pod operačným systémom PC (DOS, OS/2, Windows 95/NT) databázové systémy rôznorodej implementácie ( často sa napríklad používajú systémy DBase, MS Access, FoxPro, atď.). Pod nimi sú spracovávané v pamäti RAM, procesorom stanice databázové súbory. Tieto sú prenášané medzi klientmi a serverom, pri každej operácií cez sieť LAN. Server udržuje v internej tabuľke (LT) informácie o zamknutých súboroch (File Lock), alebo ich častiach (Record Lock). Pri pokuse o zápis do zamknutej časti server odmietne vykonať operáciu, až do jeho odomknutia príslušným klientom. Uvedená architektúra je vhodná len pre menšie DIS, ktorých veľkosti databáz sú porovnateľné so šírkou dostupného pásma siete a počtom užívateľov. Pri veľkých databázach by prenosy databázových súborov medzi klientmi a serverom zbytočne obsadzovali kapacitu siete a spôsobovali neakceptovateľné oneskorenia, najmä u pomalších sietí WAN. Navyše spôsob zamykania súborov je neefektívny a zbytočne blokuje prácu súbežne pracujúcich užívateľov. Nevýhodou riešenia je príliš veľká záťaž siete a vstupno-výstupných zariadení serverov i klientov. Klient
LAN
Aplikácia1 f:\ x.dbf
Aplikácia2 f:\ x.dbf
SRBD (Access)
SRBD (FoxPro)
NOS (NetWare)
NOS (NetWare)
x.dbf Cache
Súborový server
vol1:\data\x.dbf
LT
klient1:254-780 klient2:65-145
Obr. 7.5 Architektúra DIS typu File-server
7.1.2 Architektúra klient–server Architektúra klient–server našla uplatnenie u stredných a rozsiahlych distribuovaných informačných systémov, ktorých nárokom už tradičné riešenia typu Klient–Fileserver nemohli stačiť. V prostredí celopodnikových IS je použitie technológie klient–server kľúčovým riešením, pri migrácií zo sálových technológií (Mainframe) a mikropočítačov HIS. Prechod na architektúru klient–server sa uskutočňuje najmä z dôvodov : • rastu požiadaviek na zvýšenie produktivity práce, • zlepšenia pomeru cena/výkon u IS, • jednoduchšieho vývoja a zavádzania nových aplikácií, • štandardizovaného prístupu k dátam heterogénnych zdrojov, • lepšieho využitia výkonov siete, • možnosti pružnejšieho ladenia výkonu riešenia, • pružnejšieho prispôsobovania sa zmenám v riadení podniku. 127
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
Architektúru klient server definujeme ako také členenie a distribúciu hardvérových a softvérových prostriedkov IS, pri ktorom je zabezpečené kooperatívne spracovanie úloh IS. Stupeň ich distribúcie medzi uzly klientov a serverov pritom koreluje s organizačnou štruktúrou podniku a veľkosťou spracovávaných databáz. Základný model klient–server je založený na existencii procesov servera a klienta, ktoré sú spracovávané v jednotlivých uzloch DIS. Server a klient vzájomne kooperujú pri riešení jednotlivých úloh DIS. Počet serverov spolupracujúcich s klientmi pritom nie je obmedzovaný a všeobecne závisí od konkrétnych podmienok a spôsobu návrhu DIS. Spolupráca klienta so serverom je zabezpečená prostredníctvom komunikačného subsystému a protokolov počítačových sietí LAN, WAN. V rámci modelu klient–server vyčleňujeme dve základné vrstvy : • proces Back–End (server) • proces Front–End (klient) Proces Back–end modeluje služby poskytované servermi DIS. Ako vyplýva aj zo samotného názvu, jedná sa o proces spracovania na pozadí (back–end), ktorý je využívaný jednotlivými klientmi pri realizácii príslušných funkcií DIS. Back–end môže pozostávať aj z niekoľkých vzájomne spolupracujúcich serverov, ktoré sú však z pohľadu klienta vnímané jednotne. Proces Front–end je časť spracovania realizovaná na popredí, priamo uzlami klientov DIS. Nadväzuje a dopĺňa služby Back–endov, pričom koncovým užívateľom sprostredkováva celkový výsledok DIS (Obr. 7.6). Obvykle sa jedná o aplikačné a prezentačné softvérové vybavenie, spolupracujúce s Back–endom. Back End
Front End Request Response
Obr. 7.6 Všeobecná architektúra klient–server Na vysvetlenie funkčnosti architektúry, bude najvhodnejším príkladom aplikácia režimu klient– server v prostredí databázových serverov. Pre takýto prípad je: Front–End – proces klienta databázového servera. Zabezpečuje pružné, grafické, užívateľské rozhranie pre prácu s dátami, ktoré sú uložené a spracovávané databázovým serverom. Klient spracováva požiadavky používateľa (request) a odosiela ich ku spracovaniu na databázový server (napr. požiadavka na aktualizáciu vety databáze). Po spracovaní server odošle výsledok spracovania klientovi (response), ktorý následne zabezpečí jeho prezentáciu a výstup. Klienti disponujú na rozdiel od terminálov HIS značnou inteligenciou, ktorá umožní nielen prezentáciu dát, ale aj ich čiastočné predspracovanie a lokálnu činnosť. Na klientoch obvykle prebiehajú vlastné aplikácie pre konkrétny SRBD, ktoré sú však odbremenené od vlastnej správy a priamych operácií s bázou dát. Back–End – predstavuje funkcie databázového servera. Prijíma požiadavky zo strany klientov, zabezpečuje spracovanie a odoslanie výsledkov. Databázový server pracuje obvykle v relačnom režime s viacužívateľským klientským prístupom. K funkciám servera patrí uloženie bázy dát, zabezpečenie integrity dát, transakčné spracovanie a implementácia elementárnych operácií s dátami. Základná architektúra klient–server sa vyskytuje v niekoľkých odvodených variantoch. Jednotlivé varianty pritom vychádzajú zo základného modelu, líšiac sa vzájomne najmä rozložením funkcií a služieb medzi procesmi Front–End a Back–End. Kritériom klasifikácie sú potom služby vykonávané v architektúre klient–server. Rozlišujeme nasledujúce služby: • prezentačné služby a prezentačná logika, • aplikačné služby a logika aplikácie, • logika dát a dátové služby, • súborové služby .
128
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY Prezentačné služby zabezpečujú interakciu s užívateľom systému. Patria sem funkcie: prijímanie vstupov od užívateľa a prezentácie výstupov na príslušné zariadenia (monitor, myš, klávesnica, atď.). Prezentačná logika riadi interakciu s užívateľom, obsahuje systém obsluhy menu, vzájomné väzby položiek, podmenu a ich náväznosť. Logika aplikácie predstavuje vlastnú aplikáciu v rámci DIS, jedná sa o množinu operácií s dátami, kalkulácií a vykonávaných funkcií v rámci aplikačných programov. Logika dát predstavuje primitívne logické operácie s dátami, ktoré zabezpečujú integritu dát, transakčné spracovanie a základné operácie ako aktualizácia, výber, triedenie, indexácia dát. Súborové služby sú služby sprístupnenia dát vo forme súborov z pamäťových médií pod riadením príslušného operačného systému. Podľa typov služieb a ich realizácie rozlišujeme nasledovné varianty architektúry klient–server (Obr. 7.7) : n základná dvojvrstvová architektúra (vzdialené dáta), o dvojvrstvová architektúra so vzdialenou prezentáciou, p trojvrstvová architektúra s rozdelenou logikou aplikácie. 2 -vrstvová architektúra Dátové funkcie
Dátové funkcie
Dátové funkcie
Dátové funkcie
Aplikačné funkcie
Aplikačné funkcie I
Aplikačné funkcie
Prezentačné funkcie
Prezentačné funkcie
Server Klient
Aplikačné funkcie II
Aplikačné funkcie Prezentačné funkcie
3 -vrstvová architektúra
Prezentačné funkcie
Obr. 7.7 Varianty architektúry klient–server 7.1.2.1 Základná dvojvrstvová architektúra klient–server Je klasickým variantom, ktorej odpovedá aj preberaný prípad databázového servera (Obr. 7.8). Front–End na strane klienta obsahuje prezentačnú logiku, služby, logiku aplikácie a logiku dát. Back– End zabezpečuje dátové služby a súborové služby. V tomto prípade je celá LAN/WAN logika aplikácie na strane klienta, takže spracovanie Klient Server aplikácie realizuje proceAplikácia SRBD sor stanice, čím sa odľahčí server. Po sieti sa však Stored Procedures Call Stored Procedures SQL*Net musia prenášať kompletDatabáza Database Driver né databázové požiadavky Database Driver a odpovede. Tento model je vhodný v prípade men- Obr. 7.8 Koncepcia dvojvrstvovej architektúry klient–server (databázový server) šieho počtu klientov a 129
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
menšieho počtu transakcií voči serveru. Aplikačné programové vybavenie DIS je umiestnené na strane klienta. Aplikácia pri požiadavke na prácu s databázou, volá primitívne procedúry spracovania dát, prostredníctvom špecializovanej knižnice (Stored Procedures Calls). Obvykle sa jedná buď o jednotlivé príkazy jazyka SQL (Select, Create, Update,..), alebo celé dávky príkazov. Príslušné volania sa prenášajú databázovým ovládačom (Database Driver) cez sieť na server, prostredníctvom špecializovaného aplikačného protokolu (napr. SQL*Net firmy Oracle). Server spracuje príkaz SQL, alebo celú procedúru (Stored procedures) prostredníctvom funkcií SRBD a výsledok spracovania odošle späť klientovi. 7.1.2.2 Dvojvrstvová architektúra so vzdialenou prezentáciou V tomto prípade disponuje klient (Front–End) prezentačnými službami. Na strane servera je spracovávaná logika aplikácie, logika dát, ako aj vlastná manipulácia s dátami v databázach. Tým sa výrazne znižujú aj nároky na komunikáciu cez sieť, pretože spracovanie a manipulácia s dátami je plne na strane servera a nie je potrebné prenášať na spracovanie klientovi celé výstupy z databáz. Uvedený variant je formálne identický s architektúrou Host–Terminál len s tým rozdielom, že prezentácia a riadenie interakcie s užívateľom je na strane klienta. Praktickou implementáciou u DIS sú obvykle X-terminály, v úlohe klientov aplikačných serverov s OS UNIX. Nevýhodou tohto variantu sú najmä vysoké nároky na celkovú výkonnosť aplikačného servera. Príklad dvojvrstvovej architektúry je uvedený na nasledujúcom obrázku (). Na strane klienta prebieha špecializovaný proces tzv. Xserver, do ktorého pôsobnosti spadá obsluha požiadaviek užívateľa (zadaj dáta, potvrď voľbu, vyber z menu, atď.), ako aj vlastná hardvérová obsluha monitoru, klávesnice a myši. Xserver zaisťuje primitívne prezentačné funkcie, prostredníctvom ktorých interaguje aplikácia s koncovým užívateľom. Na strane aplikačného servera prebiehajú jednotlivé aplikácie IS, spolu s príslušným databázovým systémom SRBD. Aplikácia využíva na prezentáciu výstupov a príjem vstupov od vzdialeného užívateľa štandardnú grafickú knižnicu (Xlibrary). Prostredníctvom knižnice Xlibrary a X protokolu predáva výstupy a prijíma vstupy z prezentačného servera (Xserver). Zadaj, potvrď, vyber z menu
LAN/WAN Klient
Server
Xwindow/OSF Motif Xserver
Aplikácia Xprotocol
Network Driver
X library
SRBD
Network Driver
Databáza
Obr. 7.9 Koncepcia dvojvrstvovej architektúry so vzdialenou prezentáciou 7.1.2.3 Trojvrstvová architektúra Klient–Server Architektúra predpokladá rozdelenie aplikačnej logiky medzi Front–End a Back–End. Na strane servera sa obvykle nachádzajú kompletné, optimalizované aplikačné procedúry, odpovedajúce priamo jednotlivým databázovým transakciám (napr. SQL). Tieto sú potom všeobecne využiteľné ľubovolnou aplikáciou IS. Na strane databázového servera sa často využívajú aj tzv. triggery, špeciálne spúšťače príkazov databázy, aktivovateľné pri určitej operácií s databázou. Tým sa podstatne zjednodušuje programové vybavenie klientov a znižujú nároky na ich výkonnostné parametre. Back–End v tomto prípade pozostáva z databázového a aplikačného servera. Klient spracováva len časť aplikačnej logiky, druhú časť aplikačnej logiky zabezpečuje aplikačný server. Vybrané procedúry servera sú potom 130
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY volateľné aplikáciou klienta, najčastejšie protokolom volania vzdialených procedúr RPC (Remote Procedure Call) a spolupracujú s príslušným databázovým serverom cez rozhranie SQL. Databázový a aplikačný server je variantne realizovateľný na tom istom uzle IS, alebo na samostatných uzloch (serveroch). Architektúra dovoľuje aj čiastkovú distribúciu dát medzi server a klienta. Presunom časti dát priamo na klienta sa optimalizuje celkový výkon. Nevýhodou je nutnosť udržiavať aktuálne verzie programov a dát na strane samotných klientov. Príklad trojvrstvovej architektúry typu klient–server naznačuje ďalší obrázok (Obr. 7.10). Na strane klienta prebieha časť aplikácie orientovaná na prezentačné funkcie a obsluhu požiadaviek užívateľa (Aplikácia 1). V závislosti od výberov užívateľa (aktivácia položiek menu, výber ikôn) aktivuje aplikácia klienta prostredníctvom volania vzdialených procedúr RPC, aplikačné procedúry na strane aplikačného servera. Volanie procedúr, a výsledky ich spracovania sú prenášané medzi klientom a serverom protokolom RPC. V prípade požiadavky na spracovanie dát v databáze, volá prebiehajúca aplikačná procedúra cez rozhranie databázového ovládača, služby databázového servera SQL. LAN/WAN
Klient
Aplikačný server
Aplikácia1/Prezentácia
Aplikácia2 Stored Procedur Call Interface
Remote Procedures Call Interface RPC
Databázový server
RPC
RPC Database Driver
SRBD Stored Procedures SQL*Net
Databáza
Database Driver
Obr. 7.10 Koncepcia trojvrstvovej architektúry klient–server
7.1.3 Architektúra NCC (Network Centric Computing) V architektúrach informačných systémov súčasnosti patrí bezpochyby k najnovším trendom tzv. sieťovo centrická architektúra NCC (Network Centric Computing). Dnes ešte nie je zrejmé či sa jedná o úplne novú generáciu architektúry, alebo je to len ďalší vývojový stupeň architektúry klient–server. Klient v nej využíva všetky služby IS jednotným spôsobom, pričom nie je zaťažovaný informáciami na ktorých uzloch siete sú distribuované jednotlivé aplikácie a dáta. Rozhraním pre klienta už nie je server, ale len sieť ako taká a globálne informačné zdroje v nej. Od toho je odvodený aj vlastný názov architektúry NCC (Network Centric Computing), sieťovo centrická architektúra. Jedna z najpoužívanejších definícií pre architektúru NCC znie nasledovne: ”NCC je taká forma architektúry IS, pri ktorej sú dáta a výpočtová kapacita na globálnych vzájomne prepojených sieťach, prepojujúcich jednotlivé organizácie a koncových užívateľov”. Vlastnú architektúru pritom charakterizujú nasledovné vlastnosti: • univerzálna prepojiteľnosť v systéme NCC, • použitie všeobecného typu klienta, nezávislého na operačnom systéme stanice, • nezávislosť na konkrétnej implementácií DIS, • dynamická štruktúra DIS-NCC, • virtuálny model riadenia.
131
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
Na rozdiel od technológie klient–server, neprislúcha konkrétnej aplikácií DIS špecializovaný klient, ktorý musí byť udržiavaný a aktualizovaný v závislosti na vývoji aplikácie. Architektúra je založená na použití univerzálneho klienta, ktorý je nezávislý na použitých typoch serverov a klientov. S určitým priblížením sa môže javiť ako model klient–server, v ktorom je klientská strana vybavená len prezentačnými funkciami a prezentačnou logikou. Implementácia serverov pritom nie je dôležitá a môže využívať centrálne servery (podobne ako u HIS), alebo distribuované databázové a aplikačné servery z modelu klient–server. Komunikácia klientov so servermi siete je realizovaná štandardnými protokolmi (TCP/IP), nezávisle od ich konkrétnych operačných systémov. Štruktúra DIS s architektúrou NCC je dynamická, pretože klient využíva na realizáciu jednotlivých služieb IS premenný počet serverov, v závislosti od konkrétnych aplikačných úloh. 7.1.3.1 Intranet Intranet a Internet sú považované za prvé úspešne používané systémy, využívajúce architektúru NCC. Štandardným komunikačným prostredím Intranetu sú protokoly TCP/IP, HTTP a prezentačný protokol HTML. Univerzálnymi klientmi sú prehliadače WWW (WWW browsery) a servermi sú tzv. Web servery, alebo HTTP servery. Podniky budujúce INTRANET prepájajú vnútorné IS s Internetom a tak vlastne dopĺňajú svoju architektúru o systém NCC. V ďalšom si aspoň bodovo vysvetlíme základné komponenty architektúry Intranet. Intranet je založený na hypertextovom spracovaní informácií. Pod pojmom hypertext rozumieme takú formu usporiadania informácií v dokumente, kedy sú informácie na vybraných miestach dokumentu doplnené definovanými odkazmi. Tieto umožnia rýchlejšie vyhľadávanie a nesekvenčný pohyb v rámci prehľadávaných informácií (skoky). Informácie sú uložené v presne definovanom formáte, vo forme špecializovaných hypertextových stránok vzájomne previazaných odkazmi. Stránky pritom nemusia byť lokalizované na tom istom mieste, ale môžu byť rozložené na rôznych serveroch siete (). Klient si prostredníctvom prehliadača stránok (Web Browser) a protokolu HTTP sprístupní úvodnú hypertextovú stránku (tzv. home page) jedného zo serverov. Aktivovaním odkazov na stránke sa generujú automaticky požiadavky na lokálne, respektíve vzdialené stránky, ktoré sa prenášajú na klienta,. Klient sa takto pohybuje po jednotlivých stránkach IS. Klientovi sa celý systém javí len ako systém vzájomne prepojených stránok, tzv. “pavučina” (WEB). G
HTML C
HTML
A a g A G
c dD C
d
g
WEB
c
HTML http http
D a
Obr. 7.11 Koncepcia architektúry Intranet na báze WEBu Niektoré pojmy používané v súvislosti s Intranetom: • HTML (Hypertext Markup Language) – štandard pre metajazyk popisujúci formát a obsah hypertextových stránok, vytvorený ako podmnožina jazyka ISO 8879 SGML (Standard Generalised Markup Language). V súčasnosti používaná verzia HTML v.3.0, sa vyznačuje pokrokovými črtami, akými sú dynamické objekty a podpora rámcov. • HTTP (Hypertext Transfer Protocol) – jednoduchý protokol typu otázka/odpoveď (request / response), špecializovaný na prenos hypertextových stránok HTML.
132
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY • MIME (Multipurpose Internet Mail Extension) - rozšírenie umožňujúce prenos dát v ľubovoľnom formáte (binárnych) prostredníctvom elektronickej pošty a HTTP. • HTTP – WebServer – server, na ktorom sú umiestnené HTML stránky, komunikujúci s klientmi prostredníctvom protokolu HTTP. • WebBrowser – prehliadač hypertextových stránok interpretujúci príkazy jazyka HTML a zabezpečujúci zobrazenie stránky a jej objektov podľa definovaného formátu. • CGI (Common Gateway Interface) - rozhranie medzi WEB servermi a aplikačnými programami. Rozhranie umožňuje výmenu vstupných parametrov, medzi HTML stránkami a spúšťanými aplikačnými programami, ako aj prenos výstupov programov vo forme HTML stránky k užívateľom.. • JAVA - programovací jazyk určený na tvorbu aplikácií, ktoré možno spustiť v prostredí Web browsera. Aplikácie sú dostupné klientom prostredníctvom HTML stránok a integrovaných tzv. JAVA appletov. Na úvodnom obrázku (Obr. 7.11) boli uvedené len základné komponenty architektúry NCC. Základom je univerzálny klient, ktorým je prehliadač hypertextových stránok tzv. WEB browser. Prehliadač obsahuje prezentačné funkcie, pretože interpretuje obsah stránok. Takáto architektúra postačuje len na pasívne sprístupňovanie informácií v podobe hypertextových stránok a neumožňuje realizáciu plnohodnotného informačného systému. Na dosiahnutie funkčnosti architektúry NCC boli zapracované do prostredia WWW niektoré doplnkové objekty, umožňujúce dynamickú prácu s informáciami. Prostredníctvom tzv. CGI skriptov bola funkčnosť architektúry rozšírená o možnosť spúšťania aplikačných programov na strane serverov, priamo z prostredia HTML stránok. Rozhranie CGI umožňuje zadávanie vstupov programom a preberanie ich výstupov v podobe aktualizovaných hypertextových stránok HTML. Takýmto spôsobom je potom možné priamo sprístupňovať aplikácie informačného systému a spracovávať dáta uložené na databázových serveroch IS. Nespornou výhodou je v tomto prípade najmä univerzálnosť a jednoduchosť implementácie klienta. Klient pristupuje k prostriedkom IS prostredníctvom WEB servera, na ktorom sú uložené potrebné CGI skripty a HTML stránky. Druhou možnosťou na vytvorenie funkcií IS, je zapracovanie klientsky orientovaných aplikácií do prostredia Web browsera. Aplikácie sú uložené na strane WebServera v podobe tzv. JAVA appletov, ktoré sú previazané s odpovedajúcimi HTML stránkami. Klient pri načítavaní HTML stránky ku ktorej je pridružený JAVA applet, deteguje prítomnosť programu v jazyku JAVA a následne program spustí v rámci procesu JAVA-VMD (Virtual Machine Device). Spustiteľný program môže realizovať ľubovoľné aplikačné funkcie a prostredníctvom volania procedúr databázových serverov, priamo spracovávať dáta informačného systému. Nespornou výhodou je opäť vysoká univerzálnosť, pretože JAVA applety sú spustiteľné v prostredí ľubovoľného Web browsera. Tým teda aj pod akýmkoľvek operačným systémom a hardvérom, pre ktorý je k dispozícií browser. Principiálne je použitie obidvoch metód ilustrované na nasledujúcom obrázku (Obr. 7.12). HTTP Web Browser
JAVA VMD
SQL
HTTP -Web server HTML stránka JAVA applet
Aplikačný server
Databázový server
CGI skript Stored Procedures
Obr. 7.12 Architektúra NCC a jej implementácia v prostredí Intranet V súčasnosti sa implementujú HTTP servery ako univerzálne platformy, zabezpečujúce funkcie Web serverov a aplikačných serverov IS. Vývoj v tejto oblasti je pomerne dynamický a niektoré tech133
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
nológie sa ešte neustálili a nemožno ich považovať za všeobecne akceptovaný štandard. Budúcnosť ukáže, či tento variant technológie klient–server získa podľa predpovedí dominujúce postavenie v IS.
7.2 Hardvérové vybavenie DIS Z pohľadu technického vybavenia sú distribuované informačné systémy vybavené podstatne rôznorodejšie, ako klasické HIS. Súčasťou DIS môžu byť uzly vybavené heterogénnym hardvérom a softvérom, kde ich integrácia a celková funkčnosť systému je dosahovaná prostredníctvom otvorených publikovaných rozhraní. Princíp otvorenosti architektúry na strane hardvéru a softvéru, je základným atribútom DIS. Hardvérové vybavenie členíme podľa funkčného zaradenia uzlov v rámci DIS na: n vybavenie pracovných staníc klientov, o vybavenie serverov. Hardvérové vybavenie serverov a pracovných staníc sa obvykle líši nielen výkonnostnými parametrami, vybavením, ale aj celkovou architektúrou systému. Servery sú obvykle dimenzované tak, aby dosahovali v závislosti na ich aplikácii najoptimálnejšie výkony a funkčnosť, pretože musia obsluhovať požiadavky zo strany pripojených klientov. Pracovné stanice sú vybavované tak, aby zabezpečili nielen spracovanie lokálnych úloh, ale aj participovali na úlohách spracovávaných servermi. V niektorých prípadoch sa architektúra hardvéru serverov a klientov nemusí líšiť, najčastejšie je tomu tak v jednoduchších IS na báze Klient–Fileserver a sietí Peer–to–Peer. V takýchto prípadoch je server aj klient vybavený počítačom s architektúrou IBM-PC, pričom počítače sa líšia len výkonom a vybavením. Na rozdiel od HIS je na strane koncových užívateľov IS použité hardvérové a softvérové vybavenie, ktoré umožňuje spracovanie úloh lokálneho zamerania, procesorom stanice a nie je tu úplná závislosť na serveroch systému.
7.2.1 Hardvérové vybavenie pracovných staníc Pracovné stanice koncových užívateľov DIS sú vybavené rozsiahlejšou inteligenciou a možnosťou spracovania lokálnych úloh, čo je predpoklad pre ich používanie najmä v architektúre klient–server, kde je časť spracovania úloh DIS prevádzaná priamo stanicou užívateľa. Preto sú pracovné stanice koncipované ako plnohodnotné počítače so samostatným procesorom, operačnou pamäťou a diskovým subsystémom. Podrobnejší popis pracovných staníc presahuje rámec publikácie, preto bližšie informácie čitateľ nájde v predmetoch orientovaných na hardvér a architektúry počítačov. V tejto kapitole sa obmedzíme len na zhrnutie niektorých kľúčových informácií súvisiacich priamo s náplňou publikácie. Na trhu existuje niekoľko hardvérových platforiem používaných na implementáciu pracovných staníc. Tieto platformy sa do značnej miery líšia používanou architektúrou, procesorom a celkovou koncepciou systému. Najpoužívanejšie platformy používané ako pracovné stanice DIS sú : • znakové terminály, • počítače IBM-PC kompatibilné (Intel 80x86), • stanice s procesormi RISC (PA-RISC8000,7200, MPC604, ALPHA, SPARC), • grafické Xterminály, • sieťové počítače pre architektúru NCC. Výber konkrétnej architektúry pracovnej stanice závisí od požiadaviek a možností zákazníka, ktorý používa daný DIS. Aj v ére DIS sa používa v niektorých prípadoch jednoduchých znakových terminálov a to najmä v prípade, že servery DIS sú vybavované operačným systémom UNIX. Znakové terminály v takýchto prípadoch slúžia len na zadávanie dát (zdroje dát) u pracovísk, ktoré riešia len tento typ úloh. V bežných prípadoch plne postačuje architektúra IBM-PC, ktorá spolu s operačným systémom DOS/Windows pokrýva väčšinu trhu. V odbornej terminológií sa často označuje pod názvom WINTEL (OS Windows, procesory INTEL). Pri vyšších nárokoch na rýchlosť a výkon spracovania úloh (napríklad náročné grafické úlohy CAD) sa pre lepšiu výkonnosť používajú počítače s procesormi RISC (Reduced Instruction Set Computing), disponujúce optimalizovanou inštrukčnou sadou. Takéto stanice sú obvykle vybavované aj výkonnejším operačným systémom akým je UNIX, respektíve Windows NT Workstation. Naopak ak sú požadované na strane klientov prezentačné fun134
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY kcie a používa sa operačný systém UNIX, potom postačujú vo funkcií pracovných staníc jednoduché grafické Xterminály. Pre ilustráciu uvedieme tabuľku porovnávajúcu parametre vybraných procesorov, ktorými sa jednotlivé platformy odlišujú. Tab. 7-1 Porovnanie testov SPECint92,SPECfp92 pre vybrané procesory Procesor
Cache
Takt
SPECint92
SPECfp92
Pentium
8K/8K
133MHz
155
116
MIPS R4400
24K
250MHZ
175
178
MPC604
32K
133MHz
176
157
PA-RISC 7200
8K/8K
120MHZ
169
269
Parametre procesorov boli vyhodnocované spracovávaním špeciálnych testovacích úloh neziskovej firmy SPEC (Standard Performance Evaluation Corp.), ktorá vytvorila v roku 1992 testovacie úlohy zamerané na celočíselné operácie a operácie v pohyblivej rádovej čiarke. Výkon procesora pritom nie je jediným kritériom na posúdenie výkonu celej pracovnej stanice. Rozhodujúcim činiteľom je aj celkový výkon vstupno-výstupného subsystému, ktorý vykonáva I/O operácie medzi perifériami a pamäťou a procesorom systému. 7.2.1.1 Architektúra IBM-PC Architektúra IBM-PC sa na trhu sa presadila prakticky hneď od svojho uvedenia na trh firmou IBM. Dnes je vyrábaná jednak vo forme značkových počítačov, firmami Compaq, IBM, Hewlett Packard či Packard Bell, prípadne ako skladačka z komponentov jednotlivých výrobcov. Základom architektúry je vnútorná zbernica na ktorú sú priamo pripojené moduly procesora, pamäte RAM/ROM, radiče prerušení, časovač a vstupno/výstupný radič, na ktorý sú pripojené cez I/O zbernicu doplňujúce adaptéry periférnych zariadení. Jednotlivé komponenty architektúry môžeme charakterizovať nasledovne: PROCESOR je obvykle od firmy INTEL, pričom využíva tzv. úplnú inštrukčnú sadu, tzv. CISC (Complex Instruction Set Computing). Prakticky od modelu I386 sa jedná o 32-bitové procesory, posilnené od rady 486, priamo integrovaným matematickým koprocesorom pre podporu numerických výpočtov a pomocnou pamäťou CACHE pre zrýchlenie práce s inštrukciami. V súčasnosti sa dodávajú procesory PENTIUM (586) a Pentium Pro s špeciálnou superskalárnou architektúrou (dve aritmetické jednotky - za jeden takt dve celočíselné inštrukcie) a technológia MMX.. RAM – pamäť slúži na uloženie inštrukcií programov a spracovávaných dát programov. Pamäte sú škálovateľné podľa potrieb vo veľkostiach od 1MB-32MB, prostredníctvom doplnkových modulov SIMM/DIMM. ROM – pamäť obsahuje základné programové vybavenie pre prácu s technickým vybavením počítača, špecifikované na úrovni volania služieb BIOS. Vnútorná zbernica – slúži na výmenu dát medzi jednotlivými komponentmi architektúry (registre procesora, pamäť RAM, I/O porty). Diskový subsystém – zabezpečuje uloženie dát na pevné a pružné disky, ako aj prístup k jednotkám CD-ROM, prípadne optickým diskom. Na komunikáciu s diskovým subsystémom sa používa rozhranie E-IDE (Enhance IDE), respektíve SCSI (Small Commuter Interface), ktoré umožní pripojenie až 7 diskových zariadení rýchlosťou od 4 do 20 Mb/s. I/O zbernica – slúži na pripojenie periférnych zariadení akými sú napríklad komunikačné radiče, adaptéry pripojenia na sieť LAN. Zbernice bývajú realizované prostredníctvom rozhraní ISA, EISA, VLBus, alebo PCI, odlišujúcich sa vnútornou architektúrou, výkonom a konektormi pre pripojenie periférnych jednotiek. 135
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
KLÁVESNICA – pripojená je prostredníctvom adaptéra klávesnice, pričom zabezpečuje zadávanie vstupov v podobe SCAN kódov do systému. Monitor – zabezpečuje výstup z vysokým rozlíšením. Pôvodne sa používali rozhrania CGA, EGA, dnes patrí dominantné postavenie adaptérom VGA (rozlíšenie 640x480 bodov, 16, 256 farieb). Základná architektúra počítača PC je uvedená na obrázku (). ROM
RAM
Procesor
COM1-4 I/O Subsystém
VGA
SCSI
LAN
LPT1-2
klávesnica
myš
PCI/EISA/ISA
Obr. 7.13 Architektúra poèítaèa kompatibilného s architektúrou PC 7.2.1.2 Architektúra sieťového počítača NC Alternatívou k počítačom triedy PC je v súčasnosti novo nastupujúca generácia tzv. sieťových počítačov NC (Network Computer), ktoré sú určené pre najnovšiu architektúru informačných systémov NCC. Po stránke hardvérového vybavenia sa jedná vlastne o bezdiskovú pracovnú stanicu vybavenú procesorom, operačnou pamäťou, grafickým subsystémom, radičom portov a sieťovou kartou. Vybavenie samozrejme dopĺňa monitor, klávesnica a myš. Popri absencií pevných diskov je sieťový počítač odlišný najmä v softvérovom vybavení, ktoré tvorí len jednoduchý firmware, zaisťujúci základné funkcie počítača, podporu TCP/IP protokolu a vzdialené zavádzanie operačného systému (remote-boot). Funkcie sieťového počítača sú integrované nielen do prostredia stolných počítačov (desktopov), ale ponúkajú sa aj ďalšie zariadenia rozšírené o funkcie konektivity TCP/IP a Intranetu, napríklad televízne prijímače (NC TV) a internetovské telefóny (NC telefón). Sieťové počítače sú orientované práve na podnikové siete založené na technológií INTRANET, kde nahradzujú podstatne drahšie a technologicky náročnejšie osobné počítače a podstatným spôsobom zjednodušujú správu hardvéru a softvéru informačného systému. Dostávajú sa tak do polohy koncových uzlov informačného systému, pretože aplikácie a dáta IS sú uložené na jednotlivých serveroch. Je to podobný princíp ako u pôvodných znakových terminálov s tým rozdielom, že ponúkajú neporovnateľne vyššiu inteligenciu, možnosť spracovania aplikácií, grafické rozhranie (GUI) a komunikačné možnosti TCP/IP. Samotný sieťový počítač nie je funkčný bez špecializovaného administračného servera (NC Administration Server), prostredníctvom ktorého načíta do vlastnej operačnej pamäti základné programové vybavenie (obvykle Web prehliadač) a využíva jeho periférne zariadenia (disky a tlačiarne). Administračné servery sú určené pre rozsiahlejšie podnikové siete, pričom ponúkajú počítačom NC popri bootovaní aj inicializačné a autorizačné funkcie a tým umožňujú centrálnu administráciu IS (). NC počítače sú vybavené základným firmwarom, ktorý plní primitívne funkcie operačného systému NCOS a je kompatibilný so zavádzaním (bootom) aplikačného softvéru z prostredia operačného systému Windows NT a Unix. V menších riešeniach býva funkcia administračného servera spájaná s funkciami aplikačného servera. S výnimkou operačného systému NCOS sú všetky aplikácie uložené na administračnom serveri. V tomto prostredí sa obvykle používa : • WEB prehliadač (Netscape, MS Internet Explorer) – ako základná pracovná plocha NC, • HTML editor – na editáciu HTML stránok, • EMAIL klient – pre prístup k elektronickej pošte, • FILE MANAGER – správca súborov. 136
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY NC
NC Administračný Server
NC NC klient
NCOS
NC Aplikačný Admin server SW
OS (Unix / Windows NT)
Obr. 7.14 Architektúra NC
7.2.2 Hardvérové vybavenie serverov DIS Na rozdiel od pracovných staníc sa na strane serverov kladie zvýšený dôraz na ich parametre a vlastnosti, z čoho následne vyplývajú odpovedajúce nároky aj na ich technické vybavenie. U serverov sa predpokladajú s ohľadom na ich funkcie v IS nasledovné atribúty: • dostatočný výkon a priepustnosť, • podpora multitaskingu a multiklientského prostredia, • spoľahlivosť a odolnosť voči výpadkom funkčnosti (SFT), • redundancia parametrov a možnosti ďalšieho rozširovania, • podpora škálovateľnosti výkonu. Požiadavky kladené na vlastnosti serverov sa prirodzene premietli aj do vlastnej architektúry hardvéru serverov. Snaha zvyšovať výkon je badateľná najmä v prostredí klient–server, kedy sa na aplikačné servery začínajú postupne klásť obdobné nároky, ako na pôvodné systémy triedy Mainframe (Upsizing). V závislosti na veľkosti IS a výbere jeho architektúry sa u serverov využívajú systémy: n PC servery založené na procesoroch INTEL(HP NetServer, Compaq), o stredne výkonné systémy (middware) s procesormi RISC, v multiprocesorové systémy INTEL/RISC, q počítačové zväzky (clustre). 7.2.2.1 PC servery Tradičnou doménou PC serverov sú najmä menšie DIS, u ktorých stále dominuje tradičná architektúra fileserver–klient. Neustále zvyšovanie výkonu platformy Intel v spojitosti s technológiou počítačových zväzkov (clusters), umožňuje jej nasadenie aj v oblasti aplikačných serverov. PC servery využívajú identické architektúry s pracovnými stanicami a počítačmi triedy desktop. Prvé súborové servery boli vlastne realizované ako vydelené počítače PC s výkonnejším procesorom a rozsiahlejším diskovým priestorom. Dnes už jednotliví výrobcovia využívajú modifikovanú architektúru, ktorá je špecializovaná na dosiahnutie najvyššieho možného výkonu, spoľahlivosti a priepustnosti I/O operácií. Pri aplikovaní PC serverov do úlohy aplikačných serverov sa naviac využívajú možnosti multiprocesingu, čiže spracovania úloh niekoľkými procesormi paralelne. K typickým produktom na poli PC serverov patria: • Compaq - Prosignia 300/500, ProLiant • Hewlett Packard -NetServer LC, LF, LM • Siemens P50, P60 K základným charakteristikám PC serverov patrí: • dôsledné použitie procesorov firmy INTEL (Pentium MMX, Pentium Pro), • použitie vysokovýkonných diskových subsystémov (SCSI, SCSI Fast II), 137
INFORMAČNÉ SYSTÉMY • • • • • • • • •
7. KAPITOLA
využívanie redundancie hardvéru (disk mirroring, diskové polia RAID, hot-backup), zabudované diagnostické prvky (monitorovací a diagnostický softvér), dimenzovanie s možnosťou ďalšieho rozširovania (sloty, diskové pozície, ), priamo integrovaný adaptér pre sieť LAN (Ethernet). Pre ilustráciu uvedieme vlastnosti vybraného PC servera: HP NetServer 5/150 LF : procesor Pentium MMX/150MHz, 16MB RAM, miditower, sloty zbernice: 8xEISA, 2xPCI, diskové sloty, SCSI HP D2076B -1050MB, CD-ROM Toshiba XM-4101, 1.44 Floppy, VGA Trident 9000 -0.5MB, 14" VGA mono HP, EISA- HP Ether Twist (Ethernet adaptér IEEE802.3 10baseT).
7.2.2.2 Stredne výkonné servery s procesormi RISC Hlavný nápor migrácie zo sálových technológií Mainframe na distribuované IS u rozsiahlejších systémov umožnili práve systémy založené na procesoroch RISC, ktoré boli vybavované výkonným operačným systémom UNIX. Systémy s procesormi RISC disponovali výkonom, ktorý postačoval potrebám aplikácií celopodnikových IS a ktorý platforma Intel po dlhú dobu nedokázala poskytnúť. Dnes sa preto obvykle aplikačné servery implementujú práve pod touto platformou. Často sa obdobné systémy nazývajú aj ako middware, pretože vypĺňa výkonnostnú bariéru medzi sálovými technológiami a možnosťami platforiem založených na procesoroch Intel. Vysoký výkon procesorov RISC je založený na optimalizácií počtu potrebných inštrukcií procesora a zjednodušení spôsobu adresovania. Ich vlastnosti môžeme zhrnúť nasledovne: • redukcia počtu inštrukcií procesora v pomere 100/20-30, • jednoduchšie kódové vyjadrenie inštrukcií a ich zostavovanie, • použitie jediného spôsobu adresovania (Intel má až 8 spôsobov), • premiestnenie mikrokódu z ROM do RAM pamäti, • menšie výrobné náklady a ľahšia implementácia. Celková architektúra počítačov s procesormi RISC a operačným systémom triedy UNIX V AT&T, je charakterizovaná : • škálovateľnosťou (možnosť škálovania výkonu multiprocesing), • dostupnosťou (skutočne dostupná serverovská architektúra), • otvorenosťou (Unix je otvorená špecifikácia, viď. norma POSIX). Najpoužívanejšie počítačové systémy vybavené procesormi RISC, spolu s dodávaným operačným systémom (UNIX) a výrobcom, udáva tabuľka (Tab. 7-2). Tab. 7-2 Vybrané systémy s procesormi architektúry RISC Model
Výrobca
Operačný systém
HP 9000 Series 800
Hewlett Packard
HP-UX
RS/6000 Powerserver 900
IBM
AIX
SPARCserver UE3000
SUN Microsystems
Solaris
Alpha Server 4100 5/400
Digital
Ultrix
Ako príklad počítačového systému na báze technológie RISC, uvedieme model hardvérovej architektúry servera firmy Hewlett Packard HP 9000/800, typovej rady K. Používané komponenty architektúry uvádza tabuľka (Tab. 7-3). Základné charakteristiky architektúry zhrnieme nasledovne: • SMP multiprocesing pre 4÷6 procesorov, • podpora procesorov PA8000 a PA8200, • architektúra I/O systému HP-HSC, • podpora 512MB modulov RAM (max.8GB), 138
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY • podpora použitia 9GB diskov. Tab. 7-3 Komponenty základnej výbavy serverov HP9000 triedy K Komponent triedy K procesory operačná pamäť I/O systém interné diskové mechaniky interné mechaniky médií
Popis 1-4 procesory PA7200, alebo PA8000,1-6 procesorov PA8200 pamäťové moduly 32MB, 128MB, alebo 256MB Fast/Wide SCSI-2, 802.3 LAN, RS232C, Centronix, PS2 max. 4 diskové mechaniky FWD SCSI-2 1,2 , alebo 4GB SE SCSI-2 mechanika CD-ROM, jednotka DDS-DAT 2/4GB
Architektúra na obrázku (Obr. 7.15) je nazývaná firmou HP ako PA-RISC (Precision Architekture). Pôvodne bola založená na RISC procesore PA7200, ktorý disponoval redukovanou sadou s 130 -32bitovými inštrukciami. Procesor adresuje pamäť v tzv. virtuálnom režime pomocou 64 bitov. Procesor, pamäť a periférne zariadenia sú prepojené vysokorýchlostnou zbernicou 960MB/s, na ktorú sú pripojiteľné vstupno/výstupné subsystémy (High Performance I/O Subsystem) a vstupno/výstupné moduly HP-HSC. Tieto umožňujú pripojenie periférnych zariadení triedy SCSI (20Mb/s), ako aj pôvodných rozhraní HP-PB (PB-PrecisionBus 32Mb/s). Pripojiteľné sú tiež adaptéry rozhraní RS232C (MUX), Centronix a sietí LAN/WAN. CPU 1
20Mb/s Fast/Wide SCSI-2
disk
CPU 2
CPU n
960MB/s Processor/Memory Bus
High Performance
High Performance
I/O Subsystem
I/O Subsystem
128MB/s
RAM
160MB/s
HP-PB High Speed HP-PB System High Speed Connect (HP-HSC) System Interfaces Connect (HP-HSC) Subsystem Interfaces Subsystem
Obr. 7.15 Architektúra systému HP9000 triedy K
7.2.3 Multiprocesorové systémy Neustále rastúce nároky na výkon aplikačných serverov DIS, viedli k návrhu multiprocesorových systémov. Myšlienka paralelného spracovania úloh, niekoľkými procesormi súčasne pritom nie je nová a klasické systémy Mainframe, ju využívali už po dlhší čas. Výrobcovia architektúr na báze procesorov Intel a RISC, po nej siahli najmä z výkonnostných dôvodov. Pri vlastnej implementácií multiprocesorových systémov sa dnes uplatňujú dve základné metódy: n SMP (Symmetrical Multiprocessing) – symetrický multiprocessing, o MPP (Massively Parallel Multiprocesing) – masívne paralelný multiprocesing. Symetrický multiprocesing (SMP) je založený na architektúre zdieľanej pamäti, ktorá je rovnako dostupná jednotlivým procesorom. Procesory vzájomne komunikujú prostredníctvom zdieľanej pamäte a prepojovacej zbernice. Prírastok počtu procesorov neznamená preto automaticky lineárny nárast výkonu. U tejto metódy je vhodný menší počet procesorov (2÷8), aby nedochádzalo k nárastu réžie, potrebnej na koordináciu procesorov. Naopak výhodou metódy je, že programové vybavenie nemusí byť generované špeciálnym spôsobom, a je spracovávané rovnocenne. Vlastnosti SMP sú nasledovné • zbernicová/krížová architektúra pripojenia procesorov k zdieľanej pamäti, 139
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
• konštantná doba prístupu do pamäti, • komunikácia procesorov a procesov len cez zdieľanú pamäť, • podporovaný počet procesorov 2-64. Masívne paralelný multiprocesing (MPP) vychádza z úplne odlišnej filozofie. Každý procesor disponuje samostatnou lokálnou pamäťou, oddelenou od pamätí ostatných procesorov. Taktiež pracovný režim a spracovanie úloh prebieha relatívne samostatne. Koordinácia práce procesorov je zabezpečovaná výmenou správ po internej prepojovacej zbernici. Výhodou systémov MPP je ich ľahké rozširovanie o ďalšie procesory, lineárny nárast výkonu systému s počtom procesorov. Nevýhodou systému je nekonštantná doba prístupu do pamäti. Vlastnosti MPP sú nasledovné: • zbernicové pripojenie procesorov a lokálnych pamätí, • prepojovacie pole zabezpečujúce celkovú koordináciu, • komunikácia založená na predávaní správ cez prepojovacie pole a nekonštantná doba prístupu, • počet procesorov až do 2000. Porovnanie obidvoch metód je ilustrované na nasledujúcom obrázku (Obr. 7.16). Na obrázku je v časti a) systém SMP a v časti b) MPP. b)
a) CPU
CPU
CPU
CPU
Pamäťová zbernica RAM
I/O
RAM RAM
RAM
RAM
RAM
CPU
CPU
CPU
Prepojovacia sieť
Sieť I/O
Radič RAID
Sieť
Obr. 7.16 Architektúra SMP a MPP multiprocesorových systémov Snaha o zvýšenie celkového výkonu viedla po dosiahnutí fyzických možností danej architektúry k nasadzovaniu niekoľkých systémov paralelne vo forme počítačového zväzku (clusters). Je to ešte všeobecnejší model ako multiprocesing. Prepojenie počítačov do logického celku si vyžaduje pri paralelnom riešení úloh, previesť zásahy nielen do hardvéru, ale aj samotného softvéru a operačného systému. Komunikáciu počítačov v zväzku zabezpečujú špeciálne vysokovýkonné linky, alebo priamo vysokorýchlostné siete LAN (Intra-Cluster LAN). Ako dobrý príklad takejto technológie poslúži architektúra MSCS (Microsoft Cluster Server) pre operačný systém Windows NT (Obr. 7.17). Servery v zväzku využívajú spoločný diskový subsystém (napr. diskové pole NetRAID) a jednotlivé operácie a aktuálne informácie v operačných pamätiach serverov sa synchronizujú prostredníctvom softvéru MSCS a vysokorýchlostného komunikačného systému. Zväzok sa pritom javí len ako jeden logický server.
140
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY ...
Intra-Cluster LAN SCSI
NetRAID
Obr. 7.17 Príklad technológie Windows NT
7.3 Programové vybavenie DIS Programové vybavenie DIS plní obdobné funkcie ako programové vybavenie hierarchických systémov. Na rozdiel od HIS je však distribuované v rámci celého informačného systému. Stupeň distribuovanosti pritom závisí od používanej architektúry DIS a konkrétnych potrieb zákazníka. Podobne ako u hardvéru je aj programové vybavenie DIS rôznorodé. Softvérové vybavenie DIS, jeho členenie a konkrétne príklady používaného softvéru vyjadruje tabuľka 6.4. Tab. 7-4 Softvérové vybavenie DIS Softvérové vybavenie DIS
Príklady používaného softvéru
operačné systémy serverov
Windows NT, Unix, IntraNetWare, OS/2
operačné systémy staníc
Windows NT/95/3.11, DOS, OS/2
distribuované databázové systémy
Oracle, Informix, Progress, Sybase, MS-SQL Server
aplikačné programové vybavenie IS
SAP- R3, BAAN, QAD-MFG/PRO,
groupware, Intranet
Lotus-Notes, MS-Exchange/IIS, Novell-GroupWise
kancelárske programové balíky
MS-Office, Lotus-SmartSuite, Corel-PerfectOffice
Operačné systémy tvoria základné programové vybavenie serverov a pracovných staníc DIS. Zabezpečujú vlastnú funkčnosť počítačov, ako aj prideľovanie ich prostriedkov užívateľom a aplikačnému programovému vybaveniu. Do ich pôsobnosti patrí správa súborového systému, prebiehajúcich procesov a aplikácií, ako aj základné komunikačné funkcie prostredníctvom sieťového operačného systému. Distribuované databázové systémy zabezpečujú základné operácie s dátami, ktoré sú uložené v databázach a tým odbremeňujú aplikácie od vykonávania všeobecne sa opakujúcich operácií. Predstavujú tak vlastne systém riadenia bázy dát SRBD, ktorý je však distribuovaný medzi klientov a servery DIS. Aplikačné programové vybavenie tvorí základ informačného systému, pretože obsahuje vlastnú logiku aplikácie a realizuje aplikačné spracovanie dát. Je špecializované na konkrétne aplikačné oblasti, takže sa člení na programové vybavenie pre podnikové systémy (skladové hospodárstvo, MTZ, personalistika, strategické riadenie podniku), výrobnú sféru (podporné funkcie riadenia výroby) a ekonomické systémy. Komplexné programové systémy ako napr. SAP-R/3, MFG/PRO budú podrobnejšie prebrané v samostatných kapitolách.
141
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
Groupware predstavuje podporné programové vybavenie pre pracovné skupiny, plánovanie práce, koordináciu činností a tímové spracovanie úloh (elektronická pošta, diskusné skupiny, atď..) Kancelárske programové balíky tvoria programové vybavenie, špecializované na kancelársky orientované úlohy. Jedná sa najmä o tvorbu a editáciu textov, základné kalkulácie, prezentáciu informácií a jednoduché spracovanie personálnych a firemných dát.
7.3.1 Operačné systémy serverov DIS Serverom je v klasickej definícií uzol, ktorý poskytuje ostatným uzlom systému určitý druh služieb. Podľa poskytovaných služieb členíme servery na súborové, databázové, aplikačné, komunikačné, atď. Pretože tieto služby sú klientom poskytované prostredníctvom počítačovej siete LAN/WAN, nazýva sa operačný systém servera sieťovým operačným systémom (Network Operating System NOS). Definícia operačného systému je prakticky obdobná ako počítačov triedy Mainframe. Základné funkcie a princípy činnosti OS boli prakticky prebrané z pôvodných OS a mierne upravené pre podmienky DIS. Takže len pre rekapituláciu: OS je základné programové vybavenie, ktoré zabezpečuje správu všetkých zdrojov počítača (klávesnica, obrazovka, diskový systém, periférie), správu pamäti a koordináciu behu programov. Vlastnosti OS sú nasledovné: • použitie 32-bitového systému adresácie a vyššie, • aplikovanie režimu ochrany jadra Kernel–OS, • použitie plnohodnotného multitaskingu, • integrácia základných sieťových funkcií, • podpora rôznych aplikačných rozhraní API, • otvorenosť a prenositeľnosť na rôzne hardvérové platformy. Systém adresácie vyžaduje minimálne 32-bitovú architektúru a lineárny systém adresácie, čo je dnes nutnosťou s ohľadom na rýchlosť a veľkosť spracovávaných dát. Napríklad u 16-bitového OS akým bol DOS, maximálnou dátovou jednotkou bol segment veľkosti 64kB, a väčšie dátové bloky museli byť kombinované z viacerých segmentov. To samozrejme značne spomaľovalo prácu. Pri 32bitovom systéme adresácie môžeme priamo adresovať pamäťové bloky do veľkosti 4GB. Chránený režim je nutnosťou, pretože server musí pracovať spoľahlivo a poskytovať prostredníctvom svojho jadra (Kernel), klientom a aplikačným programom príslušné elementárne služby. Akékoľvek poškodenie jadra vedie k výpadku celého servera, preto sa vyžaduje jeho ochrana pred chybami aplikácií. Napríklad ak by chybná aplikácia zapísala do oblasti RAM v ktorej je Kernel a jeho dáta, poškodila by jadro a celý systém. Preto sa využíva hardvérová a softvérová ochrana jadra. Hardvérovú ochranu poskytujú procesory, ktoré zabezpečujú tzv. chránený (privilegovaný) režim. V tomto režime prebieha systém, kým aplikácie prebiehajú v neprivilegovanom režime a nemôžu zapisovať do oblasti jadra. Softvérová ochrana núti aplikačné programy komunikovať s jadrom, cez presne špecifikované rozhrania, bez možnosti priamej práce s hardvérom. Multitasking je praktickou nutnosťou, ktorá vyplýva zo samotnej podstaty činnosti servera. Server poskytuje služby pripojeným klientom, preto musí umožniť paralelné spracovanie úloh klientov tzv. multitasking. Multitasking je založený na časovom prideľovaní procesora(ov) servera jednotlivým úlohám. Súčasné OS podporujú dva režimy multitaskingu odlišujúce sa princípom prepínania procesora medzi spracovanými úlohami 1) Kooperatívny multitasking - je založený na princípe kooperácie jednotlivých úloh medzi sebou. Úlohy si vzájomne prepožičiavajú procesor, podľa svojich potrieb a nárokov. Výhodou je vyšší výkon a rýchlosť spracovania podľa potrieb aplikácií. Na druhej strane chýba centrálny prvok (arbiter), ktorý by riadil prideľovanie procesora a môže sa stať, že niektorá úloha zablokuje systém. Kooperatívny multitasking sa preto neodporúča u aplikačných serverov. 2) Preemptívny multitasking - pracuje na princípe prideľovania procesora centrálnym prvkom, arbitrom ktorým je tzv. plánovač OS (Scheduler). Plánovač prideľuje procesor jednotlivým úlohám po časových kvantách. Po uplynutí kvanta pridelí procesor ďalšej úlohe v poradí, alebo s vyššou prioritou spracovania. 142
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY
Proces 1
Proces 2
Proces 3
Proces 2
Proces 1
OS
Plánovač
µP
Proces 3
µP
Obr. 7.18 Princíp kooperatívneho a preemptívneho multitaskingu Sieťové funkcie, operačný systém servera DIS musí disponovať sieťovými funkciami, pretože práve cez siete LAN a WAN poskytuje svoje funkcie pripojeným klientom. OS serverov je vybavený najpoužívanejšími protokolmi sietí LAN a WAN, od fyzickej vrstvy modelu OSI až po aplikačnú. Komunikačné možnosti v OS sú tradične implementované prostredníctvom transportných rozhraní (TCP, SPX) a relačného rozhrania NetBIOS. Implementujú sa aj komunikačné mechanizmy volania vzdialených procedúr RPC, prípadne funkcie súborového servera. API (Application Program Interface), operačný systém musí poskytovať výkonné rozhranie pre prístup aplikačných programov k funkciám OS. Práve cez API pristupujú aplikačné programy k príslušným službám operačného systému, preto musí API obsahovať všetky potrebné volania a funkcie. Prenositeľnosť, je dnes veľmi požadovaným atribútom. Snahou preto je, aby vytvorené operačné systémy pracovali na rôznych hardvérových architektúrach a umožňovali škálovanie výkonu výberom konkrétneho hardvéru. Problémom samozrejme je, že rôzne hardvérové architektúry používajú rôzne typy procesorov (Intel, RISC, M68010), ktoré zásadným spôsobom ovplyvňujú OS (adresácia, implementácia ochrany,...). Otvorenosť, snahou je používať tzv. otvorené operačné systémy, ktoré sú dobre dokumentované a ktorých API je verejne dostupný aj pre nezávislé softvérové firmy (nielen od výrobcu OS). Typickým otvoreným systémom (OpenSystem) je operačný systém UNIX s programovým API-POSIX. Naopak proprietárnymi sú operačné systémy triedy Mainframe, kde výrobca hardvéru (IBM) obvykle dodáva aj operačný systém, databázové prostredie a aplikačné programy. V ďalšej časti preberieme aspoň rámcovo príklad operačného systému Windows NT, ktorý sa čoraz viac presadzuje popri operačnom systéme UNIX, vo funkcií aplikačného a databázového servera DIS. 7.3.1.1 Windows NT Operačný systém Windows NT (New Technologies) uviedla firma Microsoft na počítačový trh v roku 1993. Hlavným autorom systému je David Cutler, autor legendárneho operačného systému VMS (Virtual Machine System) pre minipočítače VAX firmy DEC. Cutler pôsobil už od roku 1988 ako riaditeľ vývojovej skupiny "Advanced System Group" firmy Microsoft. Pôvodne bolo poslaním menovanej skupiny vyvinúť prenositeľnú verziu operačného systému OS/2, ale po známej roztržke Microsoftu s firmou IBM začalo ASG vývoj úplne nového 32 bitového operačného systému, ktorý by však využíval známe grafické rozhranie Windows a bol by prenositeľný na rôzne HW platformy. Výsledkom vývoja je dnes najpokrokovejší operačný systém, nasadzovaný v súčasnosti najmä do oblasti aplikačných a databázových serverov. Čoraz častejšie tiež nachádza uplatnenie aj u súborových serverov a výkonných pracovných staníc. Podľa niektorých prognóz sa má stať v počte predaných licencí najpredávanejším OS pre podnikové servery skôr ako v roku 2000. Už dnes možno konštatovať, že OS Windows NT disponuje najvýraznejším prírastkom predaja medzi OS serverov. Vlastnosti OS Windows NT sú nasledovné: • plne 32-bitový sieťový operačný systém (NOS), • implementovaný preemptívny multitasking, 143
INFORMAČNÉ SYSTÉMY • • • • • • •
7. KAPITOLA
implementovaný režim viacvláknového spracovania úloh (multithreading), priamo zabudovaný multiprocesing SMP (v súčasnosti max. 8 procesorov), podpora sieťových protokolov IEEE802, NetBEUI, IPX/SPX, TCP/IP, SMB, NCP, dostupné rozhranie Win32-API, Win32-SDK, široká prenositeľnosť na platformy Intel, Mips-R4000, Alpha, podpora rôznych programátorských aplikačných rozhraní API-Win32, OS2, Posix, podpora rozhrania POSIX a otvorenosť systému.
Vlastná architektúra je navrhnutá maximálne modulárne, tak aby bola jednak prenositeľná na rôzne HW platformy, ale najmä rozšíriteľná o nové komponenty v budúcnosti. Windows NT pozostáva z dvoch základných častí: n časť užívateľského módu, o časť kernel módu. Toto členenie je priamo podporované výrobcami procesorov, pretože procesor môže spracovávať program v niekoľkých úrovniach (tzv. Ringoch 0-3), odlišujúcich sa právami (napr. prístup k tabuľke deskriptorov pamäti) a prístupom ku komponentom systému (pamäti). Celkovú architektúru Windows NT znázorňuje obrázok (Obr. 7.19): aplikácie DOS, Windows
16 bitové aplikácie OS/2
POSIX aplikácie
Win32
OS/2
POSIX
EXEKUTÍV I/O subsystém NTFS HPFS FAT CDFS Obsluha zariadení
-spracovanie objektov -správa procesov -komunikácia procesov LPC -správa pamäte -sieťové funkcie -zabezpečenie - ….
Uživateľský mód (chránené subsystémy) Kernel mód
KERNEL
HAL (Hardware Abstraction Layer) abstraktná vrstva HW
Obr. 7.19 Architektúra operačného systému Windows NT Kernel mód predstavuje tzv. EXEKUTÍVU, teda výkonnú časť OS. Kernel mód odpovedá spracovaniu v Ringu 0, čo je tzv. privilegovaný mód. V ňom má program najvyššie práva a spracovaný je s najvyšším výkonom, preto je práve na tejto úrovni spracovávané jadro OS. Exekutíva poskytuje ostatným podčastiam OS dve základné skupiny služieb: • systémové služby (volateľné subsystémami alebo kernelom), • interné služby (služby dostupné len v exekutíve). HAL (Hardware Abstraction Layer) je sadou programových rutín, ktoré sú závislé na použitom technickom vybavení počítača. Vrstva HAL vlastne odtieňuje OS od konkrétnej implementácie hardvéru a umožňuje jednoduchšiu prenositeľnosť systému. Vrstvu HAL obvykle dodáva výrobca konkrétneho HW. I/O Subsystém plní funkcie vstupno/výstupného podsystému. Spravuje rôzne I/O operácie a do jeho pôsobnosti patrí súborový systém vyhovujúci špecifikáciám (FAT, NTFS, HPFS), sieťový manažér a ovládače periférnych zariadení a vyrovnávacích pamätí CACHE. Kernel (Mikrokernel) tvorí vlastné jadro OS, ktorému prislúchajú funkcie typu, riadenie spracovávania procesov,
144
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY prideľovanie procesorov medzi tzv. thready a správa primitívnych objektov systému. Manažér objektov spravuje všetky objekty OS, pričom zabezpečuje ich vytváranie a rušenie v rámci systému. Manažér procesov riadi prosesy a thready. Vytvára, ruší, pozastavuje a obnovuje procesy. Spravuje informácie o prebiehajúcich procesoch. Manažér virtuálnej pamäti (Virtual Memory Manager – VMM) zabezpečuje prideľovanie pamäti RAM prebiehajúcim procesom. Kontroluje prístup do pamäti, ochranu pamäťových oblastí procesov a odkladanie procesov na disk (swap). Monitor zabezpečenia zodpovedá za zabezpečenie systému a dát pred neoprávneným prístupom. Na úrovni prihlasovacej procedúry "login" nastavuje práva ku všetkým objektom operačného systému na ktoré má príslušný užívateľ právo. Užívateľský mód je charakteristický spracovaním programového kódu OS procesorom v tzv. neprivilegovanom režime (Ring 3). Na tejto úrovni sú spracovávané tzv. subsystémy Windows NT a vlastné aplikácie napísané pre Windows NT. Subsystémy spolupracujú s jadrom systému a exekutívou na báze modelu klient–server. Spoluprácu užívateľských subsystémov s jadrom zabezpečuje výkonný komunikačný mechanizmus LPC (Local Procedure Call), ktorým ľubovoľný program volá funkcie jadra, prostredníctvom režimu volania lokálnej procedúry (v tom istom počítači). Každý subsystém pritom rozširuje vlastnosti OS a zabezpečuje prístup prislúchajúcich aplikácií k službám OS. Subsystémy OS členíme na subsystémy prostredia, ktoré poskytujú prístupové API a integrálne subsystémy, rozširujúce elementárne funkcie jadra. Subsystémy prostredia slúžia na prístup k službám OS, pričom služby sú sprostredkúvané prostredníctvom presne definovaného aplikačného programového rozhrania API. Pri volaní služby určitou aplikáciou, preberie volanie služby prislúchajúci subsystém, zavolá príslušnú funkciu jadra a odošle výsledok operácie aplikácií (Obr. 7.20). Aplikácia Windows
Aplikácia OS/2
subsystém OS/2
subsystém Win32
LPC-Local Procedure Call
EXEKUTÍVA NT
Obr. 7.20 Komunikácia aplikácií a subsystémov Windows NT v re ime klient– server Win32 - je primárnym subsystémom Windows NT. Poskytuje funkcie API pre aplikácie Windows (NT,95,3.11), aplikácie pre MS-DOS. Subsystém navyše vytvára vlastné užívateľské rozhranie Windows NT. Aplikačné programy pôsobia ako klienti subsystému (servera) Win32. OS/2 - je subsystém tvoriaci API pre aplikácie napísané pod OS/2 ver. 1.x (16 bitové) a znakovo orientované aplikácie. POSIX - subsystém slúžiaci ako API pre aplikácie UNIXu, napísané podľa špecifikácie POSIX 1003.1. POSIX v tomto prípade nie je OS Unix, ale len sada procedúr a funkcií využívaných UNIXovskými aplikáciami, na sprístupnenie služieb OS (Windows NT). Okrem subsystémov prostredia sú často využívané tzv. integrované subsystémy, rozširujúce funkcie jadra OS WinNT. Za všetky uveďme bezpečnostný subsystém: Bezpečnostný subsystém - spravuje riadenie a kontrolu prístupu užívateľov na systémové prostriedky. Pri prihlasovaní užívateľa, overí platnosť zadaného mena a hesla v internej databáze, vytvorí objekt Token (prístupový príznak) identifikujúci užívateľa v systéme a predá riadenie subsystému WIN32.
145
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
7.3.2 Distribuované databázové systémy 7.3.2.1 Základná koncepcia a vlastnosti databázových serverov Databázové servery sú špecializované uzly siete zamerané na databázové spracovanie, pričom plnia funkcie distribuovaného systému riadenia bázy dát (D-SRBD). Poslaním týchto serverov je poskytovať základné operácie nad bázou dát, ľubovolným aplikačným procesom a koncovým užívateľom. Obyčajne sa jedná o operácie zadávania, modifikácie údajov, vyhľadávania informácií podľa zvolených kritérií, či triedenia a indexovania informácií v databáze. K nosným funkciám databázových serverov patrí:
n
možnosť prístupu k údajom databáze pre ľubovolné aplikačné procesy,
o
podpora súbežného prístupu klientov k spoločnej databáze,
p
podpora variantných metód vyhľadávania informácií,
q
centrálna správa, archivácia a ochrana prístupu k informáciám v databáze,
r
podpora distribuovaného a transakčného režimu spracovania.
Klienti databázových serverov formulujú požiadavky na operácie s databázou a odosielajú ich prostredníctvom dohovorených štandardných rozhraní na databázové servery. Server vykoná požadovanú operáciu a zašle na stranu klienta odpoveď s výsledkom operácie. Jedná sa o klasický režim práce typu “požiadavka–odpoveď” (request–response). V praxi sú databázový server a klient označované ako procesy:
n
Back–End - predstavuje funkcie databázového servera a SRBD,
o
Front–End - predstavuje procesy klienta databázového servera (requester).
Požiadavky a odpovede sa odovzdávajú medzi serverom a klientmi prostredníctvom štandardizovaných rozhraní. K najpoužívanejším patrí relačný jazyk SQL (Structured Query Language) vyvinutý firmou IBM, určeným pre individuálny výber informácií z relačných databáz. Používa sa nielen na špecifikáciu požiadaviek na databázu (select), ale i na vkladanie a aktualizáciu dát (insert, update, delete). Prenos požiadaviek a odpovedí medzi serverom a klientmi patrí do pôsobnosti špecializovaných (request/response) protokolov, ako DRDA (Remote Database Access-ISO) a TDS (Tabular Data Stream-Sybase) (Obr. 7.21). DRDA, TDS back end
Komunik. interface SRBD OS
request/response
SQL
SQL front end
Komunik. interface klient (requester)
Aplikácia Používateľ
Obr. 7.21 Príklad komunikácie klienta so serverom SQL 7.3.2.2 Architektúra databázových serverov triedy SQL SQL server je vlastne databázový server, optimalizovaný na spracovanie dát, ktoré sú umiestnené v relačných databázach prostredníctvom operácií definovaných v jazyku SQL. Samotný jazyk SQL už bol preberaný v predchádzajúcich kapitolách, preto sa v ďalšom zameriame len na vlastnú implementáciu SQL serverov. Databázové servery môžu byť implementované v závislosti od prostredia, konkrétneho výrobcu a použitej architektúry vo forme: • paralelných serverov, 146
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY • monolitických serverov s viac vláknovou architektúrou (multithreaded). Implementácia prostredníctvom paralelných serverov je založená na zriadení samostatného procesu servera v rámci operačného systému, pre každého pripojeného klienta. Požiadavky klienta potom obsluhuje príslušný proces servera, v kooperácií s ostatnými servermi nad príslušnou databázou. Výhodou je jednoduchšia implementácia serverov a lepšie využitie služieb operačného systému. Na zriadenie procesu servera a prideľovanie procesora jednotlivým procesom servera sú aplikované priamo natívne služby OS. Monolitický typ servera je v rámci operačného systému tvorený ako samostatný proces, ktorý obsluhuje požiadavky jednotlivých klientov. Server v tomto prípade realizuje paralelné spracovanie požiadaviek klientov, prostredníctvom viacvláknového spracovania (multithreading), kedy sa požiadavky rozdelia na samostatné vlákna (podprocesy) a spracovávajú súbežne. Prideľovanie procesora vláknam je v kompetencií procesu servera, ktorý je chápaný pod operačným procesom ako jediný proces. Výhodou je vyššia nezávislosť databázového servera na vlastnostiach OS a nevýhodou zložitejšia implementácia. Principiálne sú obidva režimy naznačené na nasledujúcom obrázku (Obr. 7.22). Server proces 1 Server proces 2 Server proces n
Operačný systém
Server proces
Operačný systém
Obr. 7.22 Možné implementácie databázových serverov V ďalšom sa sústredíme na vlastnú architektúru monolitického databázového servera, pričom sme si pre ilustráciu zvolili ako vhodný príklad SQL server od firmy Sybase. Konkrétna architektúra SQL servera je uvedená na ďalšom obrázku (Obr. 7.23). Server pozostáva z niekoľkých elementárnych častí, ktorých funkcie si v ďalšom vysvetlíme: • Kernel - je programové jadro SQL servera, implementujúce základné (primitívne) operácie systému riadenia bázy dát (SRBD). Vytvára a riadi úlohy SRBD, zriaďuje procesy, obsluhuje pamäť servera, zabezpečuje diskové a sieťové vstupno/výstupné operácie, obsluhuje požiadavky pripojených klientov prostredníctvom viacvláknového režimu spracovania úloh. Jadro má vo svojej kompetencii aj spoluprácu s príslušným operačným systémom servera a využívanie hardvérových zariadení servera (diskov, periférií). • I/O - modul pre vstupno/výstupné operácie s diskovým subsystémom a komunikačným subsystémom. Prostredníctvom neho SQL server načítava dáta do pamätí cache a po spracovaní ich naspäť ukladá na disky. Modul tiež zodpovedá za komunikáciu s klientmi prostredníctvom siete a aplikačného protokolu TDS, ktorým prijíma SQL požiadavky a odosiela výsledky spracovania klientom. • Engine - jednotka databázového spracovania v prostredí multiprocesingu SMP. Jednotka zabezpečí paralelné spracovanie úloh s inými úlohami servera SQL na dostupnom procesore. Počet jednotiek obvykle odpovedá celkovému počtu dostupných procesorov . • Rad 1 (Run queue) - dočasný priestor pamäte RAM servera, pre aktívne a spracovávané úlohy . V ňom úlohy priamo čakajú na spracovanie procesorom servera. • Rad 2 (Sleep queue) - dočasný priestor pamäte RAM do ktorého sú presúvané úlohy s pozastavením činnosti, respektíve očakávajúce výsledok požadovanej I/O operácie. • Cache-dát - pamäťový priestor RAM pre dočasné uloženie spracovávaných dát. Sú do neho ukladané často spracovávané databázové tabuľky, indexové polia a log súbory. Práca s dátami v pamäti cache znižuje požiadavky na diskové I/O operácie, èím podstatnou mierou ovplyvòuje celkový výkon servera. • Cache-procedúr - pamäťový priestor RAM pre dočasné uloženie spracovávaných procedúr SQL. Sú do neho ukladané najčastejšie požadované procedúry a triggery, v predkopilovanom 147
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
tvare. Týmto sa taktiež zvyšuje celkový výkon SQL servera, pretože odpadá nutnosť načítavania procedúr z diskov a ich následná kompilácia pred spracovaním serverom, po príjme SQL požiadavky od klienta. CPU
CPU CPU
1
n
2
Operačný systém Engine 1
Engine n
Engine 2
Cache-procedúr Cache -dát Kernel + procedúry servera
Rad 1 2
Rad 2 1
Databáza Indexy Užívateľské tabuľky
Systémové tabuľky
n
I/O disk
view Procedúry
log Triggery
sieť
Obr. 7.23 Príklad architektúry databázového SQL servera Na obrázku (Obr. 7.23) je naznačená aj vlastná štruktúra databáz spracovávaných SQL serverom, vo forme množiny údajových objektov s preddefinovanou štruktúrou. Databázu server implementuje buď prostredníctvom súboru, v rámci súborového systému použitého operačného systému, alebo len ako vyhradenú oblasť diskového systému (Database partition). V druhom prípade zabezpečí server prácu s dátami bez kooperácie s operačným systémom, prostredníctvom priameho volania vstupnovýstupných diskových operácií. K údajovým objektom databáz patria: • Užívateľské tabuľky - predstavujú relačné databázové tabuľky definované užívateľmi a používané pri vlastnom uložení aplikačných dát. • Systémové tabuľky - vytvára v relácií k užívateľským tabuľkám priamo SQL server, za účelom udržiavania systémových informácií viažucich sa k databáze (čas modifikácie, zamknuté oblasti, transakčný log, …). • Indexy - sú pomocné tabuľky pre zrýchlené vyhľadávanie v databázach, preusporiadaním čísiel viet podľa konkrétneho kritéria a ich hierarchického zoradenia cez B-stromy. • Prehľady (View) - predstavujú alternatívne pohľady na dáta v jednej, alebo niekoľkých tabuľkách podľa špecifikácie užívateľov. • Procedúry - sú sekvencie SQL príkazov, definované užívateľom a volateľné SQL príkazom exec proc. Tieto nahradzujú postupné volanie príkazov SQL zo strany užívateľa, čím sa zvýši aj výkonnosť, pretože sú už v predkompilovanom tvare dostupné v cache pamäti. • Triggery - sú špecializované udalosťami riadené procedúry (event driven), spúšťané pri výskyte požiadavky na modifikáciu určitej časti tabuľky. Napríklad príkazmi SQL (insert, update, delete). Často sú využívané na kontrolu integrity dát v relačnej tabuľke, bezprostredne po ich aktualizácií. SQL server vykonáva operácie typu: • verifikácia prístupových práv užívateľov k databáze, • kontrola a vyhodnocovanie SQL požiadaviek užívateľov a aplikačných serverov, • obsluha radu aktívnych požiadaviek , • spúšťanie odpovedajúcich procedúr a trigerov nad príslušnou databázou, 148
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY • vstupno/výstupné operácie s dátami databáz, • odosielanie výsledkov spracovania cez sieť klientovi, • obsluha rýchlych vyrovnávacích pamätí Cache na zrýchlenie operácií. 7.3.2.3 Príklady najpoužívanejších databázových serverov Na úrovni databázových serverov, ktoré umožňujú prístup k údajom prostredníctvom jazyka SQL, existuje pomerne veľké množstvo ich producentov. Za všetkých spomenieme aspoň tých najdôležitejších: • ORACLE – firma Oracle Corp., predstavuje vedúceho výrobcu v oblasti relačných databáz na úrovni technológie klient–server. Oracle ponúka niekoľko typov serverov, ktoré sú optimalizované na spracovanie dát pod rôznorodými architektúrami klient–server, ako aj softvérovými a hardvérovými platformami. Oracle aplikuje paralelnú architektúru Oracle RDBMS, využívajúcu možnosti technológie masívne paralelného multiprocesingu s transakčným výkonom presahujúcim hranicu 1000 TPC. Server býva implementovaný tak, aby umožnil aplikovať multitasking s podporou viacvláknového spracovania (multithreaded). Na komunikáciu klienta so serverom je využívaná mutácia SQL jazyka PL/SQL a aplikačný protokol SQL *Net. • INFORMIX – je bezprostredne konkurujúcim systémom, ktorý vychádza z paralelizmu podľa tzv. DSA (Dynamic Scaleable Architecture). Architektúra DSA využíva paralelizmus prostredníctvom tzv. klastrov (clusters), ktoré predstavujú logicky previazané skupiny procesorov, pamätí a diskov, umiestených na fyzicky oddelených serveroch, prepojených komunikačnou sieťou. • SYBASE – využíva dvojúrovňovú architektúru klient–server. Sybase SQL server je optimalizovaný čo do výkonu, pričom paralelizmus je dosiahnutý prostredníctvom vzájomnej spolupráce niekoľkých SQL serverov. Kooperáciu jednotlivých serverov koordinuje špeciálny server, tzv. navigátor. Na komunikáciu klienta so serverom je využívaný optimalizovaný jazyk Transact SQL a aplikačný protokol TDS (Tabular Data Stream). • PROGRESS – implementuje relačný databázový systém prostredníctvom technológie ASA (Advanced Storage Architecture), založenú taktiež na princípe klient–server. Progress sa snaží zjednocovať dáta spravované rôznorodými relačnými SQL servermi jednotným spôsobom. Sám však používa vlastnú mutáciu jazyk pod označením E/SQL. Užívateľ 1
Server 1
Užívateľ 2
Server 2
Spoločná pamäť Pamäť Cache
Databáza
Aplikácia 1
Server n Tabuľka záznamov Tabuľka transakcií Tabuľka užívateľov
Obnovovací súbor
Žurnálový súbor
Tabuľky
Obr. 7.24 Príklad architektúry SQL servera od firmy Progress 149
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
7.3.2.4 Otvorené databázové rozhrania, rozhranie ODBC Napriek snahe o unifikáciu prístupu k dátam relačných databáz prostredníctvom štandardného jazyka SQL a jeho normalizáciu organizáciou ANSI, neboli zo strany jednotlivých firiem dodržané podmienky vzájomnej kompatibility. Tým dochádzalo k problémom pri prístupe k rôznorodým databázovým systémom, pretože mutácia jazyka SQL jedného výrobcu neumožňovala priame prepojenie na relačné databázy iných výrobcov. Z týchto príčin boli vyvíjané nástroje pre integráciu rôznorodých databázových platforiem, pre univerzálny prístup klientov k databázam jednotlivých výrobcov. Za všetky spomenieme aspoň tie najpoužívanejšie: n Aplikačné prekladové brány (Database Gateway) - sú špecializované uzly, ktoré disponujú na strane klientov prístupovým jazykom SQL daného výrobcu a na strane serverov mutáciami SQL, od ostatných výrobcov. Tento systém potom umožní klientom jedného systému pristupovať k dátam uloženým na databázových serveroch iných výrobcov. o Podpora protokolu RDA (Remote Database Access) - ktorý bol definovaný ako aplikačný protokol univerzálneho prístupu k vzdialeným databázam v rámci referenčného modelu komunikácie otvorených systémov RM-OSI/ISO. Nevýhodou však je značná komplexnosť a zložitosť protokolu, čo spôsobuje problémy pri implementácií klientov a serverov a vedie k určitej degradácií výkonu oproti proprietárnym riešeniam. Ďalšou nevýhodou je aj nutnosť prekladu požiadaviek SQL, do požiadaviek a služobných správ protokolu RDA. p Podpora API rozhrania ODBC (Open Data Base Connectivity) - ktorý bol pôvodne vyvinutý firmou Microsoft, za účelom vytvorenia štandardného klientského rozhrania k databázam. Microsoft tak chcel zaistiť nezávislosť klientských aplikácií na používaných databázových systémoch. Postupne začali na strane svojich serverov podporovať toto rozhranie aj ostatní výrobcovia. Tým sa podstatne zjednodušila ich vzájomná spolupráca, pretože namiesto podpory všetkých mutácií SQL, postačí podpora vlastnej mutácie a otvoreného rozhrania ODBC. Výhodou ODBC taktiež je, že nie je závislé na jazyku SQL a umožní rovnocenné pripojenie k iným typom databáz, akými sú napríklad súborovo orientované databázové systémy napr. Access, Xbase a hierarchické databázové systémy. Na strane klienta postačí odpovedajúci ODBC ovládač (ODBC driver) pre príslušný databázový systém Obidve metódy otvoreného prístupu prostredníctvom štandardného protokolu RDA a aplikačnej brány k databázam rôznych výrobcov naznačuje obrázok (Obr. 7.25) . Aplikácia1 (Excel)
Aplikácia2
Gateway (OpenServer) Oracle
PL-SQL RDA
Transact-SQL E-SQL
RDA
Sybase
ODBC-API ODBC driver Oracle/PL-SQL
ODBC driver MS-Access/*.DB
Progress
SQL klient
Oracle server PL-SQL
Obr. 7.25 Univerzálny databázový prístup protokolom RDA cez aplikaènú bránu 7.3.2.5 Aplikačné protokoly SQL serverov Ako už bolo uvedené, vlastné SQL príkazy sa prenášajú medzi serverom a klientmi prostredníctvom špecializovaných aplikačných protokolov. Tieto sú pritom implementovateľné nad ľubovoľným protokolom relačnej, alebo transportnej vrstvy (napr. NetBIOS, TCP/IP a SPX/IPX). Pri komunikácií sa obvykle najskôr vytvorí transportné spojenie klienta so serverom, tzv. aplikačná asociácia ( napr. tzv. pomenovaný kanál - Named Pipe). Prostredníctvom neho si potom server aj klient vymieňajú 150
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY vlastné pakety aplikačného protokolu. K najpoužívanejším protokolom na tejto úrovni potom patria protokoly • RDA (Remote Database Access) - štandardizovaný protokol vzdialeného prístupu k databázam, určený pre otvorené systémy odpovedajúce referenčnému modelu RM-OSI. Vyznačuje sa značnou univerzálnosťou a náročnosťou implementácie. Je obvykle súčasťou databázových aplikačných brán a otvorených riešení (viď. predošlá kapitola). V praktických implementáciách sa uplatňuje jeho zjednodušená mutácia DRDA. • TDS (Tabular Data Stream) - je pomerne rozšírený protokol firmy SYBASE, ktorý používa aj samotná firma Microsoft pri komunikácií aplikácií cez ODBC rozhranie, so svojim databázovým serverom Microsoft SQL Server. TDS je poloduplexný protokol optimalizovaný pre databázový prístup. TDS prenáša na server pakety vo forme ASCII bufferu o implicitnej veľkosti 512 bajtov, aj s príslušnou SQL požiadavkou na server. Server následne po spracovaní požiadavky odošle odpoveď zabalenú do paketu TDS. V prípade, že výsledok operácie presiahne implicitnú veľkosť, odosiela server odpoveď prúdom (stream) TDS paketov, ktoré sú označené riadiacim poľom konca správy EOM (End of Message). Protokol TDS udržuje informácie o počte prenášaných polí a ich dátovom type, čo je dôležité najmä pri používaní rozdielnych hardvérových architektúr. TDS taktiež umožní volanie vzdialených procedúr protokolom RPC. Uplatnenie protokolu TDS ako aj princíp komunikácie klienta so serverom SQL, vysvetľuje ďalší obrázok (Obr. 7.26). Klient má so serverom vytvorené transportné spojenie protokolom TCP/IP a zriadenú aplikačnú asociáciu prostredníctvom pomenovaného kanála ”x”. Aplikácia požaduje volanie databázovej operácie prostredníctvom funkčného volania API rozhrania ODBC (spustenie procedúry servera ”sphelpdb”). Volanie prijíma ODBC manažér, ktorý ho odosiela na odpovedajúci ODBC driver. ODBC driver pretransformuje volanie funkcie ODBC do syntaxe databázového systému, v tomto prípade ako požiadavku v jazyku Transact-SQL. Požiadavka je následne predaná sieťovej knižnici (NetLibrary), ktorá ju prekóduje do paketu TDS a odošle pomenovaným kanálom na server. Aplikácia odbc-API/Win32 ODBC manager/driver (odbc2.dll, sqlsrv32.dll) Net Library/NamedPipe (dbnmp3.dll) TCP/IP
SQLExecDirect(hstmt,”exec sphelpdb” ,SQL) SQL (ID=3 SPID=12, User=sa” , App=” ODBC”,Host=”Sx”) exec sphelpd go
TDS paket
Pomenovaný kanál “ x“
Transportné spojenie TCP
SQL Server Open Data Services (sqlsrv32.dll) NetLibrary/NamedPipe (ssmsnmp.dll) TCP/IP
Obr. 7.26 Komunikácia klienta s SQL serverom cez rozhranie ODBC a protokol TDS
7.3.3 Architektúra aplikačného servera Aplikačné servery predstavujú novú triedu serverov, špecializovaných na distribuované spracovanie a podporu aplikačných služieb. Aplikačné servery poskytujú aplikáciám svoju výpočtovú kapacitu (procesný čas, pamäťové priestory) a podľa logiky príslušnej aplikácie sa podieľajú na vlastnom spracovaní úloh. Pritom úzko spolupracujú s databázovými a prezentačnými servermi. Z hľadiska princípu pracujú aplikačné servery obdobným spôsobom ako databázové len s tým rozdielom , že nie sú obmedzené na spracovanie dát v databáze. K ich funkciám patrí : • centralizovaná správa prevádzkovaných aplikácií , • podpora transakčného spracovania aplikácií, • škálovateľnosť výkonu spracovania aplikácií, • podpora symetrického multiprocesingu, • podpora distribuovaného spracovania a prislúchajúcich protokolov.
151
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
Aplikačný server je teda platformou, ktorá zabezpečuje súčasný beh aplikácií informačného systému v podobe priamo vykonateľných programov na serveri. Výkon aplikačného servera do značnej miery determinuje aj celkový výkon informačného systému, preto sú kladené na samotný server a jeho operačný systém vysoké nároky. K typickým požiadavkám na vlastnosti servera patrí : • podpora viacúlohového spracovania (multitasking), • podpora viacvláknového spracovania úloh (multithreading), • preemptívnosť rozvrhovania úloh (prioritnosť v spracovaní aplikácií), • vyspelá správa a stránkovanie pamäti. Princíp činnosti všeobecného aplikačného servera si môžeme vysvetliť na nasledujúcom obrázku (Obr. 7.27). Aplikácie komunikujú s klientmi prostredníctvom siete. Akonáhle aplikácia prijme požiadavku klienta na spracovanie, odošle proces do fronty jadra systému. V jadre operačného systému prebieha systémový proces plánovač rozdeľujúci proces na podprocesy tzv. vlákna (threads), ktoré môžu prebiehať nezávisle a paralelne na rôznych procesoroch servera. Podprocesom prideľuje pamäť a pridelí im na spracovanie dostupné procesory. Výsledok spracovania je odoslaný na klientov príslušným aplikačným protokolom.. I/O Sieť
Aplikácia n Aplikácia 1 Aplikácia 1
Aplikácie
Súborový systém Správca RAM
00110 11010 00110 11010 00100 11000
Plánovač Rad požiadaviek Operačný systém
RAM CPU CPU CPU Cache
Hardvér
Obr. 7.27 Princíp činnosti aplikačného servera Aplikačné úlohy môžu prebiehať buď priamo na aplikačných serveroch, komunikujúcich s používateľmi prostredníctvom prezentačných serverov, alebo môžu pracovať distribuovaným spôsobom. V prípade distribuovaného spracovania je obyčajne aplikácia rozdelená na časť spracovávanú aplikačným serverom a klientskú časť. Obidve časti vzájomne spolupracujú prostredníctvom počítačovej siete a niektorej z nasledovných metód : • metódou vzájomného odovzdávania správ (NetBIOS), kedy si jednotlivé aplikácie vymieňajú výsledky spracovania a vstupy prostredníctvom výmeny správ s definovaným obsahom, datagramovým prenosom cez sieť. • priamym prenosom dát medzi aplikáciami cez tzv. pomenované kanály (Named pipe), čo je veľmi často používaný spôsob priamej spolupráce najmä u dátových SQL serverov, ktoré nimi odosielajú SQL požiadavky a odpovede . Pomenované kanály sa javia ako prúdová služba (stream), ktorá principiálne odpovedá čítaniu a zápisu dát do súborov. Obsahovú interpretáciu dát v prúde, realizujú priamo komunikujúce aplikácie.
152
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY • volaním vzdialených procedúr protokolom RPC (Remote Procedure Call), ktorý odpovedá štandardu DCE (Distributed Computing Environment) organizácie OSF (Open Software Foundation). Ľubovoľná aplikácia na strane klienta si potom môže prostredníctvom protokolu volať špecifikované vzdialené procedúry na strane aplikačného servera. Aplikačný server po ukončení výpočtu odošle výsledky spracovania naspäť klientovi. Týmto spôsobom pracujú napríklad aplikácie databázových klientov, ktoré volajú procedúry s SQL príkazmi a trigerry databázových serverov. Princíp použitia protokolu RPC aspoň symbolicky naznačuje nasledujúci obrázok (Obr. 7.28). Klientská aplikácia (Proces A) volá protokolom RPC vzdialenú procedúru (r_proc) na aplikačnom serveri (AS), server po spracovaní procedúry odosiela výsledok spracovania klientovi, ktorý pokračuje vo výpočte a volaní lokálnych procedúr (l_proc). • prostredníctvom distribuovanej komunikácie objektovo orientovaných procesov (DCOM). Pretože jedným z obmedzení protokolu RPC je to, že nie je objektovo orientovaný a umožňuje len procedurálnu výstavbu aplikácií, vypracovala firma Microsoft špecifikáciu distribuovanej komunikácie objektovo orientovaných procesov DCOM. Osobitnou skupinou sú aplikačné servery špecializované pre prostredie Intranet a architektúru NCC. Servery prijímajú požiadavky klientov na spracovanie aplikácii prostredníctvom tzv. CGI skriptov, alebo len slúžia na jednoduché uloženie aplikácií v podobe appletov jazyku JAVA od firmy SUN. Spracovanie aplikácií prebieha až na strane klientov, ktorý si najskôr prenesú aplikácie prostredníctvom stránok HTML s JAVA appletmi a následne ich spracujú.
7.4 Komunikačný subsystém DIS V rámci predkladanej kapitoly si aspoň rámcovo zhrnieme súčasný stav a najpoužívanejšie komunikačné technológie, aplikované v prostredí DIS. Ako vyplýva z predchádzajúceho výkladu distribuované informačné systémy priamo predpokladajú určitý stupeň distribúcie dát a ich spracovania v rámci IS. Tento fakt kladie samozrejme zvýšené nároky aj na také vlastnosti komunikačného systému, akými sú priepustnosť a prenosová kapacita systému, ale vo významnej miere aj bezpečnosť a spoľahlivosť komunikácie. Vysoké nároky kladené zo strany DIS si vyžiadali aplikáciu nových komunikačných technológií, ktorým už nemohli klasické centristicky koncipované terminálové siete stačiť. Komunikačný subsystém súčasných DIS tvoria najmä výkonné počítačové siete disponujúce vysokými prenosovými rýchlosťami (Mb/s ÷ Gb/s), malým oneskorením a centralizovaným manažmentom. Počítačové siete sa dnes najčastejšie triedia podľa rozľahlosti siete, alebo územného dosahu počítačové siete rozdeľujeme na: • LAN / MAN (Local Area Network, Metropolitan Area Network) ) – lokálne dátové siete, ktoré pokrývajú územie danej lokality a obvykle nepresahujú dosah 10 km (napr. budova, závod) a mestské dátové siete, ktoré zaberajú územie mesta teda rádovo 10-ky km, pozostávajúce zo Aplikačný Server
Call r_proc
Proces A: call r_proc
r_proc
r_proc r_proc
Klient
Return
call l_proc
l_proc
RPC
Obr. 7.28 Komunikácia klienta s aplikačným serverom prostredníctvom RPC vzdialených sietí LAN. • WAN (Wide Area Network) – dátové siete pre najväčšie vzdialenosti, ktoré sú svojim rozsahom neobmedzené, pričom zaberajú územia štátov i kontinentov. 153
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
7.4.1 Lokálne počítačové siete Lokálne počítačové siete sa začali presadzovať už začiatkom 80-tych rokov, pričom už dnes predstavujú dominantné komunikačným prostredím prakticky vo všetkých oblastiach aplikácie počítačov. Táto oblasť prešla prudkým vývojom s následnou štandardizáciou najefektívnejších technológií. Pre prehľadnosť si v nasledujúcej tabuľke zhrnieme aspoň najperspektívnejšie a najpoužívanejšie typy sietí LAN, ktoré sú štandardizované prostredníctvom medzinárodnej organizácie pre štandardizáciu ISO/IEEE v rámci noriem triedy ISO 8802. V tabuľke sú prehľadne usporiadané jednotlivé normy IEEE 802, tak ako sú členené v rámci IEEE.
PREHĽAD NORIEM IEEE 802 IEEE 802.1 rozhranie pre vyššie vrstvy IEEE 802.2 norma pre podvrstvu LLC všeobecnej siete IEEE 802.3 Ethernet siete, prístupová metóda CSMA/CD IEEE 802.4 prístupová metóda Token Bus, siete MAP IEEE 802.5 siete Token Ring, prístupová metóda Token Passing IEEE 802.6 siete MAN (DQDB) IEEE 802.11 bezdrôtové siete LAN IEEE 802.12 vysokorýchlostné siete 100VGA (Hewlett Packard) 7.4.1.1 Siete ETHERNET podľa normy IEEE 802.3 Siete Ethernet pokrýva samostatná norma IEEE 802.3 špecifikujúca stochastickú prístupovú metódu CSMA/CD (Carrier Sense Multiple Access/Collision Detection). Pri tejto metóde jednotlivé počítače siete testujú stav na prenosovom médiu (napr. zbernici). Ak ľubovoľný počítač siete vysiela, ostatné sú blokované až do doby kým sa neuvoľní zbernica. Po uvoľnení zbernice môže začať vysielať údaje ďalší počítač. Ak však čaká na uvoľnenie zbernice viac počítačov naraz, môže dôjsť pri súčasnom pokuse o vysielanie ku kolízii a strate údajov. Neskôr bol špecifikovaný tzv. prepínaný Ethernet (Switched Ethernet) bol vyvinutý z dôvodu zvýšenia výkonu a eliminácie vplyvu metódy CSMA/CD, ktorá spôsobuje nielen kapacitné obmedzenia, ale aj celkové obmedzenie dosahu siete. V tomto prípade aktívny prvok siete nepracuje v režime multiportového opakovača, ale ako prepínač, takže prenos rámcov prebieha len medzi príslušnými portami komunikujúcich staníc. Dáta sú pri prenose formátované do tzv. rámcov s údajmi o adrese cieľového, zdrojového uzla a zabezpečením. Rozlišujeme nasledovné varianty sietí Ethernet: Sieť 10Base5 predstavuje pôvodný klasický Ethernet, tak ako bol špecifikovaný v norme DIX. Základom siete je koaxiálna zbernica tvorená tzv. hrubým (žltým) káblom (Obr. 7.29), na ktorú sú paralelne pripojené prostredníctvom externých jednotiek MAU (Transceiver – vysielač/prijímač) samostatnými káblami AUI jednotlivé stanice siete. Celkovo možno pripojiť bez použitia opakovačov 100 uzlov na vzdialenosť 500m. Sieť 10Base2 IEEE 802.3a predstavuje mierne modifikovanú verziu zbernicového Ethernetu, ktorá využíva lacnejšie koaxiálne rozvody. Pôvodná koncepcia zbernicovej topológie u tejto siete zostala nezmenená, len sa použil lacnejší typ kábla (RG58) s menšou hrúbkou opletenia, vypustili sa externé jednotky MAU a použili sa jednoduchšie konektory (BNC). Dosah siete je 185m s maximálnym počtom 30 uzlov na jednom segmente. Siete Ethernet 10BaseT/FL odstraňujú nedostatky zbernicových sietí a to najmä ich nízku spoľahlivosť, nemožnosť centrálneho riadenia siete a nepružné rozširovanie siete. Špecifikácia siete 10BaseT IEEE 802.3i využíva kabeláž na báze krútených párov UTP (STP) a hviezdicovú topológiu siete s aktívnymi rozbočovačmi tzv. Ethernet Hubmi. Uzly siete sú pripojené prostredníctvom vysielacieho a prijímacieho páru na Ethernet hub, ktorý má funkciu multiportového opakovača. Ako médium na pripojenie uzlov k opakovaču sa využívajú aj multimódové optické vlákna (10BaseFL), so samostatným vysielacím a prijímacím vláknom, ktorými sa signál šíri prostredníctvom modulovaných svetelných impulzov. Celkový dosah optického linkového segmentu je maximálne 2000m. 154
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY Fast Ethernet 100BaseT technológia 100BaseT IEE802.3u nadväzuje na vlastnosti a koncepciu osvedčenej Ethernet siete 10BaseT. Podporovaná je podobná topológia siete, typy kabeláže, ako aj použitá prístupová metóda a typy rámcov MAC. Zmeny sa premietli len do implementácie fyzickej vrstvy, ktorá musí zabezpečiť 10- násobné skrátenie doby prenosu prvkov signálu, z čoho samozrejme vyplývajú zodpovedajúce zmeny v signálnej schéme a v celkovom dosahu siete. Fast Ethernet podporuje rôzne technológie krútené páry UTP/STP kat.3 (100BASET4), UTP/STP kat.5 (100BASETX) a optické segmenty (100BASEFX) s multimódovým optickým vláknom. Maximálny dosah siete je pri UTP kabeláži a max. dvoch zreťazených huboch 205m. Gigabitový Ethernet je najnovšia špecifikácia siete Ethernet, pod označením IEEE 802.3z.. Vlastný názov siete vychádza z navrhovanej prenosovej rýchlosti 1Gb/s. Sieť je určená pre tvorbu chrbticových sietí (BackBone) založených na technológií Ethernet. Jednotlivé varianty sietí Ethernet ilustruje nasledujúci obrázok (Obr. 7.29). 10Base5
10BaseT/FL,100BaseTX/T4/FX
10Base2
Obr. 7.29 Pou ívané varianty sietí Ethernet 7.4.1.2 Sieť 100VGA LAN IEEE 802.12 Sieť bola vyvinutá pod vedením firmy Hewlett Packard v tom istom období, ako technológia 100BaseT. V dobe svojho vzniku boli obe technológie súhrnne označované synonymom Fast Ethernet, pretože umožňovali vysokorýchlostný prenos rámcov siete Ethernet rýchlosťou 100 Mb/s. Sieť 100VGA LAN bola, z dôvodu využívania odlišnej prístupovej metódy MAC DPP, pridelená novozriadenej komisií IEEE 802.12. Sieť 100VGA LAN je založená na prístupovej metóde DPP s prioritným prístupom k médiu. Umožňuje prenosy rámcov sietí Ethernet a TokenRing po klasickej UTP a STP kabeláži, rýchlosťami 100Mbit/s. Využitie kabeláže UTP kategórie 3 tzv. pri prenosovej rýchlosti 100Mbit/s sa odzrkadlilo aj v samotnom názve siete 100VGA, kde písmeno A (Any) naznačuje funkčnosť siete na ľubovoľných hlasových linkách z krútených párov VG (Voice Grade). Topológia siete je hviezdicová a je založená na aktívnych prvkoch, opakovačoch 100VGA LAN Hub. Principiálne je zhodná s topológiou siete Ethernet 10BaseT-100BaseTX na obrázku 6.23, odlišný je len povolený počet zreťaziteľných 100VGA hubov a celkový dosah siete. 7.4.1.3 Sieť FDDI podľa ANSI X3T12 Sieť FDDI (Fibre Distributed Data Interface) bola štandardizovaná organizáciou ANSI (American National Standardisation Institute), ako norma X3T9 a neskôr akceptované aj ako norma ISO 9314 v roku 1990. Siete FDDI sú charakteristické zdvojenou kruhovou topológiou, v ktorej sú jednotlivé uzly prepojené oboma kruhmi protismerne. Prepojenie staníc do kruhu je realizované obyčajne prostredníctvom optických vlákien, z čoho plynie aj vlastný názov siete. Používa sa deterministická prístupová metóda odovzdávania prístupového práva Token Passing a umožňuje ako synchrónny, tak i asynchrónny režim prenosu. Prenosová rýchlosť 100 Mb/s patrí do kategórie vysokorýchlostných sietí. Sieť FDDI pokrýva územie nepresahujúce 100 km, čo ju predurčuje na aplikácie v oblasti LAN a MAN.
155
INFORMAČNÉ SYSTÉMY
7. KAPITOLA
7.4.1.4 Technológia ATM Technológia ATM (Asynchronous Transfer Mode) predstavuje univerzálny štandard pre prenos informácií v rôznorodej forme (dáta, hlas, obraz), na lokálnej i globálnej úrovni (LAN, MAN, WAN). Vlastnosti ATM potom môžeme podrobnejšie zhrnúť v nasledovných bodoch. ATM je spojovo orientovaná komunikácia pomocou virtuálnych okruhov, založená na prepínaní buniek o konštantnej veľkosti 53B. Uplatňuje sa výber služby s požadovanou kvalitou QoS (Traffic Contract) a voliteľná je šírka pásma (prenosové rýchlosti sú rádovo od kb/s, až po Gb/s). Siete ATM sú založené na použití aktívnych prvkov tzv. ATM prepínačov (ATM Switch), ktoré sú vzájomne poprepájané dvojbodovými okruhmi (point-to-point), a na ktoré sú pripojené samotné koncové zariadenia siete. Emulácia sietí LAN bola špecifikovaná organizáciou ATM Fórum v podobe odporučenia LANE (LAN Emulation) ver.1.0 v roku 1995. LANE podporuje emuláciu sietí Ethernet a Token Ring. Emulácia zabezpečí pre vyššie vrstvy (IP, IPX) tie isté služby, ako zabezpečuje MAC vrstva u sietí Ethernet, Token Ring, nie sú však v ATM implementované ich prístupové metódy.
7.4.2 Počítačové siete WAN Počítačové siete WAN (Wide Area Network), predstavujú základný komunikačný subsystém globálnych a rozľahlých informačných systémov. Siete WAN prešli podstatne dlhším vývojom ako siete LAN, pričom majú geograficky neobmedzený dosah a prenosový výkon v rozmedzí (kbit/s ÷ Mbit/s). Koncovými uzlami sietí WAN sú centrálne počítače (host, Mainframe), prístupové terminály a samozrejme aj jednotlivé siete LAN. V súčasnosti sa na trhu ponúka niekoľko variantných technológií : • LAN to LAN – pri požiadavkách priameho prepojenia sietí LAN na väčšiu geografickú vzdialenosť, sa využívajú špeciálne prepojovacie prvky. Prepojovacie prvky členíme podľa spôsobu prepojenia a vrstvy referenčného modelu OSI, v ktorej dochádza k prepojeniu sietí LAN na mosty (Bridge) prepájajúce siete LAN na úrovni linkovej vrstvy, smerovače (Router) prepájajú siete LAN prostredníctvom sieťovej vrstvy a brány (Gateway) prepájajú siete LAN na transportnej až aplikačnej vrstve. Bežná konfigurácia vychádza obyčajne z prepojenia prepojovacích prvkov dvojbodovým prepojením protokolmi HDLC, PPP, alebo prostredníctvom virtuálnych kanálov privátnej, či verejnej dátovej siete WAN (X.25, Frame Relay). • X.25 – špecifikovala organizácia ITU-T, ako odporučenie popisujúce rozhranie medzi koncovým zariadením účastníka DTE a prístupovým uzlom paketovej dátovej siete. Jedná sa teda o prístupový spojovo orientovaný komunikačný protokol medzi účastníkom a paketovou dátovou sieťou. Protokol vytvára medzi koncovými uzlami siete logické virtuálne okruhy, nad fyzickými linkami a prepínačmi siete, ktorými sa potom prenášajú užívateľské dáta vo forme paketov. Podľa spôsobu vytvárania spojení rozlišujeme dva druhy virtuálnych okruhov, pevné virtuálne okruhy nadefinované staticky PVC (Permanent Virtual Circuit) a komutované virtuálne okruhy SVC (Switched Virtual Circuit), vytvárané dynamicky prostredníctvom signalizačných správ protokolu. • FrameRelay – technológia rámcovej komunikácie Frame Relay je často označovaná, za nástupcu X.25 pre 90-te roky. Vychádza z rovnakého technického vybavenia a z princípu vytvárania virtuálnych okruhov medzi koncovými uzlami. Technológia eliminuje vysoké oneskorenie vznikajúce komunikačnými mechanizmami X.25 v sieťovej vrstve (kontrola chýb, opakovania prenosu, odoberaním paketov z rámcov a zostavovania nových rámcov). Použitie optických prenosových vlákien s veľmi nízkou chybovosťou a inteligentných koncových zariadení, umožnilo zjednodušenie funkcií protokolu až na úroveň služieb linkovej vrstvy. Frame Relay poskytuje službu pevných virtuálnych okruhov PVC, zabezpečujúc primárne prepojenie sietí LAN, na úrovni linkovej vrstvy OSI. Dáta sa prenášajú ako usporiadanú postupnosť rámcov, s prenosovou rýchlosťou v rozsahu 64-2048 kbit/s. Oneskorenie prenosu je rádovo 10 násobne nižšie ako u X.25, pretože sa protokol obmedzuje len na služby prenosu rámcov, detekcia chýb a rušenie rámcov. • ATM – je práve oblasť sietí WAN dominujúcou prenosovou technológiou, pretože žiadna z konkurujúcich technológií neposkytuje obdobný prenosový výkon, oneskorenie prenosu, kva156
DISTRIBUOVANÉ INFORMAČNÉ SYSTÉMY litu dohovorenej služby QoS a flexibilitu voči komunikujúcim aplikáciám. Z dôvodov lepšej koexistencie s inými typmi WAN sietí sa v tejto oblasti stretávame popri s čistých ATM sieťach (Native ATM) so sieťami mi ATM s prístupovým protokolom Frame Relay, a riešeniach založených na prepojených smerovačoch cez ATM (Classical IP Over ATM). a)
Router-IP/Frame Relay G.703/E1-2Mb/s
b) LAN
LAN
LAN
Router-IP/IPX HDLC/PPP G.703/E1 2Mb/s
Router-IP/IPX
ATM/P-NNI OC-12/SDH
ATM prepínač
622Mb/s ATM koncentrátor
LAN
LAN
LAN Router-IP/Frame Relay G.703/E1-2Mb/s
ATM/UNI OC-3,E1,..
Obr. 7.30 Príklady realizácie sietí WAN (LAN to LAN, PDS) Na obrázku (Obr. 7.30) sú uvedené dva možné spôsoby implementácie sietí WAN. Príklad a), predstavuje sieť typu LAN to LAN, ktorá je tvorená mrežovou sieťou dvojbodovo prepojených smerovačov. Na prepojenie smerovačov sa používajú digitálne linky E1 a protokol HDLC. Variant b) predstavuje vysokovýkonnú komplexnú sieť WAN na báze prepínačov ATM, ku ktorým sú pripojené prostredníctvom digitálnych liniek E1 smerovače sietí LAN a prostredníctvom koncentrátorov priamo ATM zariadenia. Sieť tak umožňuje prenos nielen dát, ale aj obrazové a hlasové služby.
157