• Přednáška N2. Technologie klient - server. Pomocí technologie klient-server

    DB pracující na technologii FILE-SERVER;

    DB pracující na technologii KLIENT-SERVER.

    Souborový server


    - Přístup do databáze (žádost)
    - Přenos dat s blokováním přístupu jiným uživatelům
    - Zpracování dat na počítači uživatele

    Pro přehlednost zvažte konkrétní příklady. Předpokládejme, že potřebujete zobrazit odeslané platební příkazy za období od 19. května do 25. května ve výši 5 000 rublů. Uživatel bude muset na svém počítači spustit klientskou aplikaci, která pracuje v databázi s platebními příkazy a zadat požadovaná výběrová kritéria. Poté se do vašeho počítače z databázového serveru stáhne soubor obsahující všechny dokumenty tohoto typu za celé období za libovolnou částku a načte se do RAM. Klientská aplikace běžící na počítači uživatele pracující s databází tyto informace sama zpracuje (roztřídí), načež vydá odpověď (na obrazovce se objeví seznam platebních příkazů, které splňují vaše kritéria). Poté si vyberete požadovaný platební příkaz a pokusíte se v něm upravit (změnit) jedno pole - například datum. Během úprav je uzamčen zdroj dat, tedy celý soubor obsahující tento dokument. To znamená, že soubor buď nebude ostatním uživatelům dostupný vůbec, nebo bude dostupný pouze v režimu prohlížení. Navíc k tomuto druhu zachycení nedochází ani na úrovni záznamu, tedy jednoho dokumentu, ale uzamkne se celý soubor – tedy celá tabulka obsahující podobné dokumenty. Teprve po úplném zpracování tohoto pole a opuštění režimu úprav daný soubor platební příkazy budou odemčeny ze zachycení uživatelem. Pokud jsou data uložena v objemnějších objektech, např. jeden soubor obsahuje platební příkazy jak pro příjem peněz, tak pro odeslání, pak nebude k dispozici ještě více informací. Budete pracovat s jedním polem "datum" v jednom dokumentu - ostatní zaměstnanci podniku počkají, až skončíte.

    Nevýhody systému FILE-SERVER jsou zřejmé:

      Velmi obrovský tlak na síti, zvýšené požadavky na šířku pásma. V praxi to pro velký počet uživatelů téměř znemožňuje pracovat současně s velkým množstvím dat.

      Zpracování dat se provádí na počítači uživatele. To s sebou nese zvýšené požadavky na hardware každého uživatele. Čím více uživatelů, tím více peněz bude muset být vynaloženo na vybavení jejich počítačů.

      Blokování dat při editaci jedním uživatelem znemožňuje ostatním uživatelům s těmito daty pracovat.

      Bezpečnost. Abyste mohli s takovým systémem pracovat, budete muset dát každému uživateli plný přístup na celý soubor, ve kterém může mít zájem pouze o jeden obor.

      klient-server

      Vyřízení požadavku jednoho uživatele:
      - Přístup k databázi (SQL dotaz)
      - Odeslání odpovědi - výsledek zpracování


      Pokud je nutné zpracovat informace uložené v databázi, klientská aplikace běžící na počítači uživatele, který s databází pracuje, vygeneruje požadavek na jazyk SQL(název z počátečních písmen - Structured Query Language). Databázový server přijme požadavek a zpracuje jej sám. Po síti se nepřenáší žádné datové pole (soubor). Po zpracování požadavku je do počítače uživatele předán pouze výsledek – tedy v předchozím příkladu seznam platebních příkazů, které splňují požadovaná kritéria. Samotný soubor, ve kterém byla uložena data, která sloužila jako zdroj pro zpracování, zůstává odemčen pro přístup samotného serveru na žádost ostatních uživatelů.

      V seriózních klient-server DBMS existují další mechanismy, které snižují zatížení sítě a snižují požadavky na uživatelské počítače. Jako příklad si vezměme uložené procedury – tedy celé programy pro zpracování dat uložených v databázi. V tomto případě ani SQL výrazy nejsou přenášeny od uživatele na server - je přenášeno volání funkce s parametry volání. Uživatelské pracoviště se tak ještě více zjednoduší, logika programu se přenese na server. Uživatelské místo se stává pouze prostředkem k zobrazování informací. To vše znamená další snížení zátěže sítě a uživatelských pracovních stanic.

      Všechny výše uvedené nevýhody schématu FILE-SERVER jsou tedy v architektuře KLIENT-SERVER eliminovány:

        Datová pole nejsou přenášena po síti z databázového serveru do počítače uživatele. Požadavky na šířku pásma sítě jsou sníženy. Díky tomu může velký počet uživatelů pracovat současně s velkým množstvím dat.

        Zpracování dat se provádí na databázovém serveru, nikoli na počítači uživatele. To umožňuje používat na klientských stránkách jednodušší, a tedy levnější počítače.

        K blokování (odběru) dat jedním uživatelem nedochází.

        Uživatelský přístup je poskytován nikoli k celému souboru, ale pouze k těm datům z něj, se kterými má uživatel právo pracovat.

        Po zvážení rozdílu mezi SOUBOROVÝM SERVEREM a KLIENTSKÝM SERVEREM můžeme dokončit úvahu o konceptu „ukládání informací“. Je důležité zdůraznit, že práce závisí do značné míry na typu použitého DBMS. podnikový systém. Je jasné, že pro velké podniky, s velké množství uživatelé s velkým množstvím záznamů v databázi, schéma souborového serveru zcela nepřijatelné. Na druhou stranu existují rozdíly v databázích v dalších parametrech a možnostech:

          typy dat, která lze ukládat do databáze (čísla, data, text, obrázky, video, zvuk atd.);

          o technologiích přístupu k údajům v databázi organizované samotnou databází a úrovni ochrany informací před neoprávněným přístupem;

          na poskytovaných nástrojích a metodách vývoje, které lze použít k návrhu libovolného informačního systému založeného na této databázi;

          o poskytovaných prostředcích a metodách analýzy informací (dat), které lze aplikovat v informačním systému založeném na této databázi;

          spolehlivostí a stabilitou, tedy (zhruba) počtem záznamů (vyplněných polí) v databázi, který poskytuje spolehlivou a nepřetržitou možnost přístupu, změny, analýzy informací v databázi;

          podle rychlosti – čas strávený přístupem k informacím a jejich zpracováním;

          možná organizace práce na počítačích různých výrobců, to znamená pro kompatibilitu s jinými platformami a operačními systémy;

          podle úrovně podpory (služby) poskytované vývojářem databáze nebo jejím autorizovaným prodejcem;

          podle dostupnosti dobré peníze vytváření aplikací, které tuto databázi využívají atd.

          Proč se dnes nevyplácí investovat do řešení souborového serveru? Dnes je již zřejmý další způsob rozvoje databází. Objevují se víceúrovňové systémy klient-server s velmi tenkými klienty, které odstraňují veškerá omezení z klientských stanic, jak z hlediska výkonu, tak z hlediska platformy, operačního systému. Pokud pro řešení klient-server další vývoj se zdá být zcela jasné a přechod z klient-server na víceúrovňový klient-server není problematický, pak pro souborový server představuje jednoduchý přechod na klient-server obrovský problém a enormní náklady na pracovní sílu, pokud se náhle ukáže, že vůbec možné.

    Architektura klient-server je široce používána síťových technologií slouží k přístupu k různým síťovým službám. Pojďme se rychle podívat na některé typy takových služeb (a serverů).

    webové servery

    Zpočátku poskytovali přístup k hypertextovým dokumentům přes HTTP (Huper Text Transfer Protocol). Nyní podporují pokročilé funkce, zejména s nimi pracovat binární soubory(obrázky, multimédia atd.).

    Aplikační servery

    Určeno pro centralizované řešení aplikovaných problémů v některých předmětová oblast. K tomu mají uživatelé právo spouštět serverové programy k provedení. Použití aplikačních serverů snižuje požadavky na konfiguraci klienta a zjednodušuje obecné vedení síť.

    Databázové servery

    Databázové servery se používají ke zpracování uživatelských dotazů v jazyce SQL. V tomto případě je DBMS umístěn na serveru, ke kterému se klientské aplikace připojují.

    Souborové servery

    Souborový server obchody informace ve formě souborů a poskytuje uživatelům přístup k nim. Souborový server také zpravidla poskytuje určitou úroveň ochrany před neoprávněným přístupem.

    Proxy server

    Za prvé funguje jako prostředník, který pomáhá uživatelům získat informace z internetu a zároveň zabezpečit síť.

    Za druhé, ukládá často požadované informace do mezipaměti pro lokální disk, rychle jej doručí uživatelům bez opětovného přístupu k internetu.

    Firewally(firewally)

    Firewally analyzuje a filtruje průchod síťový provoz za účelem zabezpečení sítě.

    Poštovní servery

    Poskytují služby pro odesílání a přijímání zpráv elektronické pošty.

    servery vzdálený přístup(RAS)

    Tyto systémy zajišťují komunikaci se sítí prostřednictvím vytáčených linek. Vzdálený zaměstnanec může využívat firemní LAN zdroje připojením k ní pomocí běžného modemu.

    Toto je jen několik typů z celé řady klient-server technologií používaných v lokálních i globálních sítích.

    Pro přístup k určitým síťovým službám se používají klienti, jejichž schopnosti se vyznačují pojmem „tloušťka“. Definuje hardwarovou konfiguraci a software, které zákazník má. Zvažte možné hraniční hodnoty:

    "Tenký" klient

    Tento pojem definuje klienta, jehož výpočetní prostředky postačují pouze pro spuštění požadované síťové aplikace prostřednictvím webového rozhraní. Uživatelské rozhraní takové aplikace je tvořeno pomocí statický HTML (spouštění JavaScriptu není k dispozici), veškerá aplikační logika se provádí na serveru.
    Aby tenký klient fungoval, stačí poskytnout možnost spustit webový prohlížeč, v jehož okně se provádějí všechny akce. Z tohoto důvodu je webový prohlížeč často označován jako „univerzální klient“.

    "Tlustý" klient

    Tohle je pracovní stanice nebo osobní počítač s vlastním diskovým operačním systémem a s potřebnou sadou softwaru. NA síťové servery„tlustí“ klienti se hlásí především o Doplňkové služby(například přístup k webovému serveru nebo podnikové databázi).
    „Tlustý“ klient také znamená klientskou síťovou aplikaci běžící pod lokálním OS. Taková aplikace kombinuje komponentu prezentace dat (grafické uživatelské rozhraní OS) a aplikační komponentu (výpočetní výkon klientského počítače).

    V poslední době se stále častěji používá jiný termín: „bohatý“-klient. "Rich"-client je jakýmsi kompromisem mezi "tlustým" a "tenkým" klientem. Stejně jako „tenký“ klient poskytuje i „bohatý“ klient GUI, popsané již v XML a obsahující některé funkce bohatých klientů (například rozhraní přetahování, karty, více oken, rozevírací nabídky atd.)

    Aplikační logika „bohatého“ klienta je také implementována na serveru. Data jsou odesílána ve standardním výměnném formátu založeném na stejném XML ( SOAP protokoly, XML-RPC) a jsou interpretovány klientem.

    Některé z hlavních protokolů bohatého klienta založeného na XML jsou uvedeny níže:

    • XAML (eXtensible Application Markup Language) – vyvinutý společností Microsoft, používaný v aplikacích na platformě .NET;
    • XUL (XML User Interface Language) je standard vyvinutý uvnitř Projekt Mozilla, se používá například v poště Klient Mozilla Thunderbird nebo Prohlížeč Mozilla Firefox;
    • Flex- multimediální technologie založené na XML vyvinutém společností Macromedia/Adobe.

    Závěr

    Tak, hlavní myšlenkou architektury klient-server je rozdělení síťové aplikace do několika komponent, z nichž každá implementuje určitou sadu služeb. Komponenty takové aplikace mohou běžet na různých počítačích a vykonávat funkce serveru a/nebo klienta. To zlepšuje spolehlivost, bezpečnost a výkon. síťové aplikace a síť obecně.

    Klientské technologie

    Reprezentace a zobrazení dat by mělo být prováděno v souladu s určitým souborem pravidel, který se používá jako html (Hypertext Markup Language). Html v podstatě není programovací jazyk, protože nevykonává žádné funkce pro zpracování materiálu, pouze pro jeho návrh a prezentaci. Tagy tohoto metajazyka pomáhají přijímat informace v okně prohlížeče přesně v takové podobě, jakou si webmaster přeje. Všimněte si, že hypertext byl vyvinut v roce 1989 a původně byl vytvořen za účelem výměny různé dokumentace, umožňující prohlížečům odlišit například nadpisy a podnadpisy od obrázků a textu.

    Internetové technologie se vyvíjely, html se radikálně změnilo, s přihlédnutím k novým příležitostem, objevil se „vylepšený“ xhtml (Extensible Hypertext Markup Language) – rozšířený hypertextový značkovací jazyk pro webové stránky, svými schopnostmi srovnatelný s html a vytvořený na bázi xml .

    Rozvržení stránky se postupem času stalo složitějším a obtížně se udržuje. V tomto ohledu bylo nutné oddělit strukturu dokumentu od jeho vizuální reprezentace; Objevily se kaskádové styly (CSS). Šablony stylů byly poprvé přijaty jako doporučení W3C v roce 1996 a od té doby se široce používají pro uspořádání webových stránek. CSS rozvržení webových stránek umožňuje například stylovat mnoho prvků stejným způsobem, přičemž v šabloně stylů je fixován pouze jeden řádek.

    Optimálních výsledků rozvržení webových stránek lze samozřejmě dosáhnout pouze obratným kombinováním html kódu a kaskádových stylů.

    Běžný uživatel internetu, který navštíví konkrétní web, samozřejmě věnuje pozornost rozbalovacím nabídkám, padajícímu sněhu, běžící lince. Podobné efekty lze vytvořit pomocí technologie JavaScript.

    JavaScript je lehký, interpretovaný programovací jazyk s objektově orientovanými schopnostmi. Univerzální jazykové jádro je zabudováno do různých webových prohlížečů. JavaScript na straně klienta umožňuje webovým stránkám zahrnout spustitelný obsah, tj. webová stránka nemusí to být statický html kód, ale může zahrnovat programy, které komunikují s uživatelem, ovládají prohlížeč a dynamicky generují html.

    JavaScript se vyvíjel po mnoho let, během nichž bylo vydáno několik verzí jazyka. Například Microsoft zveřejnil verze pod názvem Jscript. Sdružení Ecma, jehož činnost se věnuje standardizaci informačních a komunikačních technologií, zase vydalo tři verze standardizující JavaScript pod názvem EcmaScript. Ten definoval standardní verzi základní jazyk JavaScript a Svět široká síť Konsorcia zveřejnila doporučení DOM odrážející schopnost prohlížečů podporovat objektový model.

    Webové prohlížeče umožňují prohlížení internetových stránek.

    Jak ukazuje praxe, různé prohlížeče zobrazují konkrétní stránku různými způsoby. Zobrazení stránek závisí na opravných algoritmech zabudovaných v prohlížeči a v různé prohlížeče tyto algoritmy jsou různé. Internet Explorer a Netscape Navigator, běžící pod Windows, zobrazují stránky v podstatě stejným způsobem, pouze s rozdíly v takových detailech, jako jsou okraje a odsazení. Jiné prohlížeče však mohou některé stránky vážně deformovat. Vývojáři vylepšují své produkty s každou novou verzí, tak co novější verze prohlížeče, tím méně zkresluje.

    Serverové technologie

    V oblasti programování pro sítě Internet PHP je jedním z populárních skriptovacích jazyků (společně s JSP, Perlem a jazyky používanými v ASP.NET) díky své jednoduchosti, rychlosti provádění, bohaté funkčnosti, multiplatformnímu a distribuci zdrojových kódů založených na PHP licence.

    Perl je univerzální, na vysoké úrovni interpretovaný dynamický programovací jazyk vytvořený Larrym Wallem, vyškoleným lingvistou. Hlavním rysem jazyka jsou jeho bohaté možnosti práce s textem, včetně práce s regulární výrazy, zabudovaný do syntaxe. Perl zdědil mnoho vlastností ze skriptovacích jazyků shellu C, AWK a UNIX.

    JSP je jednou z vysoce výkonných technologií, protože veškerý kód stránky je přeložen do kódu Java servletu pomocí kompilátoru Jasper page JSP a poté zkompilován do bajtkódu virtuální stroj java (JVM). Kontejnery servletů schopné spouštět stránky JSP jsou napsány v jazyce Java, který může běžet na různých platformách. Stránky JSP se načítají na server a spravují se ze speciální struktury paketů Java serveru nazývané Java EE Web Application, většinou zabalené v archivech souborů .war a .ear. Výhodou JSP oproti jiným webovým technologiím je, že JSP je platformově nezávislá, přenosná a snadno rozšiřitelná technologie pro vývoj webových aplikací.

    ASP.NET je technologie pro tvorbu webových aplikací a webových služeb od společnosti Microsoft. Je nedílnou součástí platformy Microsoft .NET a představuje evoluci starší technologie Microsoft ASP. ASP.NET si zachovává mnoho podobností se starší technologií ASP vzhledem, což vývojářům usnadňuje migraci na ASP.NET. Zároveň se ASP.NET vnitřně velmi liší od ASP, protože je založeno na platformě .NET, a proto využívá všech nových funkcí, které tato platforma poskytuje.

    ASP.NET není platforma.

    IIS je proprietární sada serverů pro několik internetových služeb od společnosti Microsoft. Služba IIS je distribuována s operačními systémy řady Windows NT.

    Základní součástí IIS je webový server, který vám umožňuje hostovat webové stránky na internetu. IIS podporuje protokoly HTTP, HTTPS, FTP, POP3, SMTP, NNTP.

    Webový server je sada hardwaru a softwaru, která přijímá požadavky HTTP od klientů (obvykle webových prohlížečů) a odesílá odpovědi HTTP. V jednoduchém případě odpověď webové servery- toto je obsah souborů na něm umístěných: dokumenty, obrázky, filmy atd. Taková data se nazývají statická: pokud uživatel požaduje informace na stejné adrese několikrát, webový server vrátí přesně stejný obsah. Pro dynamický přístup, to znamená, kdy se výstupní informace budou v průběhu času měnit a/nebo záviset na parametrech požadavku, jeden webový server nestačí. V tomto případě webový server slouží jako přechodné spojení mezi klientem a nějakým softwarovým prostředím, které generuje obsah HTML stránky. A zde vyvstává otázka: proč tedy potřebujete webový server, když dynamickou stránku stále generuje aplikace.

    Při malé zátěži aplikace – několik současně připojených uživatelů (jednotek) – není web server nezbytně nutným spojem. Téměř všechny v současnosti existující balíčky pro vývoj webových aplikací zahrnují lehká váha webový server. Ke spuštění stačí vývojové prostředí spustit a můžete se k němu připojit pomocí prohlížeče a pracovat s ním přes protokol HTTP.

    Problémy začínají, když počet současně pracujících klientů překročí nějakou kritickou hodnotu. A jednou z funkcí webového serveru je co nejvíce snížit zatížení jeho distribucí do různých částí systému. Optimalizace může ovlivnit nejen provoz samotného webového serveru, ale také začít přímo na úrovni jádra operačního systému. Moderní operační systémy lze nakonfigurovat tak, že po připojení ke klientovi již nebudou obtěžovat webový server, dokud klientský soket neobdrží data (můžete číst vstupní datový tok ze soketu), nebo dokud nepřijde úplný HTTP požadavek.

    Tento přístup umožňuje webovému serveru trávit méně času čekáním na příchod dat, což zvyšuje efektivitu systému jako celku.

    Vše moderní ( plnoštíhlá) webové servery využívají asynchronní zpracování příchozích požadavků od klientů. To znamená, že po obdržení požadavku od klienta server předá tento požadavek pracovnímu vláknu. Server sám nadále přijímá požadavky od klientů a přesměrovává je na handlery. Existuje několik strategií pro práci s handlery.

    • - Počet pracovníků může být pevně zakódován. Když se server spustí, například se spustí 10 vláken. Po obdržení 11. požadavku server odešle klientovi odpověď dočasně nedostupné.
    • - Worker může být dynamicky generován serverem v závislosti na zatížení. Zároveň je stanoven počáteční počet pracovníků, maximální přípustný počet, minimální a maximální počet volných pracovníků.
    • - Pracovník může být proces nebo vlákno. Různé procesy spolu neinteragují a nemohou sdílet data. Na rozdíl od procesů mají vlákna společný sdílený datový prostor a mohou si mezi sebou vyměňovat informace.
    • - Pracovní procesy mohou běžet uvnitř procesu nadřazeného serveru i mimo něj. S druhou možností mohou být pracovníci distribuováni na různé počítače.
    • - Dělník - venku rodičovský servery mohou být přímo procesy prostředí webové aplikace.
    • - Server může sledovat různé varianty rozložení zatížení mezi generovaného pracovníka: rovnoměrné nebo sekvenční zatížení.

    Kombinací těchto faktorů se můžete pokusit dosáhnout nejlepšího celkového výkonu systému.

    Pro logické oddělení, optimální rozložení zátěže napříč výpočetní výkon Pracovníci mohou také běžet na jiném počítači, ne nutně na stejném počítači, kde se nachází server, který přijímá požadavky od klientů. V tomto případě komunikace mezi serverem a pracovníkem probíhá přes specifický síťový protokol. Už to nemůže být HTTP, protože spolu s přijatým požadavkem pracovníka jsou přenášeny rozšířené informace o prostředí serveru. Jako takový komunikační protokol lze použít zejména FastCGI.

    V moderní internet existuje nejméně několik desítek řešení webových serverů, bezplatných i komerčních. Obvykle, komerční produkty mají grafické rozhraní pro správu a konfiguraci serveru, je mnohem jednodušší s nimi pracovat. Oproti tomu volně distribuované softwarových produktů obvykle konfigurován pomocí textových souborů.

    Tento článek je určen jak začínajícím vývojářům, tak i pokročilé uživatele Internet. Jeho účelem je upozornit na některé moderní internetové technologie, včetně těch, které se objevily v posledních dvou až třech letech.

    Kdysi, na úsvitu rozvoje internetu, si jej tvůrci World Wide Web představovali jako společný prostor pro výměnu informací. Internet původně existoval jako síť orientovaná na dokumenty a první webové stránky byly primitivní souborové servery, které vracely statické HTML stránky klientům, kteří si je vyžádali. Takové stránky ještě dnes nejsou neobvyklé, že se tímto způsobem vytvářejí malé osobní webové stránky, stejně jako stránky malých firem, které si netvrdí nic jiného než fakt, že jsou na internetu, kde je relativně malé množství informací, které se nemění. příliš často se obvykle nachází .

    Internet se v procesu vývoje postupně proměnil ze souboru informačních zdrojů v nástroj, který pomáhá zvyšovat efektivitu. činnosti společnosti a poté do jednoho z hlavních způsobů podnikání. Obdobně se vyvíjely technologie pro tvorbu firemních webových stránek, které postupně zahrnují nástroje pro implementaci interaktivity, personalizaci informačního obsahu, interakci se zákazníky, ale i nástroje pro integraci s podnikovými informačními systémy a nástroje pro řízení podniku. Objevily se i specializované nástroje pro tvorbu infrastruktury firemních webových aplikací, jejichž implementace zpravidla nevyžaduje programování (o nich se dočtete v článku „Infrastruktura pro podniková internetová řešení“ v tomto speciálu). Naprostá většina nástrojů infrastruktury podnikových webových aplikací i individuálních zákaznických řešení je však založena na relativně malém počtu technologií pro vývoj webových aplikací, o kterých si povíme v tomto článku.

    Klientské technologie

    Technologie pro tvorbu webových aplikací lze podmíněně rozdělit na stranu klienta (to znamená, kterou používají webové prohlížeče a další weboví klienti, jako jsou kancelářské aplikace nebo klienti pro rychlé zasílání zpráv) a na straně serveru (tj. používané na webových serverech).

    Klientské technologie se používají především ke zvýšení interaktivity aplikací, například ke kontrole správnosti vstupních dat bez dalšího volání na server a k vytvoření pohodlné uživatelské rozhraní. Například moderní webové prohlížeče a někteří e-mailoví klienti jsou schopni interpretovat kód ve skriptovacích jazycích, spouštět Java applety a ovládací prvky ActiveX a používat další doplňky, jako je Macromedia. Flash Player, prohlížeče prezentací QuickTime, nástroje pro přehrávání médií.

    Kód interpretovaný prohlížečem

    Většina moderní webové prohlížeče, vytvořený pro různé platformy a zařízení, je schopen interpretovat kód vložený do stránky HTML ve skriptovacích jazycích, jako je VBScript a JavaScript. Typické použití pro vložený klientský kód je ověřování uživatelského vstupu bez přechodu na webový server, vytváření některých prvků návrhu, jako jsou vyskakovací tlačítka a nabídky, a správa dalších objektů vložených do stránky HTML.

    Kód interpretovaný prohlížečem běží ve vlastním adresním prostoru. Takový kód má poměrně omezenou sadu nástrojů (zejména nemá přístup souborový systém klientský počítač nebo na něm spouštět jiné aplikace). Většina prohlížečů však umožňuje zakázat spouštění kódu ve skriptovacích jazycích, protože jakékoli spouštění kódu na klientském počítači může být nebezpečné (například kvůli jakýmkoli chybám při implementaci interpretu tohoto kódu v prohlížeči).

    Java applety

    Prakticky všechny moderní prohlížeče jsou schopny zobrazovat a spouštět Java applety, speciální Java aplikace, na které je odkazováno na webové stránce. Applety mohou běžet na všech platformách, pro které existují JVM. Způsoby, kterými aplety interagují s klientským počítačem, jsou také omezené, například jejich souborový systém a aplikace jsou pro ně nepřístupné a přístup k síti z appletu je možné pouze do počítače, ze kterého byl načten. Applet však lze ovládat nastavením jeho parametrů (např. barvy, písma atd.) v textu HTML stránky, která jej obsahuje, nebo v kódu skriptovacího jazyka téže stránky.

    Většina prohlížečů má uživatelsky přístupné prostředky k omezení schopnosti spouštět aplety, protože stejně jako interpreti skriptovacích jazyků implementují provádění kódu na klientském počítači a nikdo nemůže zaručit, že při implementaci stroje Java nedojde k žádným chybám. spustí aplet.

    Ovládací prvky ActiveX

    Některé moderní prohlížeče (zejména Microsoft Internet Explorer) mohou sloužit jako kontejnery pro ovládací prvky ActiveX speciální servery COM, které běží v adresním prostoru prohlížeče. Odkazy na takové ovládací prvky mohou být obsaženy na webové stránce. Samotné ovládací prvky ActiveX jsou dynamicky načítané knihovny, které běží v adresovém prostoru prohlížeče.

    S ovládacími prvky ActiveX, stejně jako s aplety Java, můžete implementovat jakoukoli funkci; zároveň na rozdíl od Java appletů nepodléhá provádění ovládacích prvků ActiveX v obecném případě žádným omezením přístupu k souborům a dalším zdrojům operačního systému a sítě a kód v nich obsažený je spouštěn jménem uživatele, který je načetl. Podobně jako aplety Java mohou ovládací prvky ActiveX číst své vlastnosti ze stránky, která je obsahuje; vlastnosti ovládacího prvku ActiveX lze navíc dynamicky měnit z kódu ve skriptovacích jazycích obsažených na stejné stránce; ve stejném kódu můžete zpracovávat události, ke kterým dochází v takových ovládacích prvcích (tato technologie se nazývá skriptování ActiveX).

    Prohlížeče, které podporují provádění ovládacích prvků ActiveX, přirozeně obsahují prostředky k omezení jejich funkčnosti, od zabránění jejich ovládání z kódu ve skriptovacích jazycích až po úplné zabránění jejich stahování z internetu. Do ovládacího prvku ActiveX lze navíc umístit elektronický digitální podpis a pokud po přidání tohoto podpisu dojde ke změně souboru s ovládacím prvkem ActiveX, bude o tom uživatel před spuštěním takového ovládacího prvku informován. Nicméně přítomnost elektronický podpis nezaručuje v nejlepším případě absenci potenciálně nebezpečného obsahu, umožňuje vám určit jeho zdroj.

    Všimněte si, že dnes se ovládací prvky ActiveX většinou používají na intranetech, nikoli na veřejných webech.

    Flashové aplikace Macromedia

    Další velmi oblíbenou webovou technologií založenou na spouštění kódu klientské aplikace je aplikace Macromedia Flash. Macromedia Flash Player, stejně jako Java Virtual Machine, má omezené možnosti, pokud jde o přístup ke zdrojům klientského počítače. Tak, Flash aplikace nemají přístup k systému souborů, s výjimkou adresáře služby Macromedia Flash Player, a přístup k externím zařízením je omezen na mikrofony a videokamery. Přístup k síťové zdroje omezena na doménu, ze které byla přijata tato aplikace. Všimněte si, že stejně jako aplety Java a ovládací prvky ActiveX lze aplikace Flash ovládat pomocí kódu JavaScript na stejné stránce. Protože Macromedia Flash Player pro Microsoft Internet Explorer je sám o sobě ovládacím prvkem ActiveX, používá některé funkce ovládacích prvků ActiveX pro přístup k vlastnostem aplikace Flash ze skriptovacích jazyků.

    Existuje řada dalších nástrojů, obvykle implementovaných ve formě tzv. plug-inů, což jsou spustitelné kódy. Moderní prohlížeče přitom disponují prostředky, jak omezit možnosti spojené s jejich stahováním a prováděním.

    Všechny uvedené prostředky rozšiřování funkčnosti HTML stránek lze využít i v dynamických stránkách generovaných serverovými webovými aplikacemi, takové stránky mohou obsahovat odkazy na ovládací prvky ActiveX, Flash aplikace, applety. Nejpoužívanější jsou ale nástroje pro tvorbu webových aplikací, které běží pod kontrolou webových serverů a generují dynamické HTML stránky s kódem vloženým do skriptovacích jazyků pro interpretaci prohlížeče.

    Serverové technologie

    základní bezpečnostní požadavky vyžadují, aby schopnost spouštět kód ve webových klientech mohla být výrazně omezena, alespoň prostřednictvím nástrojů pro správu klientských aplikací. V tomto případě je jakákoliv více či méně závažná aplikace založená pouze na využití klientských technologií do jisté míry odsouzena k neúspěchu z toho důvodu, že podmínky nutné pro její provoz nemusí splňovat požadavky firemních informační bezpečnost přijaté v konkrétní společnosti. To je jeden z důvodů masivního rozvoje a širokého používání technologií souvisejících s prováděním aplikačního kódu na samotných webových serverech.

    Skripty a spustitelné soubory

    Jednou z prvních technologií pro tvorbu webových aplikací běžících na serverech bylo Common Gateway Interface (CGI). Umožnil vytváření a spouštění serverových aplikací, ke kterým se přistupuje zadáním jejich názvu (a někdy i parametrů) v URL. Vstupní informací pro takové aplikace je obsah hlavičky HTTP nebo tělo požadavku v závislosti na použitém protokolu. Aplikace CGI jsou konzolové aplikace, které generují kód HTML, který je předán prohlížeči. Takovými aplikacemi mohou být skriptovací kód, který je interpretován na serveru, nebo spustitelný soubor, který lze vytvořit pomocí téměř jakéhokoli vývojového nástroje, který generuje konzolové aplikace pro operační systém, na kterém běží webový server.

    Hlavním problémem všech CGI aplikací je to, že při každém požadavku klienta server načte aplikaci pevný disk do samostatného procesu a poté zahájí jeho provedení a vyložení. Tato funkce omezuje výkon aplikací a schopnost souběžného zpracování. velký počet požadavky klientů.

    Knihovny načtené do adresního prostoru webového serveru

    Problém omezeného výkonu webových aplikací, které běží v samostatném adresním prostoru, lze vyřešit vytvořením aplikace jako knihovny, která se načte do adresního prostoru webového serveru a v případě potřeby tam zůstane pro zpracování následných požadavků od jiných klientů. (je jasné, že v tomto případě web Server musí podporovat načítání takových knihoven). Podobné aplikace pro Microsoft Internet Information Servise se nazývají ISAPI (Internet Server Application Program Interface) a takové knihovny pro velmi populární webový server Apache se nazývají Apache DSO (Dynamic Shared Objects). Tyto technologie existují již poměrně dlouho, ale stále jsou velmi populární.

    Webové aplikace založené na použití knihoven načtených do adresního prostoru webového serveru

    Všimněte si, že při vytváření aplikací CGI i ISAPI je poměrně obtížné oddělit úkoly návrhu od úkolů souvisejících s implementací funkčnosti a logiky aplikací, takové aplikace generují celé webové stránky.

    Webové stránky s fragmenty kódu serveru

    ASP a ASP.NET

    Dalším krokem ve vývoji technologií pro tvorbu internetových aplikací byl vznik nástrojů, které umožňují oddělit úkoly webdesignu od úkolů spojených s implementací funkčnosti aplikace. První takovou technologií byly Active Server Pages (ASP). Hlavní myšlenkou ASP je vytvářet webové stránky s vloženými úryvky kódu ve skriptovacích jazycích. Na rozdíl od výše uvedených nástrojů pro použití skriptovacích jazyků k rozšíření funkčnosti prohlížečů však tyto fragmenty kódu neinterpretuje prohlížeč, ale knihovna ISAPI, která je součástí Internet Information Server. Vložený fragment kódu je nahrazen výsledkem jeho provedení a výsledná dynamická stránka je předána prohlížeči uživatele.

    Jednou z nejpopulárnějších technologií současnosti, která implementuje myšlenku vytváření webových stránek pomocí úryvků kódu, je klíč ASP.NET k architektuře Microsoft .NET Framework. Hlavní rozdíl mezi touto technologií a ASP z hlediska aplikační architektury spočívá v tom, že kód přítomný na webové stránce není interpretován, ale kompilován a ukládán do mezipaměti, což zlepšuje výkon aplikace. Kromě toho vám tato technologie umožňuje vytvářet takzvané serverové komponenty, které vracejí HTML kód do prohlížeče s fragmenty kódu interpretovanými prohlížečem ve skriptovacích jazycích a mohou poskytnout pohodlnější uživatelské rozhraní než běžný HTML kód. Důležité funkce serverových komponent ASP .NET jsou schopnost zpracovávat události na serveru, ke kterým dochází v klientská aplikace a schopnost generovat kód HTML, WML a CHTML v závislosti na typu klienta a značkovacích jazycích a protokolech přenosu dat, které podporuje.

    ASP .NET 2.0, další vývoj ASP .NET, bude k dispozici vývojářům během tohoto roku. S jeho pomocí budou mít vývojáři přístup k rozšířené sadě hotových bloků, šablony stránek, aplikační rozhraní, nástroje pro zjednodušení konfigurace externích typ aplikace a také personalizační nástroje, nástroje na podporu lokalizace aplikací, nástroje pro nasazení, které vám umožňují distribuovat aplikace bez poskytování zdrojový kód, a ke komponentám pro tvorbu portálů, přístupu k zabezpečeným informacím, pro pohodlné zobrazování dat, které vám umožní vytvářet webové aplikace, které se svým pohodlím a uživatelským rozhraním blíží aplikacím Windows.

    Java Server Pages

    Spolu s ASP a ASP .NET existují další technologie, které implementují myšlenku umístění kódu na webovou stránku, kterou spouští webový server. Nejznámější z nich je dnes technologie JSP (Java Server Pages), jejíž hlavní myšlenkou je zkompilovat Java kód (servlet) při prvním přístupu, spustit metody tohoto servletu a umístit výsledky. těchto metod v datové sadě odeslané do prohlížeče.

    Webové aplikace založené na použití webových stránek s vloženými fragmenty kódu serveru

    Když už mluvíme o technologii JSP, nelze si nevšimnout relativně nové specifikace od Sunu nazvané Java Server Faces. Tato specifikace popisuje pravidla pro tvorbu webových aplikací s uživatelsky přívětivým uživatelským rozhraním (funkčností podobnou rozhraní aplikací Windows) a pro vývoj serverových komponent, které takové rozhraní implementují. Nástroje pro vývoj aplikací Java, které tuto specifikaci podporují, by vám v ideálním případě měly umožnit vytvářet webové aplikace založené na J2EE s přibližně stejnou rychlostí a pohodlím jako nástroje pro vývoj aplikací .NET.

    Z dalších populárních technologií, které implementují tvorbu webových stránek s fragmenty kódu běžícími na serveru, si všimneme PHP (Personal Home Pages). Tato technologie je založena na použití aplikací CGI, které interpretují kód vložený do stránky HTML ve skriptovacím jazyce. I přes nedostatky, které jsou vlastní všem CGI aplikacím, se PHP těší značné oblibě díky snadnému vývoji a dostupnosti pro různé platformy, zejména při vytváření aplikací, které nemají vysoké požadavky na škálovatelnost a spolehlivost.

    Aplikace univerzálního infrastrukturního softwaru

    Čím vyšší je návštěvnost webu a čím větší množství dat zpracovávaných, tím přísnější budou požadavky na výkon a škálovatelnost webových aplikací. Čím závažnější úkoly jsou řešeny pomocí webové aplikace, tím vyšší jsou požadavky na její spolehlivost a bezpečnost. Pro splnění těchto požadavků je obchodní logika implementovaná ve webové aplikaci, stejně jako služby zpracování dat a transakční implementace, nejčastěji odděleny od uživatelského rozhraní aplikace a implementovány jako jednotlivé aplikace, knihovny, servlety, které se obecně nazývají obchodní objekty. Dnes v drtivé většině moderní firemní řešení používají se buď servery, které podporují specifikaci Java2 Enterprise Edition, nebo servery založené na použití služeb serverového serveru. Verze Windows, COM a Microsoft .NET technologií.

    Obchodní objekty mohou mít různé funkce. Zpravidla poskytují přístup k datům spravovaným některým serverovým DBMS, často přístup k datům podnikových informačních systémů. Poměrně často obchodní objekty implementují některou část podnikového informačního systému, při jehož vytvoření bylo zpočátku zahrnut externí webový server jako nedílná součást podnikového informačního systému (např. jako jeden ze zdrojů dat pro aplikaci CRM ). Hotové CRM a ERP systémy přední výrobci, jako jsou SAP, PeopleSoft, Siebel, obvykle takové obchodní objekty obsahují a často k nim přistupují hotové webové aplikace, například portály pro zákazníky a vzdálené uživatele, aplikace pro implementaci elektronický obchod a další aplikace.

    Webové služby

    informační systémy mnoho podniků již více než tucet let. A protože podniky často začaly svůj vývoj spontánní automatizací určitých typů činností, dnes se mnoho z nich potýká s problémem integrace aplikací vytvořených v různých letech pro různé platformy. Jedním z prostředků takové integrace je technologie webových služeb, která využívá standard HTTP protokol. Ve formuláři můžete vytvářet webové služby spustitelné soubory, a to jak ve formě knihoven, tak ve formě interpretovaného kódu; existují také nástroje pro reprezentaci obchodních objektů na základě různých technologií v podobě webových služeb (tuto technologii dnes podporují všichni přední výrobci kancelářských produktů), vývojových nástrojů, DBMS, aplikačních serverů a operační systémy. Metody webové služby lze volat z běžné aplikace, webové aplikace, další webové služby. V poslední době se masivně objevují aplikace, které využívají webové služby, včetně těch, pro které jsou určeny koneční uživatelé(mezi takové aplikace například patří aplikace rodiny Microsoft Office System, které umožňují pomocí webových služeb využívat data slovníků, encyklopedií, online překladatelských systémů, online objednávkových služeb, viz např. článek „Internet a kancelářské aplikace", č. 10'2004).