VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:27/92
RoΦnφk:1992
Rubrika/kategorie: Co je Φφm ... v poΦφtaΦov²ch sφtφch
Dφl:38

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl

Ji°φ Peterka: Co je Φφm ... v poΦφtaΦov²ch sφtφch (38):

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


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm