Projet de fin dtudes Conception et ralisation d

  • Slides: 21
Download presentation
Projet de fin d’études : Conception et réalisation d ’un Proxy d’annuaire LDAP CSI

Projet de fin d’études : Conception et réalisation d ’un Proxy d’annuaire LDAP CSI France © Bull, 2000 Page 1 21 juin 2000 Olivier Schmitt Yannik Soubigou

Plan CSI France © Bull, 2000 Page 2 n n n n n Contexte

Plan CSI France © Bull, 2000 Page 2 n n n n n Contexte de réalisation du projet LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions Conclusion Démonstration

Contexte de réalisation du projet La société BULL • Quelques chiffres Contexte LDAP et

Contexte de réalisation du projet La société BULL • Quelques chiffres Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions • Chiffre d ’affaire : 24, 9 milliards de francs en 1998 • Basé en Europe et actif dans près de 100 pays • Environ 20. 000 collaborateurs dans le monde • Organisation Conclusion Démonstration • Le service E-Solutions CSI France © Bull, 2000 Page 3 • Équipe fournissant des services liés aux nouvelles technologies • Développement d’applications sur Internet et Intranet • 20 collaborateurs à Echirolles

LDAP et les annuaires (1) • Les annuaires X. 500 Contexte LDAP et les

LDAP et les annuaires (1) • Les annuaires X. 500 Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions • stockage des données de l’entreprise ( personnes, configurations … ) • base de donnée à structure hiérarchique : la DIB • Protocole d’accès analogue à S. Q. L. : DAP • Distinguished Name : nom unique identifiant une entrée dans la DIB Conclusion Démonstration • Le protocole LDAP • Lightweight Directory Access Protocol • Accès aux annuaires par Internet • Protocole de niveau supérieur à TCP/IP • Port TCP standard 389 CSI France © Bull, 2000 Page 4 • Version 2 répandue, Version 3 en cours de déploiement • Grammaire respectant le standard ASN 1 • Messages encodés suivant BER ( Basic Encoding Rules )

LDAP et les annuaires (2) Contexte LDAP et les annuaires Cahier des charges Études

LDAP et les annuaires (2) Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions Conclusion Démonstration CSI France © Bull, 2000 Page 5

Cahier des charges (1) Proxy LDAP Contexte LDAP et les annuaires Cahier des charges

Cahier des charges (1) Proxy LDAP Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations But : Fournir un point d’accès unique à un service Évolutions Conclusion Démonstration Ajout de fonctionnalités à la relation Client/Serveur. Exemples de fonctionnalités : • Gestion de cache • Routage des requêtes CSI France © Bull, 2000 Page 6 • Filtrage des requêtes Proxy LDAP Annuaire

Cahier des charges (2) Fonctionnalités de base d’un Proxy : Contexte • Transmission des

Cahier des charges (2) Fonctionnalités de base d’un Proxy : Contexte • Transmission des requêtes LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions Conclusion Démonstration Contraintes : • Performance • Résistance à la charge • Faible coût Fonctionnalités ajoutées : CSI France © Bull, 2000 • Gestion des habilitations Page 7 • Routage des referrals

Cahier des charges (3) Routage des referrals Contexte LDAP et les annuaires Requête LDAP

Cahier des charges (3) Routage des referrals Contexte LDAP et les annuaires Requête LDAP Cahier des charges Études bibliographiques Développement Tests et validations Client LDAP Réponse LDAP Requête LDAP Proxy LDAP Referral Annuaire 1 Évolutions Conclusion Requête LDAP Démonstration Réponse LDAP Annuaire 2 Qu ’est ce qu ’un Referral ? CSI France © Bull, 2000 Page 8 Un message LDAP contenant une URL au format LDAP : ldap: //adresse. IP: port/DN exemple : ldap: //localhost: 389/uid=oschmitt, ou=People, o=Bull, c=fr

Contexte LDAP et les annuaires Cahier des charges Études bibliographiques JNDI Autres outils Java

Contexte LDAP et les annuaires Cahier des charges Études bibliographiques JNDI Autres outils Java Open. LDAP Développement Tests et validations Évolutions Conclusion Démonstration CSI France © Bull, 2000 Page 9 Études bibliographiques

Java Naming and Directory Interface Contexte • Technologie Java LDAP et les annuaires Cahier

Java Naming and Directory Interface Contexte • Technologie Java LDAP et les annuaires Cahier des charges Études bibliographiques JNDI Autres outils Java • API de haut niveau • Largement utilisée Open. LDAP Développement Tests et validations Évolutions Conclusion Mais Démonstration • Performances limitées des applications Java Et surtout CSI France © Bull, 2000 Page 10 • Développement côté client uniquement

Autres outils Java Netscape SDK 4. 0 Contexte LDAP et les annuaires Cahier des

Autres outils Java Netscape SDK 4. 0 Contexte LDAP et les annuaires Cahier des charges Études bibliographiques JNDI • orienté client uniquement • Outil Java et C Autres outils Java Open. LDAP Développement Tests et validations Évolutions Conclusion Démonstration Snacc For Java d’IBM et l’outil d’OSS Nokalva • Deux outils très évolués mais très chers Le couple Cup/Jlex • Très bas niveau CSI France © Bull, 2000 Page 11 • Version Java de Lex et Yacc

Open. LDAP • Outils de développements et applications Contexte LDAP et les annuaires Cahier

Open. LDAP • Outils de développements et applications Contexte LDAP et les annuaires Cahier des charges Études bibliographiques JNDI Autres outils Java Open. LDAP Développement • Package gratuit • Développé en C • La librairie lber : librairie de codage et décodage BER Tests et validations Évolutions Conclusion Démonstration • Sources très peu commentées • Relecture difficile CSI France © Bull, 2000 Page 12 • Interface BER de très bas niveau nécessite plus de travail d ’intégration

Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Interface LDAP Architecture

Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Interface LDAP Architecture Traitement des messages Gestion des referrals Tests et validations Évolutions Conclusion Démonstration CSI France © Bull, 2000 Page 13 Développement

Interface LDAP • Interface de plus haut niveau programmée en C++ Contexte LDAP et

Interface LDAP • Interface de plus haut niveau programmée en C++ Contexte LDAP et les annuaires Cahier des charges • Plus claire, plus simple d’utilisation Études bibliographiques Développement Interface LDAP Architecture Traitement des messages Message LDAP Win. Sock Librairie BER Interface LDAPMess Gestion des referrals Tests et validations Évolutions Recv. LDAP() Conclusion Démonstration Send. LDAP() CSI France © Bull, 2000 Page 14 Méthodes principales de cette interface : • Recv. LDAP() : recevoir et décoder un message • Send. LDAP() : encoder et expédier un message • Import. LDAP() : pour échanger un message d’une connexion à une autre

Architecture globale du Proxy LDAP Thread principal Interface console Contexte Fonctionnalités requises : Zone

Architecture globale du Proxy LDAP Thread principal Interface console Contexte Fonctionnalités requises : Zone de mémoire partagée entre threads: LDAP et les annuaires Cahier des charges Études bibliographiques Développement Interface LDAP Socket écoute port 389 Thread gestionnaire de connexions configuration base information clients Architecture Traitement des messages Gestion des referrals Tests et validations Évolutions Conclusion Démonstration CSI France © Bull, 2000 Thread Client 1 Thread Client 2 Algorithme Client Échange des messages Traitement des referrals Interface LDAP Interface BER encodage/décodage ASN 1 Page 15 Socket client Socket annuaire • soucis de performance : multithread • acceptation de nouveaux clients en parallèle • gestion du proxy par l’opérateur • base partagée d’informations clients Traitement des clients: • communication avec le client et l ’annuaire • décodage et encodage des messages • algorithme de traitement des messages

Algorithme de Traitement des messages Client LDAP Proxy LDAP (vue partielle) Thread Client Annuaire

Algorithme de Traitement des messages Client LDAP Proxy LDAP (vue partielle) Thread Client Annuaire LDAP Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Bind. Request Bind. Response Interface LDAP Architecture Traitement des messages Gestion des referrals Tests et validations Évolutions Search. Request Abandon. Request Search. Result. Entry Search. Request Search. Result. Entry Conclusion Démonstration Search. Result. Done Exended. Response Unsolicited Notification Unbind. Request CSI France © Bull, 2000 Page 16 Algorithme asynchrone d ’échange des messages LDAP Cas de fonctionnement courant

Algorithme de gestion des referrals Client LDAP Contexte Proxy LDAP (vue partielle) Thread Client

Algorithme de gestion des referrals Client LDAP Contexte Proxy LDAP (vue partielle) Thread Client Bind. Request LDAP et les annuaires Cahier des charges Études bibliographiques Développement Bind. Response Search. Request Interface LDAP Architecture Traitement des messages Bind. Request Bind. Response Search. Request Search. Result. Referral Bind. Request Gestion des referrals Bind. Response Tests et validations Évolutions Search. Request Conclusion Démonstration Annuaire LDAP 1 Search. Result. Entry Search. Result. Done Unbind. Request CSI France © Bull, 2000 Search. Result. Done Unbind. Request Page 17 Traitement d’un message Referral Annuaire LDAP 2

Tests et validations • Outils : Directory. Mark, LDAP Browser, Navigateur Netscape • Tests

Tests et validations • Outils : Directory. Mark, LDAP Browser, Navigateur Netscape • Tests de conformité Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions Grammaire LDAP et cahier des charges • Tests de stress Comportement en cas d’utilisation intensive Conclusion Démonstration • Tests d’endurance Résistance à une longue utilisation • Tests de robustesse Résistance aux cas d’utilisation inhabituels • Test de performance CSI France © Bull, 2000 Page 18 Performances du Proxy comparé à un annuaire seul Perte de 1% à 30% de performance suivant les cas d’utilisation Jusqu’à 330 opérations par seconde

Évolutions • Verrouillage de la console lors d’accès multiples en écriture Contexte LDAP et

Évolutions • Verrouillage de la console lors d’accès multiples en écriture Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement • Implémentation du système d’habilitations Tests et validations Évolutions Conclusion Démonstration • Ajout d’un module de statistiques • Permettre l’accès à plusieurs annuaires (Load Balance) • Gestion d’un Cache CSI France © Bull, 2000 Page 19

Conclusion Bilan global très positif Contexte Toutes les phases d ’un projet : LDAP

Conclusion Bilan global très positif Contexte Toutes les phases d ’un projet : LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions Conclusion Démonstration Etudes, spécifications, codage et documentations Principaux objectifs atteints : • proxy LDAP multithread • application facilement portable • performances acceptables • code source entièrement disponible (et gratuit) • proxy modulaire pour ajout de nouvelles fonctionnalités Difficultés rencontrées: CSI France © Bull, 2000 Page 20 • Etude des librairies Open. LDAP • Déboguage d ’une application multithreadée Projet de R&D motivant Travail en binôme et en équipe

Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations

Contexte LDAP et les annuaires Cahier des charges Études bibliographiques Développement Tests et validations Évolutions Conclusion Démonstration CSI France © Bull, 2000 Page 21