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

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 (23)

Vrstvy, vrstevnatΘ modely, protokoly

╪eÜit urΦit² problΘm jako celek je obvykle mo₧nΘ jen po urΦitou hranici - dokud rozsah problΘmu resp. jeho slo₧itost nep°esßhne schopnosti °eÜitele Φi °eÜitel∙ a mo₧nosti nßstroj∙ a metod, kterΘ p°itom pou₧φvajφ.

Jakmile se urΦit² problΘm stßvß p°φliÜ slo₧it²m, je vhodnΘ provΘst jeho dekompozici - rozd∞lit jej na n∞kolik dφlΦφch problΘm∙, kterΘ by bylo mo₧nΘ °eÜit samostatn∞ a nezßvisle na sob∞.

Dobr²m p°φkladem problΘmu, kter² je p°φliÜ velk² na to, aby bylo ·nosnΘ jej °eÜit jako jedin² velk² problΘm, je otßzka zajiÜt∞nφ zßkladnφch funkcφ poΦφtaΦovΘ sφt∞. Jist∞ si lze snadno p°edstavit, ₧e se jednß p°edevÜφm o otßzku zßkladnφho programovΘho vybavenφ sφt∞, kterΘ bezprost°edn∞ ovlßdß technickΘ prost°edky sφt∞ - sφ¥ov² hardware, tj. nejr∙zn∞jÜφ komunikaΦnφ vybavenφ, uzlovΘ poΦφtaΦe atd. - a jejich prost°ednictvφm zajiÜ¥uje chod celΘ sφt∞ jako takovΘ.

Obrßzek 23.1.
Obr. 23.1: P°edstava vzßjemnΘho vztahu mezi vrstvami

Vzhledem k charakteru poΦφtaΦov²ch sφtφ a k povaze ·kol∙, kterΘ je t°eba zajistit, se jako nejvhodn∞jÜφ ukßzala b²t dekompozice zßkladnφho programovΘho vybavenφ sφt∞ na hierarchicky uspo°ßdanΘ vrstvy (layers). Ka₧dß vrstva mß na starosti zajiÜt∞nφ p°esn∞ vymezenΘho okruhu ·kol∙. Mechanismy, pomocφ kter²ch tyto ·koly zajiÜ¥uje, pak nabφzφ k vyu₧itφ jako svΘ slu₧by vrstv∞ bezprost°edn∞ vyÜÜφ. Nap°φklad vrstva, kterß zajiÜ¥uje p°enos jednotliv²ch bit∙, m∙₧e nabφzet svΘ slu₧by bezprost°edn∞ vyÜÜφ vrstv∞, kterß s jejich pomocφ p°enßÜφ celΘ bloky dat apod. V obecnΘm p°φpad∞ (viz obr. 23.1.) tedy ka₧dß vrstva nabφzφ urΦit² repertoßr slu₧eb vrstv∞ bezprost°edn∞ vyÜÜφ, a k realizaci t∞chto slu₧eb sama vyu₧φvß slu₧eb vrstvy bezprost°edn∞ ni₧Üφ.

P°edstava o tom, kolik samostatn²ch vrstev vymezit a jakΘ jim sv∞°it ·koly, tvo°φ tzv. vrstvov² model (layered model). Nßzor∙ na to, jak by takov² vrstvov² model m∞l vypadat, m∙₧e b²t samoz°ejm∞ celß °ada. P°φst∞ se seznßmφme s jednφm z nich, kter²m je tzv. referenΦnφ model ISO/OSI.

Rozd∞lenφ na hierarchickΘ vrstvy v rßmci vrstvovΘho modelu jeÜt∞ samo o sob∞ nezajiÜ¥uje hlavnφ efekt dekompozice jednoho velkΘho problΘmu na n∞kolik dφlΦφch problΘm∙ - mo₧nost °eÜit tyto dφlΦφ problΘmy samostatn∞ a nezßvisle na sob∞. K tomu je nutnΘ jeÜt∞ stanovit p°esnß pravidla vzßjemnΘ souΦinnosti sousednφch vrstev - tedy definovat p°esnß rozhranφ (interface) mezi jednotliv²mi vrstvami. SouΦßstφ tΘto definice musφ b²t nap°. p°esnΘ vymezenφ jednotliv²ch slu₧eb, zp∙sob jejich volßnφ, poΦty parametr∙ atd.

