-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
https://nodejs.org/ / http://requirejs.org/ Plateforme Javascript permettant un mode de programmation événementiel "StateLess" et pensé pour les applications modulables nécessitant une montée en charge importante.

- Le Master se chargera de "booter" virtuellement les serveurs A & C requis.
- Le Connecteur établira une connexion permanente entre le client (Au travers de NGinx) et le serveur Applicatif, via des appels RPC. Un "Keep-Alive" sauvegardera à intervalles régulier le statut de l'utilisateur connecté, et les serveurs Applicatifs associés.
- Le serveur d'Application enfin effectuera les traitements logiques requis par les actions utilisateur.
http://expressjs.com/ Mini-framework web NodeJs qui va permettre de gérer entre autres les Routes de notre application.
http://socket.io/ Bibliothèque Javascript qui permet de faire de la communication en temps réel entre le client et le serveur, via des "sockets". Socket.io détermine pour chaque client quelle est la méthode de communication temps réel la plus adaptée, et essaiera "d'améliorer" le type de connexion, en fonction de ce que le client est capable d'accepter. Par exemple, si le navigateur ne support pas WebSocket mais que Flash est installé, socket.io passera par Flash pour faire de la communication temps réel. Sinon, il peut utiliser d'autres techniques comme l'AJAX Long Polling.
Types de connexions : WebSocket / Adobe Flash Socket / AJAX long polling / AJAX multipart streaming / Forever Iframe / JSONP Polling
https://www.mongodb.org/ Système de gestion de base de données orientée documents, qui permet de stocker des objets sous format JSon. Vu qu'il n'y a pas de structure définie, on peut stocker tout et n'importe quoi, il faut donc faire attention à bien traiter les données récupérées. MongoDb Servira ici de "ColdStorage", soit l'ensemble des données applicatives (Comptes clients, messages envoytés, etc...) qui ne doivent surtout pas être perdues en cas de crash de la plateforme.
http://redis.io/ Système de gestion de base de données clef-valeur scalable, très hautes performances. Redis Servira ici de "HotStorage", soit l'ensemble des données qui peuvent être perdues en cas de crash de la plateforme (Données de connexion, statut actuel des utilidateurs et connecteurs, etc...).
