Introduction
La programmation distribuée permet de construire des applications fonctionnant
sur plusieurs machines reliées ensemble sur un réseau et communicant entr elles
pour accomplir une tâche.
Le modèle sous-jacent est celui de la programmation parallèle
à mémoire distribué. Les programmes
programmes locaux ou distants communiquent via un médium 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. Un des buts principaux de la programmation
distribuée est d'avoir une répartition adéquate selon l'application
développée.
Le langage Objective CAML offre, via sa bibliothèque Unix, différentes
possibilités de communication entre programmes. Les prises de
communications (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 clients-serveurs 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.