To jest stara wersja strony!


Analiza warunków technicznych i implementacja prototypu modułu dostępu do danych Składu Osobowego AGH (SkOs) przy pomocy protokołu LDAP

Kowalczyk, Curzytek

  • Do zrobienia:
    • analiza struktury danych przechowywanych w SkOs,
    • wykonanie projektu bazy danych,
    • rozpoznanie możliwości pobierania danych z SkOs (uzyskanie dostępu do bazy, parsowanie HTML) i przygotowanie procedur importu,
    • wykonanie prostego interfejsu webowego dostępu do nowej bazy,
    • analiza protokołu LDAP i istniejących serwerów; określenie wymagań (serwer, itd.) i wybór rozwiązania,
    • udostępnienie danych z bazy przy pomocy protokołu LDAP.
  • Linki, itd.:

projekt_konceptualny_16.pdf

projekt_logiczny_16.pdf

Raport końcowy

Baza została stworzona w DBMS (Database Management System) PostgreSQL 8.4.2 na podstawie zaprojektowanego diagramu ERD. System operacyjny, na którym był realizowany projekt to Linux Debian, wersja testowa – squeeze. Pakiety były instalowane przy pomocą dostępnych repozytoriów systemu operacyjnego. Nazwa katalogu domowego: wojcieh.

Etapy realizacji projektu baz danych LDAP pracowników AGH

1. Utworzenie i modyfikacja bazy danych

Nazwa bazy danych przechowującej tabele LDAP: ldap.

Podczas testów okazało się, że do poprawnego odczytywania danych z bazy SQL do bazy hierarchicznej niezbędne jest ustawienie zmiennej client_encoding na latin1.

ldap => SET client_encoding TO latin1; 
SET

Po ustawieniu client_encoding na wartość utf-8 większość danych była gubiona. Nie wiemy jaka jest tego dokładna przyczyna i czy jest to tylko fenomen związany z Debianem, czy też na innych systemach operacyjnych dzieje się podobnie. Dokumentacja OpenLDAP mówi z kolei, że do przechowywania wszystkich tekstowych wartości atrybutów oraz nazw wyróżnionych używany jest zbiór znaków UTF-8.
Problem ten pociąga za sobą kilka istotnych konsekwencji. W celu administrowania bazą danych została wykorzystana strona administracyjna, jaką dostarcza framework DJANGO. Django wymaga kodowania znaków w formacie UTF-8. Dochodzi więc do konfliktu pomiędzy administrowaniem relacyjnej bazy danych, a poprawnym działaniem bazy hierarchicznej. Problem ten został rozwiązany w sposób prowizoryczny, poprzez utworzenie jeszcze jednej bazy danych przechowującej całą strukturę relacyjnej bazy danych. W tym celu został stworzony odpowiedni skrypt basha. Rozwiązanie takie nie jest najlepsze, ponieważ aby uwzględnić zmiany w bazie LDAP trzeba skopiować dane z jednej do drugiej bazy.

Mamy więc dwie bazy danych:

  • aghldap z tabelami diagramu ERD, protokołu LDAP oraz tabelami utworzonymi przez framework Django, client_encoding = utf8
  • ldap z tabelami i widokami protokołu LDAP, client_encoding = latin1, utworzona na podstawie bazy aghldap przy pomocy skryptu basha

Bazy są dostępne bez konieczności podawania hasła. Należy zmienić jedynie użytkownika i nadać mu odpowiednie prawa do modyfikacji struktury baz.

2. Konfiguracja ODBC – interfejsu pozwalającego połączyć się aplikacjom z systemem zarządzania bazą danych

Wymagane pakiety:

  • unixodbc, libiodbc2 – niezbędne biblioteki i narzędzia
  • odbc-postgresql – sterownik ODBC dla DBMS PostgreSQL

Po zainstalowaniu pakietów w shellu sprawdzamy lokalizację plików konfiguracyjnych:

$ odbcinst -j
unixODBC 2.2.11
DRIVERS............: 
SYSTEM DATA SOURCES: 
USER DATA SOURCES..: 

3. Konfiguracja serwera LDAP (wersja 2.4.19)

4. Konfiguracja Django w celu zarządzania bazą danych (python wersja 2.5.5, django wersja 1.1.1)

Wygląd i opis interfejsów stron obsługujących bazy danych

1. Strona administracyjna relacyjnej bazy danych

2. Strony wykorzystane do wyszukiwania i prezentacji wyników

Inne opcje dostępu i wykorzystania bazy danych LDAP

Import danych z istniejącego systemu SKOS do bazy LDAP

Problemy jakie wystąpiły w trakcie realizacji projektu, proponowane rozwiązania i kierunki rozwoju

pl/dydaktyka/sbd/2009/projekty/skos-ldap/start.1265888923.txt.gz · ostatnio zmienione: 2019/06/27 15:55 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0