<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE zprava SYSTEM "techrep.dtd">

<zprava cislo="2/2001">
<nazev>Využití adresářových služeb (LDAP) v projektu MetaCentrum</nazev>
<autor>Jiří Sitera</autor>
<datum>duben 2001</datum>



<p>Tato technická zpráva shrnuje základní informace týkající se problematiky
adresářových služeb (protokol LDAP) v rámci projektu MetaCentrum,
především údaje o současném stavu a podklady pro další rozvoj.</p>  


<h1>Publikování informací (z MetaDatabáze)</h1>

<h2>Data k publikování</h2>

<p><ul>
 <li><i>Informace o lidech</i>
  <p>
  Informace uchovávané v databázi o lidech, tj. osobní identifikační údaje
  plus technické informace specifické pro prostředí MetaCentra. Některé
  z těchto (technických) informací jsou centrálně udržované, některé jsou
  udržované v režii domovské buňky uživatele.</p></li>
 <li><i>Informace o skupinách uživatelů</i>
  <p>
  Možnost definice členství jednotlivých uživatelů ve skupinách. Může být
  využito pro mnoho věcí, primárně je potřeba dotáhnout do funkčního stavu
  mechanismu centrální údržby přístupových listů k některému aplikačnímu
  SW.</p></li>
 <li><i>Další informace</i>
  <p>
  Výhledově by bylo zřejmě účelné uvažovat o prezentaci dat například o
  existujících SW balících (název, komentář, URL k popisu), která by mohla
  sloužit např. jako zdroj pro generování částí MetaWebu.</p>
  <p>
  Mezi statické informace publikované přes LDAP pak také určitě patří
  veškeré konfigurační informace, např. o zdrojích a sběru dat o nich (viz
  dále -- v podstatě konfigurace skriptů pro sběr dat).</p></li>
</ul></p>



<h2>Využití dat</h2>
<p><ul>
 <li><i>Základní <uv>telefonní seznam</uv> uživatelů</i>
 <p>
 Kromě běžného přístupu přes LDAP např. pro klienty elektronické pošty
 také interface na MetaWebu.</p></li>
 <li><i>Podpora infrastruktury MetaCentra</i>
 <p>
 Dle těchto informací je především možno generovat jednoduchými skripty
 <tt>/etc/passwd</tt> a mail aliasy na strojích v MetaCentru
 (automatické přesměrování  na
 primarní zadaný mail uživatele). Souvisí s funkcí MetaDatabáze a
 mechanismem elektronické přihlášky.</p>
 <p>
 Z informací o příslušnosti lidí ke skupinám je možno generovat příslušné
 pts skupiny v jednotlivých AFS buňkách.</p></li>
</ul></p>

<h2>Členění dat</h2>
<p>Jak již bylo výše zmíněno, základním zdrojem dat je centrální databáze
(MetaDatabáze). Jistá část dat však může být udržována samostatně v režii
buňky, přičemž centrálně je pouze definován způsob prezentace těchto dat. 
Základní přehled reprezentace dat poskytuje
<a href="#obr:struktura1">obrázek</a>. Větev <tt>People</tt> reprezentuje
centrálně 
udržovaná data o lidech a větev <tt>Accounts</tt> specifická data
buňky. Více <a href="#lokalni">viz</a>.</p>

<p>
V některých případech je účelné udržovat informace o uživatelských kontech
na konkrétních strojích včetně přidělených lokálních prostředků. Tento
postup je uplatňován u~singulárních uzlů MetaCentra (se speciální
přístupovou politikou) jako je např. Origin 2000 v~Brně. 
V případě potřeby mohou být tyto informace udržovány v centrální databázi
nebo lokálně v režii buňky. V současné době existuje pouze doporučení pro
způsob jejich prezentace v~adresářových službách <a href="#stroje">
viz</a>.</p> 


<p><obr src="MetaStrom1" id="obr:struktura1">Základní struktura
adresářového stromu</obr></p>  


<h2>Návrh schématu informací o lidech</h2>
<p>
Návrh schématu <tt>MetaPerson</tt> vychází se standardního schéma
<tt>inetOrgPerson</tt>. Rozšiřuje ho o specifické atributy <tt>homeCell</tt>,
<tt>homeDirectory</tt> a <tt>loginShell</tt>. Tento postup je vhodný
vzhledem ke kompatibilitě se standardními e-mail klienty.</p>


<p><tab sloupce="lll">
<tr><td>Jméno atributu, alias</td><td>typ atributu</td><td>význam</td></tr>
<tr><td>commonName, cn</td><td>cis</td><td>jméno a příjmení osoby</td></tr>
<tr><td>surname, sn</td><td>cis</td><td>příjmení osoby</td></tr>
<tr><td>givenName</td><td>cis</td><td>jméno osoby</td></tr>
<tr><td>telephoneNumber</td><td>tel</td><td>telefonní číslo</td></tr>
<tr><td>mail</td><td>cis</td><td>e-mail adresa</td></tr>
<tr><td>postalAddress</td><td>cis</td><td><uv>snail mail</uv> adresa</td></tr> 
<tr><td>organizationName, o</td><td>cis</td><td>Plné jméno organizace, ke které uživatel přísluší</td></tr>
<tr><td>uid</td><td>cis</td><td>identifikace člověka jakožto uživatele -- uživatelské jméno</td></tr>
<tr><td>homeCell</td><td>cis</td><td>identifikace domovské buňky v rámci Meta</td></tr>
<tr><td>homeDirectory</td><td>cis</td><td>cesta k domovskému adresáři v globálním jmenném prostoru</td></tr>
<tr><td>loginShell</td><td>cis</td><td>implicitní shell uživatele</td></tr>
<tr><td>status</td><td>cis</td><td>stav uživatele (platný/blokovaný) -- viz níže</td></tr>
<tr><td>expires</td><td>cis</td><td>předpokládaná platnost uživatelského
konta v MetaCentru</td></tr>
<nazev>Schéma <tt>MetaPerson</tt></nazev>
</tab></p>
 
<h3>Tvorba <tt>dn</tt>, rozlišovacího jména položky</h3>
<p>Pro jednoznačnou identifikaci a 
zachování popisnosti se skládá ze dvou atributů. <tt>cn</tt> -- jméno a
příjmení a <tt>uid</tt> -- uživatelské jméno.</p>

<h3>Význam atributu <tt>status</tt></h3>
<p>Sémantika hodnot, jež jsou užívány v položkách propagovaných do LDAPu musí
být jasně definována jako (logická) součást schématu. V tuto chvíli je
důležitá sémantika hodnot atributu <tt>status</tt>.</p>

<p><tab sloupce="cl">
<tr><td>Hodnota atributu <tt>status</tt></td><td>význam</td></tr>
<tr><td>ACTIVE</td><td>aktivní uživatel</td></tr>
<tr><td>DISABLED</td><td>pozastavený přístup</td></tr>
<tr><td>EXPIRED</td><td>uživatelské konto je již neplatné (záznam slouží pro
účtování apod.)</td></tr>
<nazev>Hodnoty atributu <tt>status</tt></nazev>
</tab></p>

<p>Sémantika hodnot, jež jsou užívány v položkách propagovaných do LDAPu musí
být jasně definována jako (logická) součást schématu.</p>

<h3>Přístup k datům</h3>

<p><dl>
 <dt>stroj:</dt>
  <dd>ldap-meta.ten.cz</dd>
 <dt>port:</dt> 
  <dd>377</dd>
 <dt>báze:</dt> 
  <dd>ou=People, o=meta, c=cz</dd> 
</dl></p>

<p><pre>
  ldapsearch -h ldap-meta.ten.cz -p 377 -b 'ou=People, o=meta, c=cz'
  'sn=sitera'
</pre></p>

<h3>Vzorek LDIF reprezentace uživatele</h3>
<p><pre>
  dn: cn=Jiri Sitera + uid=sitera, ou=People, o=meta, c=cz
  objectclass: inetOrgPerson
  objectclass: MetaPerson
  cn: Jiri Sitera
  uid: sitera
  sn: Sitera
  givenName: Jiri
  telephoneNumber: 019 7421 580
  postalAddress: Univerzitni 22, 30614 Plzen
  organizationname: Zapadoceska univerzita
  mail: sitera@civ.zcu.cz
  homeCell: zcu.cz
  homeDirectory: /afs/zcu.cz/users/s/sitera/home
  loginShell: tcsh
  status: ACTIVE
</pre></p>

<h2>Mechanismus distribuce dat z metadatabáze</h2>
<p>
Data jsou primárně uložena a spravována prostředky relační databáze. V
rámci aplikace Perun je realizována transformace dat do pohledu
poskytovaného prostřednictvím adresářových služeb. Zde je také realizován
mechanismus update dat v adresářových službách.</p>

<p>Základní funkce:
<ul>
 <li><p>Generování LDIF souboru kompletní informace (pro naplnění případně
  obnovu adresářových služeb).</p></li>
 <li><p>Údržba dat při změnách (mění příslušné
   položky v adresářových službách v reakci na změnu v databázi).</p>
   Lze dělat
   několika technologiemi, od generování LDIF souboru a volání řádkové LDAP
   utility, přes PerLDAP skripty až po procedury uvnitř databáze
   realizované v jazyce Java<footnote>Přesnější diskuze na toto téma
   viz Petr Holeček a Aleš Křenek. V tuhle chvíli pravděpodobně existuje
   shoda, že a) současná technologie Perunu není k tomuto vhodná, b) udělat
   něco podobného není jednoduché a za c) takovou technologii
   nepotřebujeme.</footnote></li>.
 <li> <p><uv>Regenerační update</uv>, tj. např. každý den se provede update dat
   v adresářovém serveru technologií, která je velmi výkonná, spolehlivá a
   jednoduchá, avšak vyžaduje zastavení serveru. Jako zdroj dat se použije
   LDIF soubor kompletní informace, update mechanismus je součástí
   serverových utilit. Tento postup v podstatě odpovídá současné
   technologii Perunu.</p></li>
</ul></p>

<h2 id="lokalni">Umístění a reprezentace lokálních informací</h2>
<p>Navržená reprezentace dat slouží pro standardní řešení práce s lokálními
daty buňky, které jsou dosud spravovány zcela nezávislými
mechanismy. Vlastní realizace údržby těchto dat může být nadále
individuálně řešena a skryta za standardizované rozhraní.</p>

<p>Základní lokální informace buňky jsou UNIX uid jednotlivých uživatelů
MetaCentra v~dané buňce.</p>

<p><dl>
 <dt>umístění:</dt> 
  <dd><p>podvětev <tt>ou=&lt;buňka&gt;,ou=Accounts,o=meta,c=cz</tt></p></dd>
 <dt>reprezentace dat:</dt> 
  <dd><p>návrh schématu položek typu
   <tt>MetaLocalAccount</tt> a <tt>MetaLocalAccounts</tt> viz
   <a href="#tab:MetaLocalAccount">tab.</a> a <a
   href="#tab:MetaLocalAccounts">tab.</a>; položka 
   typu <tt>MetaLocalAccount</tt> reprezentuje lokální informace o
   uživateli a položka typu <tt>MetaLocalAccounts</tt> slouží jako kořenová
   položka přislušného stromu -- v případě níže popsané implementace údržby
   lokálních dat slouží k uložení stavové informace buňky</p></dd>
</dl></p>


