Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer une architecture Clients / Serveur

Sujet résolu
    20 avril 2021 à 17:04:52

    Bonjour à tous,

    Actuellement étudiant en Data Science, je suis aujourd'hui en stage dans un laboratoire de recherche qui aimerait mettre en place une architecture clients / serveur pour y stocker les données utilisées. Je possède des compétences en programmation, en analyse de données et en machine learning (R, Python), en Markdown, un peu de HTML/CSS, de bonnes notions en bases de données relationnelles et en SQL, mais je n'ai jamais été confronté à ce genre de projet. Je me permets donc de solliciter votre aide à propos de quelques interrogations. 

    Permettez-moi avant tout de vous expliquer le contexte :

    • Aujourd'hui les différents acteurs du laboratoire travaillent localement.
    • Ils ont chacun leur sujet de recherche, qui interfère parfois avec celui d'autres personnes.
    • Les données de chacun sont stockées localement sur PC ou disques durs externes, et chacun classe les données à sa manière. 
    • Les données sont issues de ressources en ligne en open data, ou sont produites par le laboratoire. 
    • Les données sont très variées : on va retrouver du .xlsx, de l'image, du .pdf, du .shp, des rasters, du .geojson, .csv, .txt, scripts de code, et j'en passe.
    • La fréquence de récolte et de création des données et la taille des données sont quasi aléatoires selon les projets.
    ...Et maintenant les objectifs :
    • L'objectif principal est de stocker ces données sur un serveur distant de manière sécurisée afin que les données ne soient plus réparties sur chaque ordinateurs localement, en se mettant d'accord sur une hiérarchie et une manière de classification.
    • L'idée est que les chercheurs doivent pouvoir accéder aux données à distance, télécharger les éléments qui les intéressent pour travailler, puis uploader de nouvelles données.
    • Il faudra avoir un système de classement, de métadonnées et de tags sur les données avec un moteur de recherche, afin de retrouver des fichiers particuliers (un peu à la manière de https://www.data.gouv.fr/)
    • Idéalement, il faudra mettre en place un système de profils utilisateurs : certains profils pourront simplement consulter les données tandis que d'autres pourront modifier les données, en rajouter, en supprimer.
    • Enfin, le laboratoire aimerait si possible récupérer de manière automatique les données disponibles en open data et les stocker directement dans le serveur. 

    Pffffiou ! :waw: Ca fait beaucoup, je sais ! Si je ne vous ai pas perdu ici, merci d'être encore là ;). Le fait est que mes connaissances en bases de données se limitent au SQL classique et aux bases de données relationnelles. Et pour tout vous dire, je n'ai absolument aucune idée de comment mettre en place tout cela...  Rassurez-vous, j'ai 6 mois pour mettre en place correctement cette architecture. Il s'agit donc pour moi dans un premier temps de découvrir les différentes solutions existantes et de faire un état de l'art. Je me permets donc de solliciter votre aide à propos des questions suivantes :

    • Première question peut-être naïve : par où démarrer tout simplement ?
    • Je n'imagine pas du tout comment pourraient être stockés les éléments, s'agirait-il de simples lignes dans une table faisant référence à de réels fichiers stockés dans un dossier ? (Dans ce cas, à quoi bon utiliser une table ?) 
    • Vers quelles technologies dois-je me rapprocher ?
    • Quels sont les domaines dans lesquels il faut que je creuse ? (Réseau ? Web ?)
    • Quelles sont les étapes de mise en place d'un serveur ? Est-ce au prestataire qui fournit le serveur de s'en occuper ?

    Un grand merci par avance si vous pouvez m'éclairer et me donner déjà quelques pistes solides. N'hésitez pas à me suggérer tout ce qui vous semble plausible, découvrir une nouvelle technologie ou un nouveau langage de 0 ne me fait pas peur :p.

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2021 à 17:20:21

      Bonjour,

      PaulKw a écrit:

      Pffffiou ! :waw: Ca fait beaucoup

      Oui :D

      Première chose, sais-tu ce qu'est une GED (Gestion Electronique des Documents) ? Car là il me semble que l'on parle exactement de cela ... Peut-être regarder cela avant de réinventer la roue non ?

      Après, l'aspect collaboratif semblant très important ici, je pense que regarder du côté des clouds privatifs serait intéressant. Par exemple NextCloud me paraît être une bonne solution : https://nextcloud.com/

      Ton boulot serait alors plutôt de développer un module NextCloud pour intégrer l'opendata nécessaire ...

      Sinon, le laboratoire en question n'utilise pas Office 365 avec un serveur SharePoint ? Pas assez riche ?

      Déplacement vers un forum plus approprié

      Le sujet est déplacé de la section Base de données vers la section Discussions développement

      -
      Edité par Benzouye 20 avril 2021 à 17:21:20

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        21 avril 2021 à 9:17:59

        Bonjour,

        Merci pour ta réponse :D

        Alors je ne connaissais absolument pas la GED, mais je vais me renseigner, merci ! J'ai déjà entendu parler de Nextcloud, je vais donc me renseigner là-dessus également. Le labo n'utilise pas Office 365, ils n'ont quasi pas de logiciels propriétaires donc pas l'idéal je pense. 

        Quand tu dis "développer un module NextCloud", de quoi s'agit-il exactement ? En quels langages le développement se ferait-il ?

        Merci d'avoir déplacé le sujet au bon endroit !

        • Partager sur Facebook
        • Partager sur Twitter
          21 avril 2021 à 11:55:00

          NextCloud est un logiciel OpenSource développé en PHP et tourne avec une base de données MySQL. Il est tout à fait possible de l'installer sur un serveur web du laboratoire (à voir ce que vous avez de disponible chez vous avec l'admin réseau/serveur).

          Pour la partie OpenData, j'imagine le développement d'une extension de NextCloud (https://nextcloud.com/developer/) pour assurer les fonctionnalités attendues. J'ai cru comprendre qu'il fallait récupérer des documents selon une URL data.gouv.fr et les intégrer dans le cloud ... peut-être à l'aide d'une API REST ?

          Cela peut se faire en PHP, la documentation de NextCloud est assez bien faite pour démarrer et approfondir ;)

          -
          Edité par Benzouye 21 avril 2021 à 11:55:40

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

          Créer une architecture Clients / Serveur

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown