\begin{frame}
 \frametitle{Comparaison entre le noyau de Créole et Tiramisu}
 \begin{itemize}
  \item \emph{Tiramisu} a pour objectif de 
  \begin{itemize}
  \item remplacer le noyau \emph{Creole} (\texttt{EoleDict}) de manière transparente ; 
  \item résoudre les problèmes inhérents à \texttt{CreoleServ} ;
  \end{itemize}
  \item au niveau du code, il y a enfin une vraie séparation du c\oe ur et du fonctionnel ;
  \item valide le type \emph{et la structure}, l'ajout de types est aisé.
  \item \emph{Creole} : \texttt{EoleDict, EoleVars} $ \Leftrightarrow $ \texttt{Config, Option}\\
  cf \texttt{tiramisu/doc/build/pydoc/index.html}
  \item intégré à \texttt{gen\_config}, \texttt{cheetah}, \texttt{DTD Creole}, syntaxe \texttt{Creole} \dots
  \item \texttt{eole-report/D02CoherenceVariables.pdf}
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Gestionnaire de configuration existants}
 \begin{itemize}
  \item Le gestionnaire de conf de Victor Stinner $\Rightarrow$ \emph{NuFw}; 
  \item puppet, cfgengine... $\Rightarrow$ intéressant, de nombreux comportements peuvent être repris, mais tel quel difficilement compatible avec \emph{Creole};
  \item \emph{Creole} $\Leftrightarrow$ \texttt{tiramisu/doc/build/glossary.html}
\end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Un "vrai" serveur de config}
 \begin{itemize}
  \item un serveur de données de configuration ;
  \item $1^{ere}$ méthode : exportation (snapshot) d'un état de la config $ \Rightarrow $ Créole ;
  \item $2^{eme}$ méthode : JIT (just in time) calculation, une modification 
de l'état de la configuration est possible \emph{pendant} la manipulation et l'utilisation de la conf $ \Rightarrow $ Tiramisu.
  \item \texttt{doc/getting-started.html}
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Qu'est-ce qu'un gestionnaire de conf moderne ?}
 \begin{itemize}
  \item c'est une organisation arborescente des données (les données sont imbriquées) ;
  \item c'est un accès facile aux données (typiquement une interface de type \emph{dictionnaire}) ;
  \item clefs-valeurs, mais quelles valeurs exactement ? $ \Rightarrow $ calcul JIT (just in time) ;
  \item \texttt{eole-report/D01AccesVariables.pdf}
\end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Définition d'un gestionnaire de configuration}
 \begin{itemize}
  \item les families, groups, master \dots~ ce sont des \emph{schémas} de données (\texttt{OptionDescription}) ;
  \item c'est la configuration (\texttt{Config}) qui est responsable de l'accès aux valeurs ;
  \item la configuration est aisément manipulable, et a un point d'entrée unique ;
  \item l'accès aux valeurs des \texttt{Options} de configuration ne peut se faire \emph{que} depuis la conf racine.
  \item \texttt{eole-report/D01AccesVariables.pdf}
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Organisation en espace de nommage}
 \begin{itemize}
  \item dans \emph{tiramisu} l'accent est mis sur l'organisation arborescente des données ;
  \item la validation des options de configuration se fait par l'appartenance aux groupes (families, master/slaves \dots) ;
  \item l'organisation en groupes est unifiée par l'espace de nommage ;
  \item \texttt{eole-report/D03ReglesEtats.pdf}
  \item lisibilité d'une config : \texttt{tiramisu/report/build/index.html} rapport html d'une config
 \end{itemize}
\end{frame}

