Technologia DirXML składa się z kilku różnych elementów. Jej podstawowym celem jest zapewnienie możliwości bezproblemowego przenoszenia danych pomiędzy NDS a dowolną aplikacją, katalogiem lub bazą danych. W tym celu DirXML dysponuje starannie zdefiniowanym interfejsem, który dane i zdarzenia NDS przekłada na format XML. Interfejs ten pozwala na dwukierunkowy przepływ danych do i z NDS.
Rysunek 1 Przedstawia podstawowe składniki DirXML oraz powiązania między nimi.
Rysunek 1 
Zasadniczym elementem architektury DirXML jest mechanizm DirXML. Oferuje on interfejs, który umożliwia sterownikom DirXML synchronizację informacji z DNS, dzięki czemu nawet systemy danych innego typu mogą łączyć się i wymieniać dane.
Mechanizm DirXML udostępnia dane i zdarzenia NDS korzystając z formatu XML, manipulując danymi przepływającymi pomiędzy systemami za pomocą procesora reguł i programu transformującego dane.
W czasie inicjowania NDS wykonuje następujące operacje:
Po zbuforowaniu zdarzenia sterownik, który jest właścicielem bufora odczytuje zdarzenie.
Sterownik odtrzymuje dane NDS w formacie źródłowym NDS, dokonuje translacji na format XDS (podzbiór dozwolonych formatów XML zdefiniowany przez Novell), a następnie przesyła zdarzenie do mechanizmu DirXML. który przywołuje wszystkie ustawione dla sterownika aplikacji reguły (mapowania, dopasowania, umieszczania, tworzenia, transformacji i arkuszy stylu), tworzy sformatowane zgodnie z regułami dane XML i wysyła je do sterownika aplikacji. Kolejnym etapem jest wysłanie danych do aplikacji i monitorowanie aktualizacji do chwili uzyskania potwierdzenia o pomyślnym zakończeniu operacji.
Element sterownika odpowiedzialny za publikację danych zbiera aktualizacje z zewnętrznej bazy danych aplikacji i rozsyła do NDS. W momencie, gdy sterownik aplikacji otrzyma powiadomienie o zmianach w danych współdzielonych przez obie bazy danych, zbiera te informacje, upewnia się, że zostały przefiltrowane do postaci odpowiedniego zbioru danych, dokonuje konwersji na format DirXML, a następnie wysyła do mechanizmu.
W strukturze DirXML NDS jest hubem. Inne aplikacje i katalogi publikują swoje zmiany w NDS, a NDS wysyła je do tych aplikacji i katalogów, które dokonały na nie subskrypcji. W rezultacie zachodzą dwa rodzaje przepływu danych:
Nazywa się to kanałem wydawcy (Publisher), gdyż inne aplikacje publikują własne zmiany w NDS. Wydawca pobiera zmiany z aplikacji, formatuje je w XML i wysyła do mechanizmu DirXML.
Nazywa się to kanałem subskrybenta, gdyż NDS wysyła zmiany tylko do aplikacji, które zasubskrybowały ich otrzymywanie. Subskrybent otrzymuje zmiany z NDS i synchronizuje je z aplikacją.
Mechaznim DirXML i sterowniki DirXML są kluczowymi składnikami wykorzystującymi kanały wydawcy i subskrybenta i łączącymi NDS z innymi aplikacjami.
Więcej informacji na temat tworzenia i konfigurowania wydawców i subskrybentów znajduje się w następujących tematach:
Sterownik aplikacji DirXML posiada dwa główne moduły, z którymi się komunikuje: mechanizmem DirXML oraz zewnętrzną bazą danych aplikacji. Jest on reprezentowany przez obiekty zdefiniowane w NDS eDirectory, dostępne za pośrednictwem programu ConsoleOne. Z obiektami tymi, przechowującymi informacje o konfiguracji i regułach, współdziała mechanizm DirXML, Mechanizm ten wykorzystuje następujace obiekty i atrybuty DirXML do generowania dokumentu wysyłanego do sterownika aplikacji: Obiekt ten zawiera definicję zestawu sterowników.
Obiekt ten definiuje wszystkie składniki sterownika, łącznie z regułami, arkuszami stylów i nazwą sterownika. Sterownik aplikacji to wykonywalny fragment kodu, z którego korzysta mechanizm DirXML do komunikowania się z aplikacją docelową. Jest on przechowywany jako atrybut obiektu Sterownik.
Obiekt ten przechowuje dane konfiguracyjne kierujące publikacją informacji z aplikacji do NDS.
Atrybut ten określa, które dane są wysyłane z NDS do sterownika DirXML. Mechanizm DirXML rejestruje sterownik w skojarzeniu ze standardowym zbiorem zdarzeń NDS, zawierającym: tworzenie obiektu, usunięcie obiektu, zmiana nazwy obiektu, przeniesienie obiektu, dodanie wartości atrybutu i usunięcie wartości atrybutu. Serwer NDS odczytuje zawartość filtra sterownika, aby w jeszcze większym stopniu ograniczyć dane przesyłane na potrzeby sterownika do mechanizmu. Przykładowo jeśli sterownik ma w zamierzeniu synchronizować wyłącznie dane dotyczące użytkowników, filtr może ograniczyć działanie NDS do zgłaszania jedynie tych zmian, które zaszły w obiektach typu użytkownik, a nie we wszystkich obiektach drzewa NDS.
Obiekt ten przechowuje dane konfiguracyjne kierujące subskrypcją informacji z NDS do aplikacji.
Obiekt ten zawiera dokument XML definiujący regułę, która jest stosowana wobec strumienia zdarzeń NDS przepływającego przez mechanizm DirXML. Do reguł należą: Ten obiekt typu Reguła DirXML określa sposób, w jaki obiekty i atrybuty NDS są przypisywane do rekordów i pól zewnętrznej bazy danych. Przykładowo możliwe jest przypisanie obiektów typu użytkownik do rekordów Klient, atrybutu Inicjały do pola Pierwsze litery imion, itd.
Obiekt ten określa sposób, w jaki obiekty NDS są kojarzone z rekordami w zewnętrznej bazie danych aplikacji, jeśli skojarzenie to nie zostało jeszcze ustanowione (aby uzyskać więcej informacji na temat tworzenia skojarzeń, patrz Tworzenie skojarzeń pomiędzy obiektami NDS, a obiektami aplikacji). Możliwe jest określenie, które atrybuty i wartości w NDS odpowiadają polom i wartościom w zewnętrznej bazie danych. Przykładowo można zdefiniować regułę, że atrybuty Nazwisko użytkownika, Imię i Numer telefonu muszą odpowiadać polom Nazwisko, Imię, Telefon rekordu przed utworzeniem skojarzenia.
Obiekt ten określa, jakie informacje są niezbędne, aby sterownik mógł utworzyć nowy obiekt lub rekord. Dokonuje się tego poprzez określenie atrybutów, które nie mogą nie posiadać wartości (np. nazwisko, imię, numer telefonu, nazwa użytkownika).
Obiekt ten określa miejsce tworzenia nowych obiektów w NDS lub aplikacji zewnętrznej.
Jest to dokument XSLT definiujący sposób przekształcania pochodzących z NDS danych XML na inny format.
Aby uzyskać więcej informacji na temat dodawania i tworzenia obiektów i atrybutów, patrz Tworzenie zestawów sterowników i obiektów DirXML oraz Konfiguracja obiektów DirXML. Wszystkie zdarzenia generowane za pośrednictwem NDS są do momentu ich pomyślnego przetworzenia przechowywane w buforze. Dzięki temu można zagwarantować, że żadne dane nie zostaną utracone z powodu złej jakości łącza, niedostatecznej ilości zasobów systemowych, niedostępności sterownika lub dowolnego innego błędu po stronie sieci. Nazwa skojarzenia odnosi się w DirXML do dopasowań obiektów w NDS i obiektów rezydujących w przyłączonych systemach. Podczas pierwszej instalacji DirXML rozszerzeniu ulega schemat NDS. Jednym z elementów owego rozszerzenia jest nowy atrybut powiązany z klasą bazową wszystkich obiektów NDS. Atrybut ten to tabela skojarzeń. Jej zadaniem jest przechowywanie informacji na temat wszystkich obiektów aplikacji zewnętrznych, z którymi powiązany jest obiekt NDS. Tabela jest generowana i aktualizowana automatycznie, więc nie powodu, aby ją edytować ręcznie, aczkolwiek przeglądanie zawartych tam informacji często jest pomocne. Patrz Tworzenie skojarzeń pomiędzy obiektami NDS, a obiektami aplikacji , aby uzyskać więcej informacji na ten temat.Współdziałanie sterownika DirXML z obiektami i atrybutami NDS
Bufor zdarzeń DirXML
Tabela skojarzeń