Jakmile jsou znßmy ·koly, kterΘ mß urΦitß vrstva °eÜit, a je takΘ p°esn∞ definovßno jejφ rozhranφ s ob∞ma sousednφmi vrstvami, je mo₧nΘ zaΦφt uva₧ovat o zp∙sobu, jak zajistit ty ·koly, kterΘ byly vrstv∞ sv∞°eny. Zde je dobrΘ si uv∞domit, ₧e ka₧dß vrstva sice vyu₧φvß slu₧by vrstvy bezprost°edn∞ ni₧Üφ a sama nabφzφ svΘ slu₧by vrstv∞ bezprost°edn∞ vyÜÜφ, jejφm partnerem p°i komunikaci v sφti je ale ta vrstva, kterß se na jinΘm uzlovΘm poΦφtaΦi nachßzφ na stejnΘ ·rovni hierarchie vrstev (v angliΦtin∞ se pro takovou vrstvu pou₧φvß oznaΦenφ "peer"). Tyto stejnolehlΘ vrstvy musφ b²t spolu domluveny na spoleΦn²ch pravidlech vzßjemnΘ komunikace, kterΘ takΘ musφ d∙sledn∞ dodr₧ovat. Pou₧ijeme-li ji₧ d°φve citovan² p°φklad vrstvy, kterß zajiÜ¥uje p°enos cel²ch blok∙ dat, jejφm partnerem je stejnolehlß vrstva jinΘho uzlovΘho poΦφtaΦe, se kterou musφ b²t dohodnuta mj. na formßtu blok∙, kterΘ si navzßjem posφlajφ, na jejich dΘlce, zp∙sobu zabezpeΦenφ, zp∙sobu reakce na p°φjem poÜkozenΘho bloku apod.

Soubor pravidel, kterΘ stejnolehlΘ vrstvy vrstvovΘho modelu pou₧φvajφ pro vzßjemnou komunikaci, tvo°φ tzv. protokol.

Ke ka₧dΘ vrstv∞ v rßmci urΦitΘho vrstvovΘho modelu se tedy vztahuje urΦit² protokol, podle kterΘho p°φsluÜnß vrstva pracuje. Pro jednu a tutΘ₧ vrstvu vÜak m∙₧e p°ipadat v ·vahu vφce r∙zn²ch protokol∙ - stejnΘ ·koly toti₧ mohou b²t Φasto zajiÜ¥ovßny r∙zn²mi zp∙soby.

K urΦitΘmu vrstvovΘmu modelu, kter² definuje zp∙sob rozΦlen∞nφ na vrstvy, tedy m∙₧e existovat celß soustava protokol∙ (protocol suite), v rßmci kterΘ m∙₧e pro n∞kterΘ vrstvy p°ipadat v ·vahu n∞kolik vzßjemn∞ alternativnφch protokol∙. Nap°φklad pro naÜe dv∞ citovanΘ vrstvy (zajiÜ¥ujφcφ p°enos bit∙ resp. cel²ch blok∙) bude obvykle existovat vφce r∙zn²ch protokol∙ podle toho, zda jsou k p°enosu vyu₧φvßny nap°. komutovanΘ linky ve°ejnΘ telefonnφ sφt∞, pevnΘ telefonnφ okruhy, ve°ejnß datovß sφ¥, optickß vlßkna, dru₧icovΘ spoje atd.

Jakmile je pro ka₧dou vrstvu vybrßn jeden konkrΘtnφ protokol, vznikß tzv. sestava protokol∙ (protocol stack), kterß p°esn∞ odpovφdß hierarchickΘmu Φlen∞nφ na jednotlivΘ vrstvy.

Navrhnout rozΦlen∞nφ zßkladnφho programovΘho vybavenφ na jednotlivΘ vrstvy, vymezit ·koly, kterΘ by tyto vrstvy m∞ly vykonßvat a stanovit protokoly, kterΘ by se p°itom m∞ly pou₧φvat - to vÜe ji₧ dßvß dosti ucelenou p°edstavu o tom, jak by poΦφtaΦovß sφ¥ m∞la vypadat a jak by m∞la fungovat. Na zßklad∞ tΘto ucelenΘ p°edstavy, kterß tvo°φ architekturu sφt∞ (network architecture), je ji₧ mo₧nΘ uva₧ovat o konkrΘtnφ implementaci.

Rozd∞lenφ zßkladnφho programovΘho vybavenφ sφt∞ na vrstvy a jejich samostatnß a nezßvislß realizace mß vedle rozd∞lenφ jednoho velkΘho problΘmu na n∞koli menÜφch, snßze zvlßdnuteln²ch Φßstφ, jeÜt∞ jednu velmi v²znamnou v²hodu. Tou je mo₧nost sna₧Üφho p°izp∙sobenφ zm∞nßm - staΦφ v₧dy vym∞nit jen ty vrstvy, kter²ch se zm∞na t²kß, a ostatnφ ponechat nezm∞n∞nΘ.


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