Arbre de supervision OTP:
========================

 * ts_mon (gen_server)

 * ts_timer  (utilis par ts_client_rcv en global) (gen_fsm)

 * ts_client_sup -> ts_client, ts_client_rcv

 serveurs utiliss pour construire les messages:

 * ts_req_server (gen_server) permet de gnrer des messages  partir
   d'un fichier externe
 
 * ts_msg_server (gen_server) 

 * ts_user_server (gen_server) utilis par ts_launcher et jabber_*
   pour l'unicit des utilisateurs

 * ts_launcher (gen_fsm) lance les clients simuls (selon un processus de 
   Poisson).



Le principaux modules sont:
==========================

   1/ ts_launcher. Le processus matre qui va lancer les autres processus :

   1.1/ processus clients initiant les connexions TCP
      (module ts_client). Ces processus sont lancs par le processus
      matre avec un intervalle de temps suivant une distribution de
      probabilit exponentielle d'intensit paramtrable au dmarrage
      (unit = sec). Chaque processus client va lancer un processus
      pour recevoir et traiter les messages (module
      ts_client_rcv). Le nombre de clients total est galement
      paramtrable au dmarrage du processus matre (il s'agit bien du
      nombre de client total et non du nombre de clients simultans)

	  Warning: Tous les messages d'une session d'un utilisateur sont
	  construits par ts_launcher, juste avant de lancer le processus
	  client (dans une liste). Par consquent, si le nombre de
	  messages est trs grand, cela peut prendre BEAUCOUP de
	  mmoire. Pour raliser de trs long tests, if faut utiliser un
	  message de type 'dynamic' (voir jabber_dynamic et Jabber.txt
	  pour un exemple d'utilisation), qui sera construit  la vole
	  par le client autant de fois que ncessaire.

      Les paramtres importants rgissant le comportement des
      utilisateurs (pour Jabber) sont:

		 1/ taille des messages de chat en octets (250 par dfaut) 

		 2/ distribution de probabilit des intervalles de temps
		 entre chaque envoi de message de chat (loi
		 exponentielle). 

		 3/ Le nombre de messages de chat envoys par chaque
		 client. La valeur par dfaut est de 20. 

   1.2/ Le processus de monitoring (module ts_mon)

   2/ Un module pour grer les chantillons alatoire (module ts_stats)

   3/ Un module (ts_profile) gnrique pour grer les sessions des clients

   4/ Les modules spcifiques pour grer les diffrents protocoles (module
      jabber_online par ex.).
   
Comment rajouter un nouveau protocole ou tendre un existant:
============================================================

    Tout protocole doit implmenter l'API dfinie dans profile.erl, ie.
    doit implmenter les fonctions suivantes:
	 - get_client/2
	 - get_random_message/1


Rfrences:
==========

  - Erlang

  http://www.erlang.org/

  Design principles: 
		  http://www.erlang.org/doc/r7b/doc/design_principles/part_first.html

  - Jabber

  http://docs.jabber.org/general/html/protocol.html

  
  - modlisation stochastiques :

  Plus de dtails sur ce type de modlisation sont disponibles dans les
  documents suivants (dans le contexte du protocole HTTP)

    Nicolas Niclausse. Modlisation, analyse de performance et
    dimensionnement du World Wide Web. Thse de Doctorat, Universit
    de Nice - Sophia Antipolis, Juin 1999.
    http://www-sop.inria.fr/mistral/personnel/Nicolas.Niclausse/these.html

	Z. Liu, N. Niclausse, C. Jalpa-Villanueva & S. Barbier. Traffic
    Model and Performance Evaluation of Web Servers Rapport de
    recherche INRIA, RR-3840 (http://www.inria.fr/rrrt/rr-3840.html)


