▶︎ Les apprentissages critiques

  1. AC23.01 | Concevoir et développer des applications communicantes
  2. AC23.02 | Utiliser des serveurs et des services réseaux virtualisés ****
  3. AC23.03 | Sécuriser les services et données d'un système

AC23.01 | Concevoir et développer des applications communicantes

🚀 Preuves ressources

R3.05 : Programmation système

Durant cette ressource, j’ai appris à concevoir et développer des applications communicantes en m’appuyant sur les mécanismes de communication entre processus, entre threads et sur les communications réseau.

Tout d’abord, j’ai étudié la structure des applications multitâches, où plusieurs processus ou threads s’exécutent en parallèle. Un processus correspond à l’exécution d’un programme, tandis que les threads permettent de réaliser plusieurs traitements au sein d’une même application.

J’ai également appris les différents mécanismes de communication entre processus (IPC). Ces mécanismes permettent à plusieurs programmes d’échanger des informations tout en restant isolés en mémoire. Parmi ces solutions, on retrouve les fichiers, les pipes, les mémoires partagées ou encore les files de messages. Ces outils permettent de concevoir des applications capables de coopérer entre elles.

La ressource m’a aussi permis de comprendre les communications réseau. J’ai ainsi vu les protocoles TCP et UDP, qui permettent respectivement une communication fiable ou plus rapide mais non garantie. Ces protocoles sont utilisés via des sockets, qui constituent une interface permettant à deux applications d’échanger des données sur un réseau.

J’ai également appris le fonctionnement du modèle client-serveur, où une application serveur attend des connexions et fournit des services, tandis que le client initie la communication. Les opérations de base comme bind, accept et connect permettent d’établir ces échanges.

R4.01 : Architecture logicielle

Durant cette ressource, j’ai appris à concevoir des applications communicantes en m’appuyant sur des architectures logicielles adaptées et sur l’utilisation de services.

Tout d’abord, j’ai étudié différents styles architecturaux permettant de structurer une application communicante. Parmi eux, l’architecture client-serveur joue un rôle central, car elle repose sur un échange de données entre un client et un serveur via le réseau. Ce modèle est largement utilisé pour les applications Web aujourd’hui.

J’ai également découvert les architectures distribuées, notamment les microservices, où une application est composée de plusieurs services indépendants qui communiquent entre eux. Chaque service possède sa propre API et peut être développé et déployé séparément, ce qui permet d’améliorer la modularité, la maintenabilité et le passage à l’échelle.

La ressource m’a aussi permis d’apprendre à concevoir et utiliser des API REST, qui représentent aujourd’hui un standard pour les applications communicantes. Le modèle REST repose sur une architecture client-serveur et sur l’utilisation de protocoles Web comme HTTP pour effectuer des opérations sur des ressources (GET, POST, PUT, DELETE). Cette organisation permet un découplage complet entre le client et le serveur, facilitant le développement et l’évolution de l’application.

🚀 Preuves SAE

S4.01 : Développement d’application complexe

Lors de cette SAE, j’ai été amené à concevoir et développer une application communicante en mettant en place une architecture complète permettant l’échange de données entre plusieurs composants.

Le projet reposait en effet sur une architecture client-serveur, avec une séparation entre le frontend et le backend. Le frontend permettait l’interaction avec l’utilisateur, tandis que le backend assurait le traitement des données et la gestion de la logique métier. Ces deux parties communiquaient entre elles via des requêtes, ce qui m’a permis de comprendre concrètement comment mettre en place des échanges dans une application communicante.