Módosítások

NeptunLdapSyncImpl

2 087 bájt hozzáadva, 2010. február 25., 16:44
Architektúra
== LDAP bejegyzések leképezése ==
Minden A szinkronizációs metódus eredménye egy, vagy jópár XML struktúra, melyek általában keretrendszer egy LDAP bejegyzéshez tartoznakegy ún. Például a személyes adatokat szolgáltató operáció válaszában jól elkülöníthetőek Entry objektumot rendel, melynek mezői az egyes felhasználókhoz tartozó adatokLDAP attribútumokkal közeli rokonságot mutatnak.
A szinkronizációt nagyban egyszerűsíti ez a feltevés, így az egyes LDAP bejegyzéseket elég ezekkel az Minden szinkronizációs metódus eredménye egy (vagy jópár) XML strukturákkal szinkronizálnistruktúra, melyek általában egy leképezést kell tehát biztosítani az LDAP attribútumok és bejegyzéshez tartoznak. Például a személyes adatokat szolgáltató operáció válaszában jól elkülöníthetőek az XML struktúra közöttegyes felhasználókhoz tartozó adatok.
A szinkronizációt nagyban egyszerűsíti ez a feltevés, így az egyes LDAP bejegyzéseket elég ezekkel az XML struktúrákkal szinkronizálni, egy leképezést kell tehát biztosítani az LDAP attribútumok és az XML struktúra között. Tegyük fel, hogy van egy XML strukturánkstruktúránk, amit szeretnénk egy LDAP bejegyzésre leképezni:
<source lang="xml">
** objectClass-ok kezelése
** DN kezelése
 
=== A leképező objektum életciklusa ===
LDAP-ban létező bejegyzés esetén a következőképp alakul a leképező objektum életciklusa:
# azon mezők betöltése, melyek az LDAP bejegyzés kereséséhez szükségesek
# LDAP keresés végrehajtása
# LDAP-ból az attribútumok betöltése az objektum megfelelő mezőibe
# betöltés vége, életciklus metódus meghívása
# az XML-ből a mezők frissítése
# életciklus metódus meghívása (generált mezők számítása)
# megváltozott mezők keresése
# írás az LDAP-ba
 
=== A leképező objektum ''konfigurációja'' ===
A leképező objektum mezői tehát megfeleltethetőek mind az LDAP attribútumoknak, mind az XML struktúra egyes részeinek. Ezt a két megfeleltetést a mezőknél egy dokumentációs blokkban kell megtenni:
 
<source lang="php">
class SzemelyEntry extends BaseEntry {
/**
* @LDAP sn
* @NEPTUN Szemely/VezetekNev
*/
public $sn;
/**
* @LDAP mail
* @NEPTUN Szemely/Email
*/
public $mail;
/**
* @LDAP c
* @NEPTUN Szemely
*/
public $cn;
 
/* eletciklus metodusok, kotelezoen implementalando metodusok */
}
</source>
 
A fenti rövid példában a vezetéknév illetve az email cím leképzése látható.
 
=== XML kezelés ===
A keretrendszer egy XPath-hoz hasonlító, egyszerűsített útvonal-kifejezés kiértékelését képes elvégezni. Ebben a kifejezésben csak XML elementek szerepehetnek, <code>/</code> karakterrel elválasztva.
 
A bejegyzéshez tartozó XML-ben előfordulhatnak olyan elemek, melyek több értéket hordoznak (a fenti példában ilyen az <code>Email</code> elem, de például lehet több lakcímből, telefonszámból, ...). Az XML feldolgozása során ezeket a mezőket transzparensen kell kezelni, tehát a feldolgozás során minden egyes csomópontnál a többszörös illeszkedés összes ágának bejárása szükséges. Ezt a rekurzív bejárást a keretrendszer biztosítja.
= Részletes dokumentáció =
565
szerkesztés

Navigációs menü