<p><tab sloupce="lll" id="tab:MetaLocalAccount">
<tr><td>Jméno atributu, alias</td><td>typ atributu</td><td>význam</td></tr>
<tr><td>uid</td><td>cis</td><td>uživatelské jméno -- vazba na ostatní informace o uživateli</td></tr>
<tr><td>uidNumber</td><td>cis</td><td>UNIX uid uživatele pro buňku</td></tr>
<nazev>Objectclass <tt>MetaLocalAccount</tt></nazev> 
</tab></p>


<p><tab sloupce="lll" id="tab:MetaLocalAccounts">
<tr><td>Jméno atributu, alias</td><td>typ atributu</td><td>význam</td></tr>
<tr><td>lastUidNumber</td><td>cis</td><td>poslední použité uid z přiděleného rozsahu --
specifická stavová informace mechanismu pro údržbu lokálních informací buňky</td></tr>
<nazev>Objectclass <tt>MetaLocalAccounts</tt></nazev>
</tab></p>



<h2>Mechanismus údržby lokálních informací -- referenční implementace</h2>
<p>Referenční implementace tohoto mechanismu je maximálně jednoduchá. Veškerá
data jsou umístěna přímo v adresářových službách. </p>

<p>Vzorek dat:
<pre>
  ldapsearch -h ldap-meta.zcu.cz -p 377 -b 'ou=zcu,ou=Accounts,o=meta,c=cz' \
  'objectclass=*'
  
  dn: ou=zcu, ou=Accounts, o=meta, c=cz
  objectclass: top
  objectclass: organizationalunit
  objectclass: MetaLocalAccounts
  ou: zcu
  lastuidnumber: 60645

  ....

  dn: uid=sitera, ou=zcu,ou=Accounts,o=meta,c=cz
  objectclass: metaLocalAccount
  uid: sitera
  uidnumber: 60644
</pre></p>

<p>Mechanismus údržby těchto dat je realizován skriptem v Perlu (s využitím
knihovny PerLDAP), který je zodpovědný za přiřazení (lokálního) UNIX uid
každému uživateli MetaCentra. K tomu využívá čítač uložený v kořenové
položce příslušného podstromu (uid jsou přidělována sekvenčně z vyhrazeného
rozsahu).</p>


<h2>Využití dat -- ověřovací implementace</h2>
<p>V současnosti jsou k dispozici ověřovací implementace některých základních
funkcí. Jsou to zejména:</p>

<p><dl>
 <dt>generátor passwd</dt> 
   <dd><p>Skript pro vytváření <tt>passwd</tt> souborů
   strojů MetaCentra. Je pravidelně spouštěn pro zajištění aktuálního
   stavu. Skript používá globální data o lidech a lokální informace buňky
   (UNIX uid).</p> 
   <p>
   Slouží primárně pro řízení přístupu uživatelů MetaCentra -- na
   strojích bez lokálních domovských adresářů udělá vše co je třeba učinit
   pro <uv>zřízení</uv> nového uživatele (vzhledem ke stroji).</p>
   <p>
   Implementace: Perl s PerLDAPem</p></dd>
 <dt>generátor mail aliasů</dt> 
   <dd><p>Podobně jako u <tt>passwd</tt>, slouží k
   zajištění přesměrování elektronické pošty na strojích MetaCentra na
   primární adresy jednotlivých uživatelů.</p>
   <p>
   Implementace: Perl s PerLDAPem</p></dd>
 <dt>telefonní seznam</dt> 
   <dd><p>WEB rozhraní pro přístup k základním informacím --
   vyhledávání uživatele MetaCentra, jeho telefonu, e-mailu, atd.</p>
   <p>
   Implementace: PHP3 s podporou LDAPu jako modul WEB serveru Apache;
   testovací implementace je k dispozici na URL:<br/>
   <tt>http://lupus.zcu.cz/&vlnka;sitera/metapeople.html</tt></p></dd> 
</dl></p>


<h2 id="stroje">Návrh reprezentace údajů o uživatelských účtech na jednotlivých
   strojích</h2>
<p>
Tento návrh se týká reprezentace údajů o účtech na jednotlivých strojích
resp. přístupu k nim. Jedná se pouze o doporučení reprezentace tohoto typu
informací v adresářových službách. Takové informace jsou udržovány pouze
pro singulární případy, kdy je nutné pro nějaký stroj používat jinou
než globální politiku přidělování uživatelských účtů (obvykle se jedná o
jistou formu specializace globální politiky např. z licenčních důvodů).</p>
<p>
Základní struktura návrhu je patrná z <a href="obr:struktura2">obr.</a>. Návrh
příslušného typu položky je v <a href="tab:MetaAccount">tab.</a>. <tt>dn</tt>
položky je tvořeno uživatelským jménem uživatele a strukturálně patří do
větve identifikované jménem stroje vůči němuž specifická data položka
reprezentuje.</p>


<p><obr src="MetaStrom2" id="obr:struktura2">Návrh umístění informací
specifických vzhledem ke stroji</obr></p>  


<p><tab sloupce="lll" id="tab:MetaAccount">
<tr><td>Jméno atributu, alias</td><td>typ atributu</td><td>význam</td></tr>
<tr><td>uid</td><td>cis</td><td>uživatelské jméno -- vazba na ostatní informace o uživateli</td></tr>
<tr><td>homeQuota</td><td>cis</td><td>specifická informace pro daný stroj -- kvóta lokálního
domovského adresáře</td></tr>
<tr><td>scratchQuota</td><td>cis</td><td>kvóta lokálního scratch prostroru</td></tr>
<nazev>Návrh typu položky (objectclass) <tt>MetaAccount</tt></nazev> 
</tab></p>


<p><tab sloupce="lll" id="tab:MetaHost">
<tr><td>Jméno atributu, alias</td><td>typ atributu</td><td>význam</td></tr>
<tr><td>hn</td><td>cis</td><td>jméno stroje -- položky v tomto podstromu reprezentují data
specifická vůči jmenovanému stroji</td></tr>
<nazev>Návrh typu položky (objectclass) <tt>MetaHost</tt></nazev> 
</tab></p>



<h1>Sběr informací o stavu zdrojů</h1>
<p>Cílem tohoto systému je poskytnutí jednotného rozhraní pro přístup k
informacím o aktuálním stavu distribuovaného výpočetního prostředí. Tento
systém slouží zejména pro účely plánování a optimalizace přidělování zdrojů.</p>
<p>
Ukázalo se, že infrastruktura postavená nad dostupnými adresářovými servery
při zachování jistých pravidel je schopná akceptovat množství
změn za jednotku času dostatečné pro realizaci tohoto systému.</p>

<h2>Sběr dat</h2>
<p>Po zkušenostech s démonem pro sběr dat realizovaným v Perlu a
prostřednictvím knihovny PerLDAP (problémy s managementem paměti) se
současný návrh skládá ze dvou komponent:</p>

<p><ul>
 <li>Jednoduchý program v jazyce C běžící jako démon a realizující funkci
  popsatelnou (v terminologii projektu Globus) jako heartbeat. Program
  periodicky zapisuje do adresářových služeb informaci o funkci
  monitorovaného zdroje (vlastní heartbeat, tj. v principu pouze timestamp
  a některé základní údaje, např. load).</li>
 <li>Skript vycházející z testovacího skriptu <tt>statinfo</tt>,
   tj. jistá inteligence a flexibilita realizovaná v jazyce Perl. Chování
   modifikovatelné dle konfigurace uložené ve větvi <tt>ou=Resources,
   o=meta, c=cz</tt>. Jde především o definici dat, které se mají pro daný
   prostředek sbírat a frekvenci sběru. Základní interval sběru výrazně
   delší než u výše uvedeného démona. Skript spouštěn pravidelně z crona.</li>
</ul></p>


<h2>Prezentace dat</h2>
<p>Existují dvě větve informací o zdrojích:<br/>

<ul>
 <li> <tt>ou=Resources, o=meta, c=cz</tt>
  <p>
  <uv>Statické</uv> informace o existujících zdrojích, tj. především jejich
  konfigurace a vlastnosti (pro vyhledávání vhodných zdrojů).</p></li>
 <li> <tt>ou=Stat, o=meta, c=cz</tt>
  <p>
  Sbíraná, rychle se měnící data. Aktuální stav zdrojů. Jasná vazba na
  entity v předcházející skupině.</p></li>
</ul>
</p>

<h2>Současný experimentální návrh struktury dat pro sběr aktuálních
informací o stavu zdrojů</h2>
<p>
Návrh schématu vychází ze schémat projektu Globus. Naše rozšíření
<tt>MetaStatInfo</tt> bude obsahovat specifické údaje potřebné pro naše
účely, v tuto chvíli obsahuje pouze atribut <tt>uptime</tt>.</p>

<h3>Příklad LDIF reprezentace stroje</h3>
<p><pre>
  dn: hn=pasifae.zcu.cz, ou=zcu,ou=stat,o=meta,c=cz
  rn: Host pasifae.zcu.cz
  hn: pasifae.zcu.cz
  imageobject: undefined
  objectclass: GlobusTop
  objectclass: GlobusPhysicalResource
  objectclass: GlobusComputeResource
  objectclass: GlobusOperatingSystemInformation
  objectclass: GlobusCpuInformation
  objectclass: GlobusSystemDynamicInformation
  objectclass: MetaStatInfo
  heartbeat: 930586330
  cpuload1: 0.41
  uptime: 14 days
  cpuload5: 0.14
  cpuload15: 0.19
  lastupdate: Mon Jun 28 18:12:10 1999
</pre></p>

<p>
Testovací skript <tt>metastats</tt> periodicky získává informace o všech
monitorovaných strojích a vypisuje je. Posuzuje hodnotu <tt>heartbeat</tt>
podle aktuálního systémového času (na základě definované mezní diference) a
dle výsledku určuje platnost ostatních dat.</p>




<h1>Fyzická infrastruktura LDAP serverů</h1>
<p>
Základní ideou je rozdělení LDAP stromu dle typu dat a jejich zdroje. 
Část dat replikovaná (kořen stromu, <uv>statická</uv> data), část dat rozdělena
(rychle se měnící data) -- v každé buňce lokálně zápis a přístup
zvenčí vzdáleně na čtení.</p>
<p>
Aktuální struktura LDAP stromu z hlediska fyzického umístění pro
poskytování přístupu k informacím o lidech je znázorněna na
<a href="#obr:servery">obr.</a> (s následujícím členěním z hlediska údržby: 1)
replikace, 2) generování z relační databáze prostřednictvím Perunu s
možností redundance, 3) dle lokálních potřeb).</p>

<p><obr src="MetaServery" id="obr:servery">Struktura LDAP stromu z hlediska
rozdělení dat na části technicky poskytované samostatně</obr></p> 

<h2>Implementace</h2>
<p>
Základní používaný SW (server a LDAP knihovny) je v současnosti mix
Netscape a OpenLDAP. S nástupem OpenLDAPu verze 2.0.x přechod na
OpenLDAP. Současná infrastruktura serverů pro přístup k datům o lidech je
založena na OpenLDAPu. Jako hlavní vývojový nástroj je používána knihovna
PerLDAP. Více viz odkazy a literatura.</p>

