Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:sbd:2009:projekty:skos-ldap:start [2010/02/11 14:37]
sbd09
pl:dydaktyka:sbd:2009:projekty:skos-ldap:start [2019/06/27 15:50]
Linia 1: Linia 1:
-====== 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.: 
-    * Administrator Danych Systemu SkOs - Sekretariat Uczelnianego Centrum Informatyki AGH (pawilon C1, pok.401) 
-    * [[http://​en.wikipedia.org/​wiki/​Lightweight_Directory_Access_Protocol]] 
-    * przykładowy link: [[http://​regent2.uci.agh.edu.pl/​skos/​search/​osoba_opis.php?​osoba_id=3401]] 
- 
-{{:​pl:​dydaktyka:​sbd:​2009:​projekty:​skos-ldap:​projekt_konceptualny_16.pdf|}} 
- 
-{{:​pl:​dydaktyka:​sbd:​2009:​projekty:​skos-ldap:​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//. 
- 
-<​code>​ldap => SET client_encoding TO latin1; ​ 
-SET</​code>​ 
- 
-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:​ 
-<​code>​ 
-$ odbcinst -j 
-unixODBC 2.2.11 
-DRIVERS............:​ / etc/​odbcinst.ini 
-SYSTEM DATA SOURCES: / etc/​odbc.ini 
-USER DATA SOURCES..: /​home/​wojcieh/​.odbc.ini 
-</​code>​ 
- 
-Wprowadzamy zmiany w plikach konfiguracyjnych:  ​ 
-  * **odbc.ini**\\ 
-<​code>​ 
-; 
-;  odbc.ini 
-; 
-[ODBC Data Sources] 
-PgSQL=PostgreSQL 
- 
-[PgSQL] 
-Driver ​         = /​usr/​lib/​odbc/​psqlodbc.so ​            // pełna ścieżka do drivera 
-Description ​    = Connection to LDAP/​POSTGRESQL 
-Servername ​     = localhost  
-Port            = 5432 // domyślnie 5432 
-Protocol ​       = 6.4  
-FetchBufferSize = 99 
-Username ​       = wojcieh //​ nazwa użytkownika bazy danych 
-Password ​       = wojcieh9 
-Database ​       = ldap // nazwa bazy danych z tabelami LDAPa 
-ReadOnly ​       = no 
-Debug           = 1 
-CommLog ​        = 1 
- 
-[ODBC] 
-InstallDir ​     = /​usr/​lib/​odbc // ścieżka do katalogu ze sterownikami 
- 
-</​code>​ 
-  * **odbcinst.ini**\\ 
-<​code>​ 
-[ODBC] 
-Trace           = 1 
-Debug           = 1 
-Pooling ​        = No 
- 
-[PostgreSQL] 
-Description ​    = ODBC for PostgreSQL 
-Driver ​         = /​usr/​lib/​odbc/​psqlodbc.so        // pełne ścieżki do driverów 
-Setup           = /​usr/​lib/​odbc/​libodbcpsqlS.so 
-UsageCount ​     = 2 
- 
-</​code>​ 
- 
-Sprawdzamy, czy konfiguracja przebiegła pomyślnie (ostatni argument to nazwa użytkownika):​ 
-<​code>​ 
-$ isql -v PgSQL wojcieh 
-+---------------------------------------+ 
-| Connected! ​                           | 
-|                                       | 
-| sql-statement ​                        | 
-| help [tablename] ​                     | 
-| quit                                  | 
-|                                       | 
-+---------------------------------------+ 
-SQL> 
-</​code>​ 
- 
-Sprawdzić poprawność konfiguracji ODBC możemy również uruchamiając OpenOffice.org Base. \\ 
-Wybieramy opcję //Połącz z istniejącą bazą danych → ODBC, Nazwa źródła danych ODBC obecnego w systemie → PgSQL//. Następnie należy podać nazwę użytkownika bazy i jego hasło. Po wykonaniu wszystkich tych czynności możemy pracować z bazą danych PostgreSQL w Base, należącym do pakietu OpenOffice. \\ 
-Pełny opis konfiguracji na stronie [[http://​www.easysoft.com/​developer/​interfaces/​odbc/​linux.html|www.easysoft.com]] 
- 
-==== 3. Konfiguracja serwera LDAP (wersja 2.4.19) ==== 
- 
-Wymagane pakiety: 
-  * slapd – serwer OpenLDAP 
-  * ldap-utils – narzędzia do obsługi bazy, komendy LDAP 
-  * libldap2 – biblioteki OpenLDAP 
-  * python-ldap – moduł pythona będący interfejsem LDAPa 
- 
-Pliki serwera OpenLDAP znajdują się w katalogu / etc/ldap. \\ 
-Wprowadzamy zmiany w pliku **slapd.conf** (ścieżki do poszczególnych plików mogą być inne, w zależności od systemu :!:): 
- 
-<​code>​ 
-# Schema and objectClass definitions 
-include ​        / etc/​ldap/​schema/​core.schema 
-include ​        / etc/​ldap/​schema/​cosine.schema 
-include ​        / etc/​ldap/​schema/​nis.schema 
-include ​        / etc/​ldap/​schema/​inetorgperson.schema 
-include ​        / etc/​ldap/​schema/​eduperson.schema 
-include ​        / etc/​ldap/​schema/​pledu.schema 
- 
-# Where the pid file is put. The init.d script 
-# will not stop the server if you change this. 
-pidfile ​        /​var/​run/​slapd/​slapd.pid 
- 
-# List of arguments that were passed to the server 
-argsfile ​       /​var/​run/​slapd/​slapd.args 
- 
-# Read slapd.conf(5) for possible values 
-loglevel ​       296 
-#none 
- 
-# Where the dynamically loaded modules are stored 
-modulepath ​     /​usr/​lib/​ldap ​                    // ścieżka do modułów OpenLDAPa 
-moduleload ​     back_sql                   // załadowanie modułu pozwalającego na integrację bazy LDAP z bazą SQL 
- 
-# The maximum number of entries that is returned for a search operation 
-sizelimit ​      1000           // limit wyników wyszukiwania dla polecenia ldapsearch 
- 
-# The tool-threads parameter sets the actual amount of cpu's that is used 
-# for indexing. 
-tool-threads ​   1 
- 
-# Specific Backend Directives for '​other':​ 
-# Backend specific directives apply to this backend until another 
-# '​backend'​ directive occurs 
-backend ​        ​sql  
- 
-# Specific Directives for database #1, of type hdb: 
-# Database specific directives apply to this databasse until another 
-# '​database'​ directive occurs 
-database ​       sql   // typ bazy – sql 
- 
-# The base of your directory in database #1 
-suffix ​         "​dc=agh,​dc=edu,​c=PL"​ 
-#URL            ldap://​192.168.7.12/​ 
-# rootdn directive for specifying a superuser on the database. This is needed 
-# for syncrepl. 
-rootdn ​         "​cn=root,​dc=agh,​dc=edu,​c=PL"​   // dn administratora systemu 
-rootpw ​         secret  ​                 // secret oznacza brak hasła, hasło można wygenerować przy pomocy polecenia ldappasswd i wkleić w to miejsce zakodowany ciąg znaków 
-dbname ​         PgSQL           // nazwa określająca DBMS użyta w konfiguracji ODBC 
-dbuser ​         wojcieh  
-dbpasswd ​       aghldap 
-insentry_query ​ "​insert into ldap_entries (id,​dn,​oc_map_id,​parent,​keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?​)"​ 
-upper_func ​     "​upper"​ 
-strcast_func ​   "​text"​ 
-concat_pattern ​ "?​||?"​ 
-has_ldapinfo_dn_ru ​     no 
- 
-lastmod off 
- 
-access to * 
-        by * read 
-</​code>​ 
- 
-==== 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.txt · ostatnio zmienione: 2019/06/27 15:50 (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