Précédent Index Suivant

Introduction

La programmation répartie permet de construire des applications fonctionnant sur plusieurs machines reliées ensemble sur un réseau et communiquant entre elles pour accomplir une tâche. Le modèle sous-jacent est celui de la programmation parallèle à mémoire répartie. Les programmes locaux ou distants communiquent via un média qui correspond à un protocole réseau. Le plus connu et le plus utilisé d'entre eux est IP (Internet protocol) et ses surcouches TCP et UDP. À partir de ces communications de bas niveau, de nombreux services sont bâtis sur le modèle client-serveur où un serveur attend des requêtes de différents clients, les traite et envoie les réponses à ces demandes. On peut citer le protocole HTTP permettant la communication entre navigateur et serveur Web. La répartition des tâches entre clients et serveurs correspond à différentes architectures logicielles.

Le langage Objective CAML offre, via sa bibliothèque Unix, différentes possibilités de communication entre programmes. Les prises de communication (sockets en anglais) permettent la communication selon le protocole TCP/IP et UDP/IP. Cette partie de la bibliothèque Unix est portée sous Windows. La possibilité de dupliquer des processus <<lourds>> (Unix.fork) ou de créer des processus légers (Thread.create) permet de réaliser des serveurs acceptant plusieurs requêtes en même temps. À partir de ces couches de bas niveau, il est aisé de construire des client-serveur universels paramétrés par une fonction de traitement. Enfin, un point important pour la création de nouveaux services est la définition d'un protocole propre à l'application.


Précédent Index Suivant