<h1>Témata k diskuzi a společné poznámky</h1>
<p><ul>
 <li><i>Zabezpečení přístupu k adresářovým službám</i>
  <p>
  Z WEBu, ze systémových skriptů, pro replikaci i obecně. Především KRB5
  SASL autentizace a SSL zabezpečení komunikace.</p></li>
 <li><i>Adresářové služby a česká diakritika</i>
  <p>
  <uv>cestina</uv> nebo LDAPv3 UTF8 kódování versus LDAPv2 klienti (mail
  klienti).</p></li>
 <li><i>Schéma pro reprezentaci lidí</i>
  <p>
  Zde je mnoho jednotlivostí o kterých lze diskutovat: tvorba dn (složené
  rdn?) , cn (umisťovat sem titul?), ... K diskuzi je i řada referencí
  (RFC2307, gridforum, ...).</p></li>
 <li><i>Realizace redundance na úrovni klienta adresářových
  služeb</i>
  <p>
  Je třeba vybrat jednu z metod práce klienta s více servery pro zajištění
  transparentního chování při výpadcích serverů či komunikace.</p></li>
 
 <li><i>Koncepce sběru informací o stavu zdrojů a služeb</i>
  <p>
  V oblasti sběru a prezentace dat o stavu distribuovaného výpočetního
  prostředí je třeba se zabývat řadou věcí. Zejména je nutné získat a utřídit
  informace o požadavcích plánování, kde je problémem především údržba a
  prezentace historie stavu. S tím souvisí zkoumání technologií pro přístup k
  datům z jiných systémů nebo aplikací (např. dávkový systém) přes jednotné
  rozhraní (LDAP).</p>
  <p>
  Nápad pro ilustraci<footnote>Ve skutečnosti je zřejmě nutno hledat jiné,
  méně známé, avšak pro účely metacomputingu vhodnější monitorovací
  systémy.</footnote>: Možnost integrace/využití SW NetSaint pro základní 
  (Meta 
  nespecifické) parametry strojů. NetSaint je obecně užívanou platformou
  pro sběr těchto informací a možná by bylo výhodné uvažovat o jakési bráně
  k těmto informacím (zřejmě výhodnější než dříve diskutovaná možnost brány ke
  klasickému SNMP monitoru typu HP OpenView). Podobně je tomu i v
  oblasti problematiky historie naměřených údajů.  Zde se lze
  zmínit o nápadu týkajícího se možnosti využití existujících
  mechanismů, např. RRD_TOOL (MRGT) (vazba na adresářové služby pro
  získávání dat i konfigurace a brána pro přístup k sumarizovaným datům
  zvenčí).</p></li> 
</ul></p>





<seznamknih>
 <kniha id="LDAPuvod">
  Jiří Sitera, <i>Adresářové služby -- úvod do problematiky</i>,
  jako technická zpráva TEN 4/2000<br/>
  <tt>
  http://www.ten.cz/doc/techzpravy/2000-4</tt>
 </kniha>
 <kniha id="EurOpen">
  Jiří Sitera, <i>Adresářové služby jako informační infrastruktura
  distribuovaného výpočetního prostředí</i>, sborník konference EurOpen.CZ,
  listopad 1999, ISBN 80-902715-0-2.
 </kniha>
 <kniha id="Pleiades">
  Projekt Pleiades -- domovská stránka,<br/>
  <tt> http://home.zcu.cz/projekty/lps/ldap</tt>   
 </kniha>
 <kniha id="skriptLDAP">
  Jiří Sitera, <i>Skriptovací jazyky a jejich využití pro přístup k
  adresářovým službám protokolem LDAP</i>,<br/>
  <tt>
  http://home.zcu.cz/projekty/lps/ldap/projekt/www/papers/skriptLDAP.ps</tt>
 </kniha>
 <kniha id="Globus">
  Projekt Globus<br/>
  <tt>http://www.globus.org</tt>
 </kniha>
 <kniha id="openldap">
  The OpenLDAP Project,
  <i>Open source suite of LDAP applications and development tools</i>, <tt>
  http://www.openldap.org</tt> 
 </kniha>
 <kniha id="perldap">
  Netscape Communications,
  <i>PerLDAP Central</i>,<br/>
  <tt>
  http://developer.netscape.com/tech/directory/perldap_central.html</tt>
 </kniha>
</seznamknih>


</zprava>



