VyÜlo v t²denφku: | COMPUTERWORLD |
╚φslo: | 26/92 |
RoΦnφk: | 1992 |
Rubrika/kategorie: | Co je Φφm ... v poΦφtaΦov²ch sφtφch |
Dφl: | 37 |
Obavy z r∙znΘ interpretace p°enßÜen²ch dat nejsou zdaleka bezd∙vodnΘ. StaΦφ si uv∞domit, ₧e nap°. st°ediskovΘ poΦφtaΦe firmy IBM pou₧φvajφ pro k≤dovßnφ znak∙ k≤d EBCDIC, zatφmco drtivß v∞tÜina ostatnφch pou₧φvß ke stejnΘmu ·Φelu k≤d ASCII. Ke znßzorn∞nφ cel²ch Φφsel se znamΘnkem pou₧φvß v∞tÜina poΦφtaΦ∙ tzv. dvojkov² dopl≥kov² k≤d, ale nap°. poΦφtaΦe CDC Cyber pracujφ s tzv. jedniΦkov²m dopl≥kov²m k≤dem. Mikroprocesory 80x86 firmy Intel Φφslujφ jednotlivΘ byty (ve slovech, dvojslovech atd.) jednφm sm∞rem, zatφmco nap°φklad mikroprocesory °ady M68000 firmy Motorola Φφslujφ jednotlivΘ byty p°esn∞ opaΦn∞. Velmi ΦastΘ jsou pak takΘ odliÜnosti nap°φklad ve formßtu Φφsel v pohyblivΘ °ßdovΘ Φßrce, odliÜnΘ rozsahy zobraziteln²ch cel²ch Φφsel (danΘ poΦtem k tomu vyhrazen²ch bit∙) apod.
R∙znΘ poΦφtaΦe tedy v obecnΘm p°φpad∞ pou₧φvajφ r∙znΘ zp∙soby vnit°nφ reprezentace dat. Majφ-li si takovΘ poΦφtaΦe svß data korektnφm zp∙sobem vzßjemn∞ p°edßvat, musφ b²t vhodn²m zp∙sobem zajiÜt∞ny jejich nezbytnΘ konverze. A ty mß v referenΦnφm modelu ISO/OSI na starosti prßv∞ prezentaΦnφ vrstva (presentation layer).
PrezentaΦnφ vrstva se tedy starß o to, aby nap°φklad celΘ Φφslo bez znamΘnka s hodnotou 234 bylo p°ijato op∞t jako celΘ Φφslo bez znamΘnka s hodnotou 234, a ne nap°. jako celΘ Φφslo se znamΘnkem s hodnotou -22. Nenφ vÜak ji₧ ·kolem prezentaΦnφ vrstvy zab²vat se tφm, co toto Φφslo znamenß. Zda jde nap°. o poΦet osob, o Φφslo strßnky v knize, o procentußlnφ v²Üi inflace Φi n∞co docela jinΘho. To p°φsluÜφ a₧ vlastnφm aplikacφm, kterΘ jsou zdrojem resp. p°φjemcem t∞chto dat.
ReferenΦnφ model ISO/OSI p°edpoklßdß prßv∞ tuto druhou variantu se spoleΦn²m mezitvarem. Podφvejme se proto na jejφ podstatu pon∞kud podrobn∞ji.
Cht∞jφ-li vzßjemn∞ spolupracovat dv∞ r∙znΘ sφ¥ovΘ aplikace, musφ se nejprve domluvit na spoleΦn²ch datov²ch strukturßch, kterΘ budou pou₧φvat - tedy nap°φklad na tom, ₧e datum budou reprezentovat jako zßznam (record) tvo°en² t°emi polo₧kami (DEN, MESIC a ROK), kterΘ jsou samy o sob∞ cel²mi Φφsly bez znamΘnka. Tyto datovΘ struktury je ovÜem nutnΘ vyjßd°it tak, aby jejich popis byl pro ob∞ strany srozumiteln², a ob∞ strany si jej takΘ stejn∞ vyklßdaly. Kdyby byly vÜechny sφ¥ovΘ aplikace psßny v jedinΘm vyÜÜφm programovacφm jazyku, staΦilo by pou₧φt prßv∞ tento jazyk. P°edpoklad pou₧itφ jedinΘho programovacφho jazyka vÜak nebyl, nenφ a z°ejm∞ nikdy nebude v praxi spln∞n, a tak bylo nutnΘ vytvo°it pro pot°eby formßlnφho popisu dat a datov²ch struktur zvlßÜtnφ jazyk, kter² byl nazvßn ASN.1 (Abstract Syntax Notation). Umo₧≥uje definovat jednotlivΘ datovΘ polo₧ky, stanovit jejich typ (tj. urΦit, zda jde nap°. o celΘ Φφslo se znamΘnkem, znakov² °et∞zec Φi logickou hodnotu apod.), p°id∞lit jim jmΘno (identifikßtor), a takΘ sestavit z jednoduch²ch datov²ch polo₧ek obecn∞jÜφ datovΘ struktury typu zßznam, pole, seznam, mno₧ina apod.
Zp∙sob fungovßnφ prezentaΦnφ vrstvy nßzorn∞ ilustruje obrßzek 37.2. Kdykoli chce n∞jakß entita aplikaΦnφ vrstvy zaslat urΦitß data svΘ partnerskΘ entit∞ na jinΘm uzlovΘm poΦφtaΦi, p°edß "svΘ" prezentaΦnφ vrstv∞ jednak vlastnφ data, kterß si p°eje odeslat, a jednak jejich popis v jazyce ASN.1 (kter² definuje jejich abstraktnφ syntaxi). PrezentaΦnφ vrstva na zßklad∞ tohoto popisu dokß₧e sprßvn∞ interpretovat jednotlivΘ polo₧ky dat (urΦit mj. jejich typ a velikost), a na zßklad∞ toho je pak zak≤dovat do takovΘho tvaru, kter² je vhodn² pro p°enos, a kter² si sebou nese pot°ebnΘ informace o typu a formßtu p°enßÜen²ch dat (tj. p°evΘst je do p°enosovΘ syntaxe). PrezentaΦnφ vrstva na stran∞ p°φjemce pak dφky tomu dokß₧e sprßvn∞ urΦit typ a formßt p°ijat²ch dat, a v p°φpad∞ pot°eby provΘst nezbytnΘ konverze. Jestli₧e nap°φklad p°enosovß syntaxe poΦφtß s vyjßd°enφm cel²ch Φφsel se znamΘnkem ve dvojkovΘm dopl≥ku, ale p°φjemce pou₧φvß ke stejnΘmu ·Φelu jednotkov² dopln∞k, m∙₧e prezentaΦnφ vrstva p°φjemce provΘst nezbytnΘ konverze jeÜt∞ d°φve, ne₧ p°ijatß data p°edß svΘ bezprost°edn∞ vyÜÜφ (tj. aplikaΦnφ vrstv∞).
PrezentaΦnφ vrstvy p°φjemce a odesilatele se vÜak nejprve musφ shodnout na tom, jakΘ datovΘ struktury si vlastn∞ budou p°edßvat, a jakou budou pro n∞ pou₧φvat p°enosovou syntaxi. Proto se musφ ob∞ strany na zaΦßtku vzßjemnΘho spojenφ (p°esn∞ji: p°i zahajovßnφ relace) nejprve dohodnout na jednom nebo n∞kolika tzv. kontextech, jak se v terminologii ISO/OSI modelu naz²vß p°i°azenφ p°enosovΘ syntaxe k syntaxi abstraktnφ. V pr∙b∞hu relace se pak mohou mezi t∞mi kontexty, na kter²ch se oba dohodli, dokonce p°epφnat.
Hlavnφm ·kolem prezentaΦnφ vrstvy je tedy zajiÜt∞nφ nezbytn²ch konverzφ p°enßÜen²ch dat. Nenφ to ovÜem ·kol jedin² - na ·rovni prezentaΦnφ vrstvy m∙₧e b²t nap°φklad °eÜeno takΘ zabezpeΦenφ p°enßÜen²ch dat pomocφ Üifrovßnφ (encryption), kterΘ ovÜem lze realizovat i na ·rovni fyzickΘ nebo transportnφ vrstvy. Pro minimalizaci objemu p°enßÜen²ch dat pak m∙₧e b²t na ·rovni prezentaΦnφ vrstvy zajiÜ¥ovßna i jejich komprimace (compression).