Partage
  • Partager sur Facebook
  • Partager sur Twitter

AtomicServer - Software & Librairie

Construire une application client-serveur n'a jamais été aussi simple

    20 février 2020 à 15:12:06

    Bonjour à tous, j’espère que vous passez une excellente journée.


    Présentation & Genèse

    Je me présente, Grégoire TAJA, 21 ans, passionné par la tech depuis une dizaine d'année maintenant. J'ai toujours été horrifié de voir l'indécente quantité de code copier et collé chaque jour. De plus, l'hyperconnectivité de nos jours nous pousse à utiliser des architectures client-serveur couteuse à mettre en place, ou des WebService type REST, moins couteux, mais assez vite limité par l'inaptitude du WebService à notifier un client sans que ce dernier ne lui ait envoyé une requête. C'est de là que j'ai imaginé AtomicServer.

    AtomicServer, kézaco ?

    AtomicServer c'est plusieurs choses à la fois, le tout permettant la mise en place d'une architecture client-serveur, d'une manière simplifiée au maximum et customisable à souhait. Premièrement, un logiciel sert de base au serveur et va gérer toutes les communications avec le client. Deuxièmement, une librairie en Java pour le client permet de gérer les communications avec le serveur. Enfin une librairie pour le serveur, en Java également, vous donne la possibilité de développer vos fonctionnalités spécifiques au sein d'un plugin. Les plugins peuvent dépendre les uns des autres permettant une modularité maximum et ainsi éviter de dupliquer du code.

    Comment ça fonctionne ?

    Divers concepts ont été implémentés :

    • Les Commands : permet d’exécuter une commande personnalisée dans la console du serveur.
    • Les Request : semblable aux routes dans les WebService, permet au client de demander quelque chose au serveur.
    • Les Triggers : permet au serveur de notifier un client d’un évènement particulier.
    • Les Listeners : permet d'intercepter différents évènements tels que la connexion d'un nouveau client ou la réception d'un packet personnalisé.

    Avancement du projet

    Il s'agit comme vous pouvez le constater d'un projet assez conséquent. Les briques fonctionnelles de base sont présentes et vous pouvez d'ores et déjà l'expérimenter. Il y a cependant beaucoup de choses à faire avant d'en faire un projet exploitable en production :

    • Chiffrement des communications (tout est en claire pour l’instant).
    • Développement de la librairie client pour les principales plateforme (objectif Node et Android & iOS).
    • Améliorer la sécurité des plugins (conteneurisé les plugins dans leur dossiers respectif).
    • Mise en place de tests unitaires / tests de propriétés.
    • Amélioration du Wiki et de la doc.
    • Ajout de fonctionnalités en fonction des différents besoins des utilisateurs.

    Le projet est bien entendu open source (X11 License) et toutes les contributions sont les bienvenues.

    Liens utiles

    J’ai tenu à faire le site web & wiki en anglais, ma maîtrise de cette langue est loin d’être parfaite donc de nombreuses erreurs de langue sont sûrement présente sur le site, le wiki et la doc. C’est aussi pour cette raison que j’ai voulu présenter mon projet à une communauté française en 1er lieu.
    Le wiki étant ouvert, n’hésitez pas à faire des corrections / ajouts.

    Site web & Forum : https://www.atomicserver.io/
    Wiki : https://www.atomicserver.io/wiki
    Documentation : https://docs.atomicserver.io/
    Gitlab : https://gitlab.com/atomic-server/server


    Le wiki étant un peu léger pour débuter, je vous ai concocter un petit tuto vidéo en français :  https://www.youtube.com/watch?v=i2ltcitr86E

    Merci énormément d’avoir pris le temps de lire cette présentation, en espérant que le projet vous plaise.

    J’attends vos retour avec impatiences :)

    -
    Edité par La Gregance 20 février 2020 à 20:00:37

    • Partager sur Facebook
    • Partager sur Twitter

    AtomicServer, un moyen rapide pour crée une application Client-Serveur (Topic OpenClassrooms).

    AtomicServer - Software & Librairie

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown