IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XQUERY/SGBD XML Discussion :

Choix d'une architecture : XML ou SGBDR ?


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut Choix d'une architecture : XML ou SGBDR ?
    Bonjour/Bonsoir

    Je dois créer une interface web correspondant à la hiérarchie du personnel de l'entreprise. Il y aura une section d'administration utiliseé par seulement une personne, qui ne connait rien en programmation et a peu de connaissance en informatique. Une des contraintes majeurs est la rapidité car l'ordinateur de cette personne est peu puissant.

    choix 1 :
    Une base MySql pour stocker les informations du personnel.
    Ces données extraites par php donneront lieu a une représentation de l'arborescence en SVG.
    Une version imprimable au format PDF doit aussi etre prévu (via la lib fpdf).

    choix 2 :
    Stockage des informations utilisateurs dans des fichiers XML.
    Transformation du XML en SVG via XSLT.
    Transformation du XML sn SVG via XSL-FO.
    (transformation coté client ou server? j'ai lu que les 2 étaient possible)

    Avec la section d'administration je serai plus tenter de partir sur une base de données mysql qui pour moi est moins lourde d'accès.

    Qu'en pensez-vous?Que choisiriez-vous? peut-etre une autre solution?Selon vous lequel de ces choix est le plus rapide, le moins lourd pour le serveur?

    Merci
    Linux because rebooting is just for adding medias

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Quels sont les volumes ??? Si ça va tenir dans un PDF, il ne doit pas y avoir beaucoup de personnes !?! Dans ce cas, le XML sera bien suffisant, même pour les mises à jour.

    Je ne suis pas sûr que le SVG soit correctement interprêté s'il est généré par une transformation côté client...

    J'ai déjà vu une classe PHP permettant de passer d'un SVG à un PDF via FPDF.

    Par rapport à l'utilisation d'une base de données, il est facile de localiser un élément dans un document XML dès lors qu'un id y est systématiquement associé et l'API DOM (PHP5) est, certes, un peu verbeuse mais tout de même simple d'utilisation.
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Pour le volume de données, il y a un peu moins de 1000personnes.

    Pour la transformation SVG, j'ai trouvé les bonnes fonctions Php à utiliser (si quelqu'un en a besoin je donnerai le lien).

    Pour ce qui est de passé du SVG en PDF, je ne sais pas si j'en ai vraiment l'utilité. Si j'utilise MySql autant ne pas passer par le SVG avec fpdf, et si c'est du XML pareil avec XSL-FO, il n'est pas nécessaire de passer par du SVG avant, mais je note ça pourra toujours me servir ailleurs

    L'utilisation de DOM m'ai familière c'est d'ailleurs cela que je comptais utiliser.

    Si vous me dites que le volume de données à brasser n'est pas trop important pour l'utilisation du XML alors je pense que c'est ce que je vais utiliser.
    Linux because rebooting is just for adding medias

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    1000 personnes, c'est déjà assez conséquent mais faut-il vraiment toutes les charger systématiquement en mémoire ? Je pense que des tests s'imposent pour voir le comportement serveur (temps de chargement, mémoire occupée,...). Dans une architecture trois tiers, c'est le SGBD qui a la charge de la disponibilité des données mais, avec seulement des fichiers XML, c'est au frontal Web à faire tout le boulot à chaque page (il existe des bases XML pour retrouver l'architecture trois tiers).

    Entre SVG et XSL-FO, l'approche n'est pas la même : SVG sera plus adapté pour une page avec une représentation graphique riche alors que XSL-FO sera plus adapté pour un document de plusieurs pages (type traitement de texte) avec entête/bas de page, ...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  5. #5
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Dans ce contexte "faible volume/plus de consultations que de mises à jour", la solution XML est viable, d'autant que XML est bien plus adapté qu'un SGBDR pour stocker des données hiérarchiques, du type de celles d'un organigramme. Pour l'interface d'administration, la solution SVG n'est peut-être par contre pas la plus pratique ni la plus performante ; un simple TreeView (à base de HTML et d'une pincée de Javascript) peut suffire.

    Pour la partie consultation, envisage, si possible, la mise en cache des documents SVG générés.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Citation Envoyé par alain.couthures
    Entre SVG et XSL-FO, l'approche n'est pas la même : SVG sera plus adapté pour une page avec une représentation graphique riche alors que XSL-FO sera plus adapté pour un document de plusieurs pages (type traitement de texte) avec entête/bas de page, ...
    Oui c'est pour cela que je pensais utiliser XSL-FO pour générer un document pdf, et une image SVG pour la représentation de l'arborescence dans le navigateur web.

    Citation Envoyé par alain.couthures
    1000 personnes, c'est déjà assez conséquent
    Citation Envoyé par GrandFather
    Dans ce contexte "faible volume/plus de consultations que de mises à jour"
    euh? alors pour vous c gros ou faible comme volume de données?

    Citation Envoyé par GrandFather
    Pour la partie consultation, envisage, si possible, la mise en cache des documents SVG générés.
    C'est ce que je pensais faire.

    Je vais faire quelques tests, taille de la taille mémoire alloué au script avec l'ouverture d'un fichier xml et récupération de données dans la base de données, ainsi que le temps que cela a mis.

    Merci
    Linux because rebooting is just for adding medias

  7. #7
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par psylox Voir le message
    euh? alors pour vous c gros ou faible comme volume de données?
    En soi, ce n'est pas tant la taille de la source qui importe que la méthode de parsing qui va être utilisée. Une source de 10 Mo chargée dans un arbre DOM peut gravement plomber les performances d'un serveur, surtout s'il est très sollicité. Parsé avec SAX, cela devient déjà plus raisonnable, l'occupation mémoire étant minimale.

    Tel que je comprends ton projet, le parsing de la source XML devrait être faite avec SAX et la construction du document SVG, dont les données sont un petit sous-ensemble de celles de la source, devrait être fait avec DOM. XSLT n'est peut-être pas la solution optimale pour cela, du moins côté serveur.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  8. #8
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Donc après des petits tests de rapidité de d'occupation mémoire des scripts (l'un mysql et l'autre xml), j'ai donc opté pour du xml. La taille du fichier xml n'excédaient pas 2mo.

    Citation Envoyé par GrandFather
    le parsing de la source XML devrait être faite avec SAX et la construction du document SVG, dont les données sont un petit sous-ensemble de celles de la source, devrait être fait avec DOM.
    Si j'ai bien compris ce qu'était SAX, le parseur lit le fichier mais ne le charge pas en mémoire, j'entends par la qu'il n'y a pas la construction de l'arbre DOM. En effet cela me semble bien pour créer la structure SVG au fur et à mesure du parcours du document.
    Par contre qu'entends tu pars "sont un petit sous-ensemble de celles de la source, devrait être fait avec DOM.", tu veux dire qu'il faut que je mix SAX et DOM ?(je ne connais pas SAX en php, pour le moment j'utilisais une classe composée d'un DOMDocument)

    Citation Envoyé par GrandFather
    XSLT n'est peut-être pas la solution optimale pour cela, du moins côté serveur.
    Donc il vaut mieux que je construise le SVG via php (SAX,...), pourtant cela me semblait plus lourd, non ?
    Du coup, pour ce qui est de construire le document pdf, XSL-FO est-il la meilleur solution, ou SAX+pdf serait mieux ?
    Linux because rebooting is just for adding medias

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2010, 12h14
  2. Choix d'une architecture pour un projet
    Par rveber dans le forum Windows
    Réponses: 5
    Dernier message: 30/01/2008, 21h44
  3. Conseils pour le choix d'une architecture
    Par GregyFun dans le forum Flash
    Réponses: 13
    Dernier message: 23/05/2007, 14h08
  4. Choix d'une architecture pour un serveur
    Par Bebert71 dans le forum Développement
    Réponses: 2
    Dernier message: 14/12/2006, 13h48
  5. [Architecture][Strategie] Client/Serveur Choix d'une architecture
    Par etiennegaloup dans le forum Général Java
    Réponses: 7
    Dernier message: 06/07/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo