Journal Cherche Conseil de Developpeurs

Posté par  (site web personnel) .
Étiquettes : aucune
0
20
juin
2003
Salut Journal,

Voila la problematique :

Je developpe une application de gestion electronique de documents et je me heurte a une decision a prendre sur la strategie de stockage de mes documents...

Voila les solutions qui germent dans mon esprit (sachant que j'ai au lancement du projet un historique de 500 000 documents au format png, tiff et pdf a injecter et que chaque fichier fait en moyenne 45ko) :

1. Je creer un ensemble de gros fichiers (ex 650Mo pour graver facilement) qui contiennent les index ainsi que les images de mes documents.

Avantages :
- J'archive facilement mes données
- Tout est regroupe dans un unique fichier

Inconvenient :
- Plus de code a "pissser" ;)
- Temps de reponse a etudier
- Reinvention de la roue car perte des fonctionnalites de l'utilisation d'une base SQL pour traiter mes index

2. Utiliser une base SQL pour les index et des repertoires contenant mes fichiers images lies par un lien type chemin dans ma base de données

Avantage :
- Rapidite de recherche des index grace a l'utilisation d'un moteur SQL teste et eprouve

Inconvenients :
- Comment je peux appliquer des droits sur l'acces aux images sachant qu'il se trouve dans un repertoire et que tout le monde n'a pas les memes droits de lecture
- Est ce que le systeme de fichier (ReiserFS v3.x) peut gerer des millions d'entrees (10-11-12 millions) facilement

3. Je ne sais pas......:(

Voila mon probleme... Si quelqu'un a des idees ou des retours d'experiences sur ce genre de problemes....

Merci d'avance,

Jeremy
  • # Re: Cherche Conseil de Developpeurs

    Posté par  . Évalué à 2.

    etant entrain de faire a peu près la même chose, j'ai un peu réfléchi au truc -bien que je n'ai pas réflechi au 2) car le but du projet impose l'utilisation d'un autre système qu'un sgbd..)
    sinon le stockage des fichiers est stocké dans diff"rents répertoires -un par base de documents, ç l'intérieurs desquels sont stocké les documents appartenant à la base. chaque base à un fichier .nombase.xml suivant le chémat mets -schéma prévu pour la gestion de documents éléctronique- ce schéma décrit une structure d'un coté cette structure en div, comporte un div racine -la base-, ce dernier comportant des fptr (pointeur sur fichier) et des sous div. ces sous div sont en fait des subdivisons logiques de la base, regroupant des documents liés entre uex pour quelques raison que ce soit -ses sous divs comprtant des sous divs et des fptr....- . Une autre section du fichier xml -pas obligatoire mais existe dans le schéma et utile pour ce que je dois faire comporte certains infos relatives au ficheirs physique -taille, mimetype,...-.
    Donc nous avons une structure par blocs de fichiers contenu dans une collections -base-.
    dans le répertoire supérieure à la base se trouve un fichier .security.xml, suivant une dtd à moi, où se trouve une liste d'utilisateurs et leurs droits sur les basesou subdivisions logiques, p.e:

    <collection read="y/n" write="y/n" delete="y/n" update="y"/n" name="base ou base/souscolleclogique/souscolleq..."/>
    ce tag collection se répétant autant de fois que l'on veut, si collection pas présente aucun droits.

    l'attribute admin correspond à un utilisateur, si y, pouvant créer des bases et autres utilisateurs. les valeurs par défaut d'admin et droits read,delete... sont n par défaut.

    Ainsi en voulant accéder à un fichier précis -retrouvable par xpath par exemple et une requété xpath bien pensé retournant le cemin base/souscollec/...- ou une collection/souscollection précise, il me reste à comparer lesdroits d'utilisateurs sur la collection voulu -et donc fichiers contenu- et l'action demandé par l'utilisateur pour savoir si je dois accéder à la requête.
    Les droits se font donc par blocks de fichiers pas par fichiers.
    Le ficheir .base.xml permettant d'avoir un index utilisable par les différents outils XML disponibles..
    Cela marche bien et sur mes tests -par 11 millions par base -enfin pas encore, car cela sera pe possible- cela est assez rapide -si tu n'inclue la partie de description de fichier -taille, mimetype....- le fichier xml est en fait pas "gros"- tout est relatif- et donc la recherche est assez rapide..

    Pour ta méthode 2, en y réfichissant assez rapidement: tes fichiers étant inclus dans un index fait dans ta base SQL, tu leur met un identifiant unique -générer automatique- tu créer un table d'utilisateur, puis un table de liens du type :idficheir-iduser (clé primaire couplant deux clés étrangéres), droit lecture, droit écritue... ces derniers ayant une valeurs booléenens par exemple..
    Pe c'ets pas opitmum je sais pas c une réflexion rapide sur le tas.

    Blackshack
    p.s.: si ton truc est en GPL -ou license libres, vu quon fait a peu prés des trucs équivalents je voudrais bien jeté un coup d'oeil, vice versa bien sur si cela t'intéresse, c pas à disposition pulic pour l'instant donc je donne pas d'url, mais demande le moi
  • # Re: Cherche Conseil de Developpeurs

    Posté par  . Évalué à 1.

    re moi,
    pour reiserfs, il me semble que justement il est trés performant quand il s'agit de grands volumes de petits fichiers -petits à que lniveau???-
    • [^] # Re: Cherche Conseil de Developpeurs

      Posté par  (site web personnel) . Évalué à 1.

      Il sera "normalement" sous licence GPL.

      Je suis en cours de redaction de mes docs preparatoires au developpement donc des qu'elles seront terminees pas de Pbs.

      Le nom c'est XYGed que tu pourras trouver sur sourceforge... Pour l'instant il n'y a rien mais j'espere demarrer le dev a proprememnt parle dans la premiere semaine de juillet pour une version beta en septembre... En deux mois j'espere avoir un debut de moteur a devoiler a mes clients...

      A++

      JS
  • # Re: Cherche Conseil de Developpeurs

    Posté par  . Évalué à 2.

    Si tu optes pour un index SQL (ce que je pense plus performant et plus simple à manipuler que du XML + XPath), tu peux te base sur l'excellent SQLite qui est un moteur SQL en C et où la database est stockée dans un fichier disque (donc pas de serveur, etc... juste une librairie à linker).

    En fait, ton problème dépends aussi très largement de si ton archive doit être "juste une archive" (read-only) ou bien si elle doit "vivre dans le temps".

    Si elle est figée, tu peux faire ton index SQL et en parallèle grouper les fichiers dans des gros blobs jusque 650 Mo, en stockant dans ta database pour chaque fichier le nom de son "fichier conteneur" et son offset et sa taille.

    Si elle doit vivre, il vaut mieux à mon avis faire appel au filesystem comme tu le suggères.

    A+
  • # Re: Cherche Conseil de Developpeurs

    Posté par  . Évalué à 2.

    pour de la gestion documentaire et des métadonnées, je pense Zope.

    Les 21 Go de données peuvent très bien rester sur le disque mais l'indexation et les métadonnées sont sockées dans la ZODB.

    avantages :

    - framework qui t'évite de réinventer la roue et de pisser du code comme tu dis

    - moteur d'indexation et de recherche sans effort avec le ZCatalog

    - gestion fine des rôles et des permisssions, indépendantes de celles du système

    - sans compter tous les outils pour faire une appli web (page templates, script, ...)

    bon les inconvénients, c'est que tu ne veux pas forcément d'une appli web.
    • [^] # Re: Cherche Conseil de Developpeurs

      Posté par  (site web personnel) . Évalué à 1.

      La partie numerisation (car les flux papier entrant sont numerises et integres) est sous windows (car je ne sais pas comment utiliser les drivers ISIS du scanner sous Linux:(....) est dois pouvoir communiquer avec la base de données qui stocke les index.

      La ZODB possede-t-elle une API interrogeable a partir d'un programme Win32 (ou Win64;)....???

      Est Zope est entierement sous licence GPL???

      Merci d'avance....

      Jeremy
      • [^] # Re: Cherche Conseil de Developpeurs

        Posté par  . Évalué à 1.

        bordel, mais y'a autre chose que la GPL dans la vie !!!

        leur licence, ZPL, est tout à fait open source et compatible avec la GPL.

        Passons... pour ton histoire, ben une appli Zope est derrière un serveur HTTP/FTP/WebDAV/XML-RPC donc déjà y'a de quoi s'amuser :)

        Sinon tu peux peut-être ajouter les modules DCOM de Python à Zope (je ne pense pas qu'ils y soient) et écrire des produits ou des scripts qui les utilsent. Je ne m'aventurerai pas plus sur ce point.

        Tu ne va pas manipuler la ZODB mais des objets accessibles par les protocoles susnommés en externe et par une programmation objet qui roulaize en interne. Ces objets verront leurs données stockées dans la ZODB de façon transparente pour le programmeur, avec une règle spéciale pour les documents qui seront sur le système de fichiers. Ou alors tout stocker sur le disque...

        la ZODB n'est qu'un backend parmi d'autres possibles (stockage dans des SGBDR par exemple) ou alors la ZODB est l'interface et c'est derrière elle qu'il y a les différents backends (fichier Data.fs, SGF, SGBDR), je sais plus.
        • [^] # Re: Cherche Conseil de Developpeurs

          Posté par  (site web personnel) . Évalué à 1.

          Desole pour le GPL mais je n'allais pas noter est ce que Zope est sous licence GPL,Berkeley licence, XConsortium licence, LGPL..............

          J'aurais put dire : Zope est-il entierement Open Source ? :)

          Non sinon je vais regarder un peu comment fonctionne Zope et le python.....

          A++ et Merci

          Jeremy
      • [^] # Re: Cherche Conseil de Developpeurs

        Posté par  . Évalué à 1.

        re re moi
        Plus tu parles de ton projet, plus j'ai l'impression que l'on trravaille sur des trucs proches -automatisation de la numérisation, traitement des images par chaînes automatiques -dont ocr- stockage, archivage automatique sur CD-Rom -robot de gravure-, insertion dans systeme de gestion de banques d'images, mise à disponibilités public ou protégé par interface web ou logiciels dédiés.
        tu bosses où??
        • [^] # Re: Cherche Conseil de Developpeurs

          Posté par  (site web personnel) . Évalué à 1.

          La GED est une problematique qui est etudiee par beaucoup de SSII, de societe privee ou d'administration...

          La dematerialisation est le mot a la mode dans l'administration ;)...

          Je bosse a Casablanca au Maroc. J'ai ouvert le plus grand CyberCafe d'Afrique Giga.Net et je lance une activite de service Giga.Net Engineering qui offre des services de mise en place de systemes d'information a moindre cout (pays en voie de developpement oblige ...)

          Ce projet de "moteur" de GED a pour but :

          - D'etre un moteur polyvalent livre avec un toolkit de creation d'interface utilisateur. Le logiciel devra s'adapter a tout les corps de metier PME-PMI-Grand Compte
          - Comme indique dans le message source le nombre de documents a gerer peut etre tres tres important
          - Les programmes clients peuvent etrev ecrits en tout langage a partir du toolkit (PHP, Java, Pyhon, VB, Delphi, C....)
          - Le moteur integrera une gestion de workflow qui permetrra aux operateurs de gerer des "corbeilles numeriques"
          - Chaque document aura un systeme de droit qui autorisera la lecture, la prise de note, le transfert, l'archivage, le faxing, le mailing, l'impression, la sauvegarde en local....

          Enfin je suis en train de mettre au point le dossier technique complet qui me permettra de mettre les developpeurs sur le projet...

          Voila....

          Toi je crois que tu bosses au CNRS: stagiaire ou salarie???

          A++

          Jeremy
          • [^] # Re: Cherche Conseil de Developpeurs

            Posté par  . Évalué à 1.

            indépendant, je leur facture mes services
            • [^] # Re: Cherche Conseil de Developpeurs

              Posté par  (site web personnel) . Évalué à 1.

              Passe moi ton adresse mail et on peut echanger les donnees de nos problemes...;

              Ta date de livraison est pour quand??
              • [^] # Re: Cherche Conseil de Developpeurs

                Posté par  . Évalué à 2.

                bin là on a le temps + ou - , en fait ce truc c pour remplacer un existant, le remplacement doit s'effectuer pas avant l'année prochaine.
                Mais je fais d'autres trucs pour eux actuellement, tjrs dans le cadre des "bibliothèques numériques" -d'autant plus que maintenant ils ont remporté un appel d'offre du ministère de la culture sur la numérisation de revues de SHS, il y a bcp de boulot pour les 4 ans à venir-
                Donc la livraison e nsoit c pas pressé, d'autant que officiellement, je le fais sur mon temps car cela m'intéresse, et qd le moment sera venu je le sorirai des cartons.
                Le truc a remplacé, SGBI Transvision, qu'ils avait développé il y a plus de dix ans a besoin d'être remis à jour, donc premiére année il y aura maintenance dessus, avant replacement -par contre la maintenance c l'horreur, je doute pas des compétences des mecs parce qu'ils on fait des choses réelement inovante et performante -dans ca ou d'autres choses- mais le code source c l'horreur: un arboirescence à au - 16 niveaux des répertoires entièrement recopié dans d'autres répertoires, du code java, c++, SGBIML -un SGML qu'ils ont développé pour le systeme de gestion de banque d'image-,..., mélangé dans chaque répertoire.... par forcément tout réelement commenté -en générale que certaines fonctions importantes le sont ,le reste non... tout le reste du même genre.
                Bon cela fonctionne sous solaris -système cible au départ- et Linux, mais j'ai tenté la recompilation j'ai mit deux semaine sur le configure et le makefile à le modifié, corrigé le bordel : optimisé pour se compilé sur mysql de 95, impossiblke de le compiler sur une version actuelle.... même le make actuel il le voulait pas ...
                l'horreur
                sinon mon adresse :
                atalargoATnerimDOTnet ou atalargoATmythologikDOTcom ou florent.ruard-dumaineATmomDOTfr -mail au cnrs om je suis tout les jours toutes la journée en ce moment
                • [^] # Re: Cherche Conseil de Developpeurs

                  Posté par  (site web personnel) . Évalué à 1.

                  OK,

                  Donc du boulot en perspective,

                  De mon cote le premier client est aussi un ministere et j'ai prevu de leut faire soir une demo papier (bof bof) soit une demo sur des documents numerises pour Septembre.

                  J'avance dans ma phase papier et je ne me presse pas pour lancer le developpement car je n'ai pas envie de reinventer la roue a la moindre occasion...

                  Je bosse et je t'envoie une description du projet on pourra s'echanger

                  1. des idees
                  2. du code
                  3. de la main d'oeuvre...

                  A++

                  Jeremy
  • # Re: Cherche Conseil de Developpeurs

    Posté par  . Évalué à 1.

    J'ai une excellente idée à te soumettre ! mais tu dois avoir de bonnes notions en matiere d'administration reseau sous linux. tu dois aussi avoir une maitrise parfaite de la peche aux sardines si tu veux survivre au maroc !! En fait une solution toute simple : demande à de vrais professionnels, j'en connait de tres bons, les meilleurs meme ! Par sympathie envers toi je te donne un bon tuyau, il vaut son pesant d'or : www.entr-amis.com ;-)))
  • # Re: Cherche Conseil de Developpeurs

    Posté par  . Évalué à 1.

    Je suis intéressé par le projet.J'ai en effet un besoin de ce type pour un projet personnel.Tout le processus est sur papier : je ne suis pas développeur.Par contre passioné par linux je me tourne aujourd'hui vers la communauté du libre pour échanger des idées et obtenir de l'aide. Ton projet m'intérresse n'hésite pas à me contacter pour échanger des idées.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.