Vyšlo v týdeníku Computerworld č. 27/92 v roce 1992
Vytištěno z adresy: http://www.earchiv.cz/a92/a227c110.php3

Aplikační vrstva

Bylo by jistě nošením dříví do lesa tvrdit, že počítače jsou zde proto, aby dělaly něco užitečného, a vyjmenovávat, co všechno to může být. Přesto neuškodí přesněji vymezit pojem aplikace (aplikačního programu, aplikačního procesu, aplikační úlohy) jako té části programového vybavení, která zajišťuje ony "užitečné funkce", kvůli kterým se počítače vůbec používají. Protipólem je pak zbývající část programového vybavení, která zajišťuje fungování počítače jako takového, a jednotlivým aplikacím vytváří takové prostředí, ve kterém mohou úspěšně pracovat.

Jde-li o samostatný počítač, jsou aplikacemi jednotlivé uživatelské programy, a "zbývající" částí programového vybavení je operační systém, který uživatelským programům zprostředkovává využití nejrůznějších zdrojů a prostředků daného počítače - disků, operační paměti, klávesnice, displeje, dalších V/V zařízení apod. V případě uzlů počítačové sítě je pak odlišnost pouze v tom, že síťový operační systém, který v sobě implementuje jednotlivé vrstvy vrstvového síťového modelu, zprostředkovává aplikacím navíc ještě všechno to, co vlastní síť nabízí - tedy především možnost komunikace s aplikacemi, běžícími na jiných uzlových počítačích, případně i přístup k technickým prostředkům jiných uzlových počítačů atd.

Nyní již si můžeme přesněji vymezit funkci aplikační vrstvy (application layer) v rámci referenčního modelu ISO/OSI. V prvním přiblížení lze říci, že je určena k tomu, aby aplikacím poskytovala přístup do prostředí sítě na bázi ISO/OSI modelu, tedy aby fungovala jako jakési okno (či brána) mezi aplikacemi na různých uzlových počítačích, které si chtějí vzájemně vyměňovat nějaké informace.

Obrázek 38.1.
Obr. 38.1.: Původní představa aplikační vrstvy ISO/OSI
Představy o podstatě a mechanismu fungování aplikační vrstvy se však v průběhu existence referenčního modelu ISO/OSI vyvíjely a značně zpřesňovaly. Původní představu, která se objevila v první verzi referenčního modelu, ukazuje obrázek 38.1. Zde se předpokládalo, že jednotlivé uživatelské aplikace budou zasahovat až do vlastní aplikační vrstvy - přesněji: ty části aplikací, které se bezprostředně týkají sítě a jejího využití, budou přímou součástí aplikační vrstvy (v terminologii ISO/OSI modelu se tyto části aplikací označovaly jako aplikační entity, resp. application entities). Zbývající části aplikací již nebyly považovány za součást "síťového prostředí ISO/OSI modelu".

Tato představa znamenala, že jednotlivé aplikace (resp. ty jejich části, které tvořily aplikační entity) si musely samy zajišťovat všechny služby, potřebné na úrovni aplikační vrstvy (a to pomocí služeb, poskytovaných resp. zprostředkovaných prezentační vrstvou). Referenční model ISO/OSI tyto služby na úrovni aplikační vrstvy nijak podrobněji nespecifikoval, pouze je vymezil jako "takové, které jsou potřeba pro vzájemnou komunikaci mezi otevřenými systémy, a nejsou zajišťovány na nižších úrovních". Nespecifikoval samozřejmě ani žádné protokoly, prostřednictvím kterých by služby aplikační vrstvy měly být realizovány.

Jednotlivé protokoly pro aplikační vrstvu vznikaly až dodatečně, v průběhu práce na implementaci síťových aplikací různého typu. Přitom se ale ukázalo, že většina těchto aplikací má mnoho společného, a tudíž se nevyplatí, aby si každá z nich vždy znovu implementovala to, co na úrovni aplikační vrstvy potřebuje. Proto se původní představa referenčního modelu změnila: zajištění služeb na úrovni aplikační vrstvy bylo svěřeno aplikačním entitám, které ale již nejsou součástí jednotlivých aplikací, ale jsou naopak součástí síťového programového vybavení.

Obrázek 38.2.
Obr. 38.2.: Současná představa aplikační vrstvy ISO/OSI
Diferenciace na úrovni aplikační vrstvy pak pokračovala ještě dále. Zjistilo se totiž, že takto koncipované aplikační entity je nejvýhodnější sestavovat z ještě menších stavebních bloků, které zajišťují jednotlivé dílčí funkce resp. služby. Tyto stavební bloky se v současné terminologii referenčního modelu ISO/OSI označují jako prvky ASE (Application Service Elements). Jsou v zásadě dvojího druhu: takové, které zajišťují služby, potřebné pro podporu aplikací různých typů (pak jde o tzv. prvky CASE, Common Application Service Element), a konečně takové, které realizují specifické služby, potřebné jen pro jeden konkrétní typ aplikací (označované jako prvky SASE, Specific Application Service Element) - viz obr. 38.2. a 38.3.

Obrázek 38.3.
Obr. 38.3.: Prvky SASE a CASE
Vezměme si jako příklad otázku vzájemné komunikace dvou aplikací. Ta může být realizována buď jako spojovaná, prostřednictvím (logického) spojení mezi dvěma aplikačními entitami, nebo jako nespojovaná, zajišťovaná jednoduchou výměnnou zpráv. Logické spojení na úrovni aplikační vrstvy, v terminologii ISO/OSI modelu označované jako asociace (association), však musí někdo navázat, udržovat jej, a posléze zase zrušit. To má na starosti jeden z možných prvků ASE, konkrétně ACSE (Association Control Service Element), který patří mezi "podpůrné" prvky ASE, tj. mezi prvky CASE.

Nespojovaná komunikace na úrovni aplikační vrstvy, realizovaná jako výměna krátkých zpráv, má vesměs charakter vzdáleného volání procedur (remote procedure call, v terminologii ISO: vzdálených operací, remote operation), při kterém přenášené zprávy žádají o provedení určité akce (provedení resp. volání procedury), resp. vrací její výsledky. Pro zajištění takovéhoto způsobu komunikace je pak určen jiný druh podpůrného prvku (prvku CASE), a to ROSE (Remote Operations Service Element).

Dalším příkladem podpůrného prvku je prvek CCR (Commitment, Concurrency and Recovery), který je určen především pro koordinaci vzájemné součinnosti více uzlů a pro implementaci transakčního zpracování v sítích. Umožňuje dosáhnout toho, aby posloupnost operací, vyžádaná jedním uzlem a prováděná na jiném uzlu, se vždy provedla buďto celá, nebo se neprovedla vůbec, bez ohledu na případné výpadky, poruchy apod.

Mezi specifické aplikační služby, které mají na starosti prvky CASE, patří například přenos souborů, elektronická pošta, vzdálené terminálové relace apod. Referenční model ISO/OSI přitom předpokládá, že tyto služby budou implementovány tak, aby se vůči vlastním aplikačním procesům "tvářily" vždy stejně, jako jediné virtuální zařízení (virtual device). Nejmarkantnější je tento přístup na způsobu, jakým se model ISO/OSI vyrovnává se značnou různorodostí používaných terminálů, lišících se svými parametry, způsobem ovládání apod. Mechanismus, umožňující terminálu jednoho uzlového počítače vystupovat v roli (lokálního) terminálu jiného počítače, počítá s existencí tzv. virtuálního terminálu. Jde vlastně o abstrakci, o hypotetický terminál, který nemusí ve skutečnosti vůbec existovat, ale který se vždy chová stejně. Uzlový počítač pak může předpokládat, že pracuje vždy jen s tímto jediným typem (virtuálního) terminálu, zatímco ve skutečnosti pracuje s terminálem jiným. Potřebné přizpůsobení mezi virtuálním terminálem a skutečně používaným terminálem pak zajišťuje až konkrétní aplikační proces, který "svůj" terminál dobře zná a dokáže ovládat.

Podobně je tomu i v případě přenosu souborů mezi odlišnými a vzájemně neslučitelnými souborovými systémy (které se mohou lišit například ve vnitřní organizaci souborů a adresářů, v konvencích pro jejich jména apod.). Zda se opět zavádí společný "mezitvar" v podobě virtuálního systému souborů, se kterým aplikační entity dokáží pracovat.

Pokud síťová aplikace potřebuje jiné služby, než jaké jsou jí nabízeny v souvislosti s představou virtuálního zařízení, musí si je sama podle svých konkrétních potřeb upravit. V rámci většiny aplikací lze proto ještě vymezit vrstvu, která zajišťuje potřebné přizpůsobení resp. zamapování virtuálního zařízení z/do skutečného - tedy např. "mapování" virtuálního terminálu do konkrétního reálného terminálu, "mapování" reálného systému souborů do virtuálního apod. V terminologii ISO/OSI modelu se tato vrstva označuje jako (uživatelský) prvek UE (User Element) - viz obrázek 38.2.

Pro specifické služby na úrovni aplikační vrstvy (poskytované prvky SASE, viz výše), byly a jsou postupně vytvářeny potřebné protokoly. Většina z nich dnes již má formu mezinárodních standardů resp. norem (IS, International Standards), jiné jsou zatím ještě ve stádiu návrhů norem (DIS, Draft International Standard). Jejich stručný přehled obsahuje tabulka 38.4., která uvádí také obdobně zaměřené aplikační protokoly v "konkurenční" soustavě protokolů TCP/IP.

zkratka název protokol je určen pro: obdobně zaměřený
protokol TCP/IP
VT Virtual Terminal virtuální terminály Telnet
FTAM File Transfer, Access and Management přenos a sdílení souborů FTP
MOTIS Message Oriented Text Interchange Standard
ISO verze standardu CCITT X.400 pro elektronickou poštu
elektronickou poštu SMTP, RFC822
CMIP Common Management Information Protocol správu sítí SNMP
JTM Job Transfer and Manipulation zadávání úloh na dálku
MMS Manufacturing Messaging Service přenos zpráv v prostředí výroby
RDA Remote Database Access přístup do vzdálených databází
Tabulka 38.4.: Protokoly aplikační vrstvy ISO/OSI