Commit 30d7ecf0 authored by 's avatar
Browse files

changé mode de demande de requète

parent 81f7c618
......@@ -256,7 +256,8 @@ if __name__ == "__main__":
pass
while True:
time.sleep(random.randint(1,2))
input("press return to request\n")
#time.sleep(random.randint(1,2))
client.to_request()
while not client.can_acquire():
time.sleep(random.randint(1,2))
......
......@@ -49,7 +49,7 @@
\@writefile{loa}{\contentsline {algorithm}{\numberline {5}{\ignorespaces R\IeC {\'e}ception d'un message \texttt {VAL} par le site $i$ envoy\IeC {\'e} par le site $j$ accompagn\IeC {\'e} de la date $T_m$}}{5}{algorithm.5}}
\newlabel{algoOnAck}{{5}{5}{Réception d'un message \texttt {VAL}}{algorithm.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Impl\IeC {\'e}mentation avec RabbitMQ}{6}{section.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Impl\IeC {\'e}mentation par le m\IeC {\'e}canisme d'exchange}{6}{subsection.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Impl\IeC {\'e}mentation}{6}{subsection.3.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Connexion au serveur RabbitMQ et communication avec les voisins}{6}{subsubsection.3.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.2}D\IeC {\'e}finition des variables de l'algorithme de Lamport}{7}{subsubsection.3.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.3}Publication d'un message}{7}{subsubsection.3.1.3}}
......@@ -60,10 +60,9 @@
\@writefile{lof}{\contentsline {chapter}{3. Impl\IeC {\'e}mentation avec RabbitMQ}{12}{subsubsection.3.1.7}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Terminaux ex\IeC {\'e}cutant le script \setlength {\fboxsep }{2pt}\color@box {}{imtaInlineCodeBackground}{\mintinline [breaklines]{bash}{lamport_node_exchange.py}}}}{12}{figure.1}}
\newlabel{fig:exchange1}{{1}{12}{Terminaux exécutant le script \imtaInlinecode {bash}{lamport_node_exchange.py}}{figure.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Acquisition de la ressource par le site 4}}{13}{figure.2}}
\newlabel{fig:exchange2}{{2}{13}{Acquisition de la ressource par le site 4}{figure.2}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Acquisition de la ressource par le site 4}}{12}{figure.2}}
\newlabel{fig:exchange2}{{2}{12}{Acquisition de la ressource par le site 4}{figure.2}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Demande de l'acc\IeC {\`e}s \IeC {\`a} la ressource par le site 1}}{13}{figure.3}}
\newlabel{fig:exchange3}{{3}{13}{Demande de l'accès à la ressource par le site 1}{figure.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Lib\IeC {\'e}ration de la ressource par le site 4 et acquisition par le site 1}}{14}{figure.4}}
\newlabel{fig:exchange4}{{4}{14}{Libération de la ressource par le site 4 et acquisition par le site 1}{figure.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Impl\IeC {\'e}mentation par le m\IeC {\'e}canisme de topic}{14}{subsection.3.2}}
This diff is collapsed.
......@@ -9,7 +9,7 @@
\BOOKMARK [5][-]{paragraph.2.1.2.2}{R\351ception d'un message FRE}{paragraph.2.1.2.1}% 9
\BOOKMARK [5][-]{paragraph.2.1.2.3}{R\351ception d'un message VAL}{paragraph.2.1.2.1}% 10
\BOOKMARK [1][-]{section.3}{Impl\351mentation avec RabbitMQ}{}% 11
\BOOKMARK [2][-]{subsection.3.1}{Impl\351mentation par le m\351canisme d'exchange}{section.3}% 12
\BOOKMARK [2][-]{subsection.3.1}{Impl\351mentation}{section.3}% 12
\BOOKMARK [3][-]{subsubsection.3.1.1}{Connexion au serveur RabbitMQ et communication avec les voisins}{subsection.3.1}% 13
\BOOKMARK [3][-]{subsubsection.3.1.2}{D\351finition des variables de l'algorithme de Lamport}{subsection.3.1}% 14
\BOOKMARK [3][-]{subsubsection.3.1.3}{Publication d'un message}{subsection.3.1}% 15
......@@ -17,4 +17,3 @@
\BOOKMARK [3][-]{subsubsection.3.1.5}{Acquisition de la ressource par un processus utilisateur}{subsection.3.1}% 17
\BOOKMARK [3][-]{subsubsection.3.1.6}{Utilisation du n\234ud avec un thread consommateur}{subsection.3.1}% 18
\BOOKMARK [3][-]{subsubsection.3.1.7}{Communication entre processus}{subsection.3.1}% 19
\BOOKMARK [2][-]{subsection.3.2}{Impl\351mentation par le m\351canisme de topic}{section.3}% 20
No preview for this file type
......@@ -3,7 +3,7 @@
\usepackage{imta_core}
\usepackage{imta_extra}
\usepackage[francais]{babel}
\usepackage[french]{babel}
% Pseudo-code
\usepackage{amssymb}
......@@ -153,7 +153,7 @@ Lorsque le site reçoit un message \texttt{REQ}i du site $j$, il envoie un messa
\begin{algorithm}[H]
\caption{Réception d'un message \texttt{REQ} par le site $i$ envoyé par le site $j$ accompagné de la date $T_m$}\label{algoOnReq}
\begin{algorithmic}[1]
\Procedure{Réception d'un message \texttt{REQ(T_m,j)}}{}
\Procedure{Réception d'un message \texttt{$REQ(T_m,j)$}}{}
\State $Queue.append(REQ(T_m,j))$
\State $Times_i[j] = T_m$
\State $Envoyer$ $(ACK, T_i)$ $au$ $site$ $j$
......@@ -168,7 +168,7 @@ Lorsque le site $i$ reçoit un message \texttt{FRE} du site $j$, il synchronise
\begin{algorithm}[H]
\caption{Réception d'un message \texttt{FRE,j} par le site $i$ envoyé par le site $j$ accompagné de la date $T_m$}\label{algoOnRel}
\begin{algorithmic}[1]
\Procedure{Réception d'un message \texttt{FRE(T_m, j)}}{}
\Procedure{Réception d'un message \texttt{$FRE(T_m, j)$}}{}
\State $Queue.remove_first()$
\State $Times_i[j] = T_m$
\EndProcedure
......@@ -182,7 +182,7 @@ Lorsque le site $i$ reçoit un message \texttt{FRE} émis par le site $j$ à $T_
\begin{algorithm}[H]
\caption{Réception d'un message \texttt{VAL} par le site $i$ envoyé par le site $j$ accompagné de la date $T_m$}\label{algoOnAck}
\begin{algorithmic}[1]
\Procedure{Réception d'un message \texttt{VAL(T)}}{}
\Procedure{Réception d'un message \texttt{$VAL(T_m,j)$}}{}
\State $Times[j] = T_m$
\EndProcedure
\end{algorithmic}
......@@ -194,19 +194,14 @@ Lorsque le site $i$ reçoit un message \texttt{FRE} émis par le site $j$ à $T_
% IMPLEMENTATION
\section{Implémentation avec RabbitMQ}
Nous nous proposons d'étudier l'algorithme de Lamport avec RabbitMQ.
Pour ce faire, nous disposons d'un serveur RabbitMQ, et d'un nombre arbitraire de sites virtuels communiquant à travers ce server, \textit{via} le protocole AMQP.
Nous définissons, pour chaque site, un comportement respectant l'algorithme de Lamport.
Nous allons étudier l'algorithme de Lamport avec RabbitMQ.
Nous disposons d'un serveur RabbitMQ, et d'un nombre arbitraire de sites virtuels communiquant à travers ce server, qui utilise le protocole \textit{AMQP}.
Nous définissons un comportement commune à tous les sites, respectant l'algorithme de Lamport.
Dans le cadre de cette étude, nous développons en Python, avec le module \imtaInlinecode{python}{pika}, une implémentation en Python du protocole AMQP.
Ainsi, chaque site sera représenté par une instance du script que nous nous proposons d'écrire.
Nous développons en Python, avec le module \imtaInlinecode{python}{pika}, une implémentation en Python du protocole AMQP.
Chaque site sera représenté par une instance du script que nous nous proposons d'écrire.
Nous nous proposons d'étudier deux implémentations différentes.
Dans un premier temps, nous implémentons la communication entre les sites grâce au mécanisme d'\textit{exchange}.
Puis, nous nous intéressons à la notion de \textit{topic}.
Nous nous attacherons enfin à évaluer les performances des deux implémentations, et à les comparer en termes d'efficacité.
\subsection{Implémentation par le mécanisme d'exchange}
\subsection{Implémentation}
Le programme exécuté par chaque site est le suivant : une console attend que l'utilisateur appuie sur la touche entrée.
Le processus envoie alors un message de requête aux autres processus, \textit{via} le courtier RabbitMQ.
......@@ -216,10 +211,8 @@ Le reste de la communication implémente l'algorithme de Lamport, ainsi que pré
Le code source consiste en une classe \imtaInlinecode{python}{LamportNode}, implémentant les actions et les événements décrits en sous-section \ref{sec:structure}.
Cette classe fait appel au module \imtaInlinecode{python}{pika}, pour se connecter au serveur RabbitMQ et communiquer avec les autres sites.
Nous présentons du script \imtaInlinecode{bash}{lamport_node_exchange.py}, non pas de manière descriptive et linéaire, mais plutôt %
de sorte à expliciter le raisonnement derrière la rédaction du code.
Par conséquent, nous présentons des versions incrémentales des différentes méthodes, et une méthode telle que \imtaInlinecode{python}{LamportNode.__init__} apparaît %
sous plusieurs formes au fil de la section suivante.
Nous présentons du script \imtaInlinecode{bash}{lamport_node_exchange.py}, non pas de manière descriptive et linéaire, mais plutôt de sorte à expliciter le raisonnement derrière la rédaction du code.
Par conséquent, nous présentons des versions incrémentales des différentes méthodes, et une méthode telle que \imtaInlinecode{python}{LamportNode.__init__} apparaît sous plusieurs formes au fil de la section suivante.
En réalité, ces différentes formes s'imbriquent les unes aux autres.
\subsubsection{Connexion au serveur RabbitMQ et communication avec les voisins}
......@@ -591,10 +584,6 @@ Enfin, le site 4 libère la ressource, et le site 1 peut y accéder.
\label{fig:exchange4}
\end{figure}
\subsection{Implémentation par le mécanisme de topic}
\end{document}
%%%%%%%%%% END %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%
......@@ -10,7 +10,7 @@
\contentsline {paragraph}{\numberline {2.1.2.2}R\IeC {\'e}ception d'un message \texttt {FRE}}{5}{paragraph.2.1.2.2}
\contentsline {paragraph}{\numberline {2.1.2.3}R\IeC {\'e}ception d'un message \texttt {VAL}}{5}{paragraph.2.1.2.3}
\contentsline {section}{\numberline {3}Impl\IeC {\'e}mentation avec RabbitMQ}{6}{section.3}
\contentsline {subsection}{\numberline {3.1}Impl\IeC {\'e}mentation par le m\IeC {\'e}canisme d'exchange}{6}{subsection.3.1}
\contentsline {subsection}{\numberline {3.1}Impl\IeC {\'e}mentation}{6}{subsection.3.1}
\contentsline {subsubsection}{\numberline {3.1.1}Connexion au serveur RabbitMQ et communication avec les voisins}{6}{subsubsection.3.1.1}
\contentsline {subsubsection}{\numberline {3.1.2}D\IeC {\'e}finition des variables de l'algorithme de Lamport}{7}{subsubsection.3.1.2}
\contentsline {subsubsection}{\numberline {3.1.3}Publication d'un message}{7}{subsubsection.3.1.3}
......@@ -18,4 +18,3 @@
\contentsline {subsubsection}{\numberline {3.1.5}Acquisition de la ressource par un processus utilisateur}{9}{subsubsection.3.1.5}
\contentsline {subsubsection}{\numberline {3.1.6}Utilisation du n\IeC {\oe }ud avec un thread consommateur}{11}{subsubsection.3.1.6}
\contentsline {subsubsection}{\numberline {3.1.7}Communication entre processus}{11}{subsubsection.3.1.7}
\contentsline {subsection}{\numberline {3.2}Impl\IeC {\'e}mentation par le m\IeC {\'e}canisme de topic}{14}{subsection.3.2}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment