summaryrefslogblamecommitdiff
path: root/reseau.tm
blob: 9e3e737be42409838289c97b3e8fce68393c38bf (plain) (tree)








































































                                                                             
<TeXmacs|1.0.7.21>

<style|generic>

<\body>
  Id�e de base : utiliser stdin/stdout pour la communication et avoir un
  machin qui communique � c�t�. En mode client : faire un socket.connect puis
  faire un dup2 pour que stdio redirige vers le socket. Serveur : appli �
  part.

  <strong|Protocole Manager-Application.>

  <em|Messages application.>

  <\itemize>
    <item>Emit(task, IO?)

    <item>Get(chan-id, cont)

    <item>Put(chan-id, data)

    <item>Request-task(IO?)

    <item>Emit-result
  </itemize>

  <em|Manager application.>

  <\itemize>
    <item>Give-task(task, iO?)

    <item>Give-task-get(data, cont, IO?)
  </itemize>

  <strong|Protocole Manager-Manager.>

  same as manager-application, mostly

  <strong|Protocole Manager-Pool.>

  <\itemize>
    <item>manager serve : connect to pool, send Serve

    <item>manager use : connect to pool, send NeedHelp(task name, my addr)

    <item>pool relay : send NeedHelp(task name, my addr)
  </itemize>

  <strong|Interface.>

  On lance un pool-server sur une machine :

  <verbatim|tulipier$ ./manager --pool>

  Puis on lance plein de travaillers :

  <\verbatim>
    cargo$ ./manager --serve tulipier

    tilleul$ ./manager --serve tulipier

    thuya$ ./manager --serve tulipier
  </verbatim>

  On �crit un code <verbatim|mon_app.ml> qui utilise la biblioth�que
  <verbatim|Kahn_sock.Sock_dist>. On compile, et on s'assure que l'on peut
  appeller le binaire avec <verbatim|./mon_app> sur toutes les machines qui
  sont en mode <verbatim|--serve>. Ensuite, on fait :

  <verbatim|tulipier$ ./manager --run ./mon_app --use tulipier>

  \;
</body>