Vyšlo v Softwarových novinách č. 9/99, v září 1999
Vytištěno z adresy: http://www.earchiv.cz/a909s200/a909s213.php3

Koncepce X.500

Základním požadavkem, který je kladen na každý adresář, je samozřejmě schopnost uchovávat potřebné údaje, s možností následného přístupu (čtení, vyhledávání). Typicky mají tyto údaje podobu položek charakteru dvojic (lze si představit například položku typu ). Takovéto položky se pak sdružují do větších logických celků, například tak aby k sobě logicky patřily jméno uživatele, jeho emailová adresa a adresa pro listovní atd., a s takto sdruženými položkami je již možné pracovat společně (například vyhledávat je atd.). Tím vznikají celé větší záznamy (entries), které je již možné použít třeba pro vyjádření "internetových souřadnic" konkrétních uživatelů. Standard X.500 předpokládá, že takovéto záznamy (entries) budou reprezentovat objekty reálného světa (což mohou být uživatelé, ale stejně tak to mohou být i četné další věci). Sám se přitom stará o korektní vedení takovýchto záznamů ve své evidenci, ale již se nemůže dost dobře starat o to, jak korespondují se svými "vzorovými" objekty - pokud bude například několik záznamů popisovat uživatele, není v silách ani náplni práce standardu X.500 kontrolovat, zda jde o různé uživatele, nebo naopak o jednu jedinou "fyzickou" osobu.

Standard X.500 sám definuje určitou základní sadu atributů, resp. jejich typů, ze kterých se konstruují jednotlivé položky záznamů (a k těmto základním atributům je možné dodefinovávat další). Mezi základní (předdefinované) atributy patří například:

  • Country (C) (země)
  • State or Province Name (S) (stát nebo provincie, kraj atd.)
  • Street Address (SA) (místní adresa - ulice atd.)
  • Locality Name (L) (lokalita)
  • Organization Name (O) (jméno organizace)
  • Organizational Unit Name (OU) (jméno organizační jednotky)
  • Common Name (CN) (obecné jméno)

Jednotlivé záznamy přitom nemusí obsahovat položky se všemi atributy které připadají v úvahu (resp. tyto nemusí být "vyplněny", tj. nemusí pro ně být definována jejich hodnota). Konkrétní záznam by mohl vypadat například takto:

c=CZ, o=Softwarove noviny, cn=Petr Koubsky mail=pkoubsky@softnov.cz

a je samozřejmě otázkou, zda takto definovaný záznam (se třemi "vyplněnými" atributy) stačí pro jednoznačnou identifikaci, neboli pro jednoznačné odlišení od všech ostatních položek. V tomto konkrétním případě asi ano, protože organizace jménem "Softwarové noviny" je zřejmě v ČR (zemi CZ) jen jedna, a pan Koubský je v této organizaci svého jména také zřejmě jediný.

Již z tohoto konkrétního příkladu je vidět, že standard X.500 poskytuje poměrně velkou pružnost pro takové vyjádření (definování) záznamu, které jej bude jednoznačně určovat, a to v rámci všech v úvahu připadajících položek, resp. atributů (neboli v rámci celého adresového prostoru X.500). Takovéto jednoznačné vyjádření záznamu je označováno jako "Distinguished Name" (DN), a lze jej přirovnat k tzv. plně kvalifikovanému doménovému jménu, které také jednoznačně definuje nějaké symbolické doménové jméno v rámci systému DNS (např. adresa http://www.softnov.cz je takovýmto plně kvalifikovaným doménovým jménem, ale třeba adresa http://www.softnov už nikoli).

K "nejnutnějším" atributům lze samozřejmě přidávat další atributy a těm přiřazovat konkrétní hodnoty, tak aby se dosáhlo požadovaného "užitečného" efektu. Například:

c=CZ, 
o=Softwarove noviny, 
cn=Petr Koubsky    
mail=pkoubsky@softnov.cz
postalAddress=Na Vyhlídce 68, 190 00 Praha 9
fax=+420-2-684 10 73 

Příklad výpisu adresáře na bázi X.500 (větší obrázek)

Dalším velmi důležitým aspektem každého adresáře je to, jak uspořádává, resp. člení jednotlivé záznamy které obsahuje. Zda je například ponechává "na jedné hromadě" (což obvykle dělají databáze) , nebo je naopak člení hierarchicky, neboli zařazuje do vhodné stromovité struktury. Na tom pak závisí také způsob, jakým se uživatelé mohou "dopátrat" toho, co hledají.

Standard X.500 předpokládá hierarchické členění záznamů, a to podle hodnot atributů obsažených v záznamech. Pro lepší pochopení je možné vyjít z představy, že X.500 zastřešuje dílčí adresáře, které mají jednotlivé organizace a jejich organizační jednotky - například Softwarové noviny jako organizace (o=Softwarove noviny, nacházejici se v zemi c=CZ) mohou mít jako jednu organizační jednotku redakci (ou=redakce), jako jinou organizační jednotku například inzerci (ou=inzerce), dále třeba distribuci atd., přičemž každá z těchto organizačních jednotek (či: oddělení) má podle této představy svou samostatnou evidenci (evidenci, resp. adresář svých uživatelů

Představa adresářové struktury X.500 (DIT, Directory Information Tree)

Tato představa skutečně odpovídá realitě i v tom smyslu, že příslušné organizace či organizační jednotky (oddělení) si udržují a spravují své vlastní (dílčí) adresáře. Tyto dílčí adresáře pak díky konkrétnímu technickému řešení na bázi standardu X.500 "splývají" do jediného logického celku, neboli do jediného "jednolitého" adresáře. Ten je možné si představit jako jediný "oblak", ke kterému uživatel může přistoupit z kteréhokoli místa, a měly by mu být poskytnuty vždy stejné služby. V rámci tohoto oblaku se přitom uživatel pohybuje (prochází jeho obsahem) v tom smyslu, v jakém je konstruován strom DIT (Directory Information Tree, viz předchozí obrázek). Samozřejmostí je i možnost vyhledávání, prostřednictvím hodnot které mají být nalezeny u konkrétních atributů (lze se například ptát na všechny uživatele jménem "Petr Koubský" v ČR (zemi c=CZ).

V reálné praxi přitom uživatel, který chce s adresářem pracovat, musí být vybaven potřebným klientským programem. V terminologii standardu X.500 je tento program označován jako "DUA" (Directory User Agent). Právě tento "agent" (realizovaný programovými prostředky) je podle kritiků kvůli značné složitosti celého standardu příliš velký na to, aby mohl být provozován na běžně dimenzovaném osobním počítači.

Představa vztahu DUA a adresáře dle X.500

Představa jednolitého "oblaku", který odpovídá jedinému logickému adresáři, se přitom týká především dostupnosti adresářových služeb, ale netýká se již konkrétní realizace. Celý "jednolitý" adresář je ve skutečnosti tvořen určitým počtem "adresářových serverů", v terminologii standardu X.500 označovaných jako DSA (Directory System Agent). Takovéto adresářové servery se přitom dohromady podílí na vedení celého informačního obsahu adresáře (DIB, Directory Information base), s tím že příslušnou "zátěž" si mezi sebou rozkládají způsobem, který pro uživatele není bezprostředně viditelný.

Představa DSA a vztahu DUA - DSA

Ve skutečnosti konkrétní servery DSA udržují konkrétní dílčí adresáře (například jeden DSA v Softwarových novinách by mohl udržovat adresáře členů zdejší redakce, zaměstnanců oddělení inzerce atd.), ale uživatelé se jich mohou "ptát" na cokoli co se týká celého souboru dílčích adresářů, které splývají do výsledného "jednolitého celku" (jednoho logického adresáře s vnitřní strukturou dle druhého předchozího obrázku). Pokud totiž nějaký uživatel položí prostřednictvím svého klientského DUA konkrétní dotaz příslušnému DSA (pomocí protokolu DAP, Directory Access Protocol, který je k tomuto účelu určen), a dotázaný DSA nedokáže sám poskytnout požadovanou odpověď, pak se tento DSA sám dotáže kompetentních DSA, získá od nich odpověď a tu vrátí původnímu tazateli (jde o režim práce, označovaný jako chaining, doslova: zřetězení). Jednotlivé servery DSA přitom mají definován svůj vlastní způsob komunikace mezi sebou (prostřednictvím protokolu DSP, Directory Service Protocol), a mohou být nastaveny například také tak, aby nezprostředkovávaly odpovědi od jiných DSA, ale tazatele pouze nasměrovaly ve stylu "já na tvůj dotaz nedokáži odpovědět, ale zeptej se tam a tam …" (jde o režim, označovaný jako referral). Takovýto způsob fungování, při kterém již zaniká představa jednolitého adresáře, může být v konkrétních případech nutný například z bezpečnostních důvodů. Jindy, pokud se naopak zachovává představa jednolitého adresáře a případné zprostředkované dotazy by byly zodpovídány příliš pomalu, mohou jednotlivé servery DSA používat replikace - tj. mohou si navzájem přenechávat repliky (kopie) svého obsahu, tak aby odpovědi mohly být rychlejší.

Představa protokolů pro vzájemnou komunikaci mezi DUA a DSA