Vyšlo v týdeníku: COMPUTERWORLD
Číslo:31/93
Ročník:1993
Rubrika/kategorie: Co je čím ... v počítačových sítích
Díl:70

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 (70):

Přenos a sdílení souborů

V posledních pěti dílech tohoto seriálu jsme se podrobněji zabývali první z aplikačních služeb v rámci síťového modelu TCP/IP - vzdáleným přihlašováním. Dnes již přijde na řadu další velmi potřebná služba: přenos a sdílení souborů. Stejně jako v předchozím případě se ale nejprve zamyslíme nad tím, o co vlastně jde, a teprve pak si ukážeme, jak je přenos souborů a jejich sdílení konkrétně řešeno v TCP/IP sítích.

Problematika přenosu a sdílení souborů v počítačových sítích má společný základ v situaci, kterou je možné lapidárně vyjádřit slovy: "chceme pracovat se souborem, který se nachází na jiném uzlovém počítači". Buďme ale přesnější: obsah souboru, který se nachází na jiném uzlu, chceme zpracovávat na našem počítači. Nepůjde nám tedy o takové řešení, kdy bychom se prostřednictvím vzdáleného přihlašování dostali se svým počítačem do role terminálu toho uzlu, na kterém se příslušný soubor nachází, a zde jej zpracovávali jako "místní" soubor. Představme si například, že chceme editovat nějaký soubor - pak by tato druhá varianta odpovídala situaci, kdy editor běží jako aplikační program na stejném počítači, na kterém se nachází i editovaný soubor. Nám půjde o případ, kdy chceme používat editor běžící na našem počítači, a jeho prostřednictvím editovat obsah souboru, který se nachází na vzdáleném počítači.

Vícenásobný přístup

Řešení právě naznačeného problému má přinejmenším dvě stránky. Tou první je přenos celého souboru či jeho částí z místa, kde se nachází, na místo kde má být zpracován, a ev. zpět. Druhou stránkou je pak otázka vícenásobného přístupu k jednomu a témuž souboru - tedy řešení situace, kdy se o přístup k určitému souboru uchází více zájemců současně.

Vícenásobný přístup samozřejmě není specialitou počítačových sítí, přesně stejný problém totiž nastává obecně u každého víceuživatelského, a dokonce i jen víceúlohového systému. Jeho řešení v prostředí počítačových sítí se nemusí nijak principiálně lišit od řešení na izolovaných počítačích, je spíše jen ztíženo existencí přenosových cest s omezenou kapacitou a zpožděními při přenosu.

Pro zajištění korektního vícenásobného přístupu k souborům existuje celá řada technik, od jednoduchého uzamykání celých souborů či jejich jednotlivých částí až po velmi propracované metody, které mají svůj původ v prostředí distribuovaných systémů.

V této části seriálu se však problematikou vícenásobného přístupu zabývat nebudeme, a zaměříme se hlavně na vlastní přenos souborů mezi uzlovými počítači sítě.

Transparentní vs. netransparentní přístup

Potřebujeme-li na jednom počítači zpracovávat obsah souboru, který se nachází na jiném uzlovém počítači, musí vždy dojít k přenosu tohoto souboru (či alespoň jeho části) tam, kde má být zpracován. Existují ale dva zásadně odlišné přístupy k tomu, kdo a jak tento přenos vyvolává: jeden přístup můžeme označit jako transparentní, a druhý jako netransparentní.

Netransparentní přístup je založen na myšlence, že přenos souborů bude ponechán plně na koncovém uživateli. Když chce pracovat s nějakým souborem, musí si jej sám a explicitně (pomocí vhodné utility, kterou si za tímto účelem vyvolá) nejprve přenést na svůj počítač, a zde jej pak zpracovat stejným způsobem, jako kterýkoli jiný "místní" soubor (a pak jej zase sám přenést zpět, pokud je to zapotřebí). V tomto případě si tedy koncový uživatel plně uvědomuje, že různé soubory se nachází na různých počítačích (dokonce musí přesně vědět kde), a tudíž pro něj existuje principiální rozdíl mezi "místními" a "vzdálenými" soubory.

Alternativou je transparentní přístup k souborům. Ten se snaží vytvářet iluzi, že vzdálené soubory se nachází na místním počítači, snaží se zakrýt veškeré rozdíly mezi oběma druhy souborů, a přebírá na sebe veškerou agendu, která je s tímto předstíráním spojena. Pro koncového uživatele (i pro jím spouštěnou aplikaci) se pak i vzdálené soubory "tváří" naprosto stejně, jako soubory místní, a stejně se s nimi i pracuje. Uživatel a jeho aplikace si pak vlastně vůbec nemusí uvědomovat existenci počítačové sítě a jakkoli distribuovaného prostředí, a tudíž ani to, že různé soubory se mohou ve skutečnosti nacházet na různých počítačích.

Zajištění plně transparentního přístupu k souborům je samozřejmě mnohem náročnější, než zajištění přístupu netransparentního. Součástí síťového modelu TCP/IP jsou protokoly pro oba tyto přístupy (protokoly FTP a NFS), a my se budeme oběma z nich podrobněji zabývat.

Ještě dříve si však alespoň naznačme, s jakými principiálními problémy je realizace obou základních přístupů spojena. Nejvíce jich samozřejmě bude u transparentního přístupu, jehož implementace je nejobtížnější - musí být totiž skryta pod operačním systémem, který nezbytný přenos aktivuje v okamžiku, kdy je uživatelem či aplikací požádán o zajištění přístupu k určitému souboru, a zjistí že tento ve skutečnosti není místní.

Problém je v rozdílnosti operačních systémů

Hlavní zdroj problémů před námi vyvstane v okamžiku, kdy si uvědomíme, že přístup k souborům v počítačové síti může být zajišťován i z prostředí různých operačních systémů. Například je možné (a při dnešní popularitě osobních počítačů a lokálních sítí i docela běžné) aby uživatel počítače PC s operačním systémem MS DOS měl přístup k souborům, které se ve skutečnosti nachází na jiném uzlovém počítači, na kterém je provozován například operační systém Unix. Ukažme si dvě hlavní oblasti, ve kterých se pohled obou operačních systémů na soubory výrazně liší: Má-li však být Unixovský soubor přenesen do prostředí MS DOSu nebo naopak, podle čeho se bude kontrolovat oprávněnost přístupu k tomuto souboru? Ten, kdo z MS DOSu vznáší svůj požadavek na přístup k souboru, je vlastně anonymní (když MS DOS pojem uživatele nezná). V případě netransparentního přístupu ze strany MS DOSu je řešení opět vcelku jednoduché - příslušná utilita (aplikační program) na straně DOSU se může svého uživatele vyptat, jménem koho má vznést svůj požadavek na straně Unixu (tj. vyžádá si Unixovské uživatelské jméno). Podle tohoto jména se pak posuzuje oprávněnost přístup k příslušnému souboru. Jak to ale udělat v případě plně transparentního přístupu? Zde připadá v úvahu v podstatě jen jediná možnost: Unixovské uživatelské jméno (a heslo) si vyžádat předem, a všechny následné požadavky (které již jsou generovány bez přímého vědomí uživatele), vznášet tímto jménem.

Jak se to konkrétně dělá, k tomu se včas dostaneme.


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://ksi.ms.mff.cuni.cz/~peterka/archiv/copyleft.htm