\documentclass[t,10pt,pdftex]{beamer}
\usetheme{tb}
\usepackage[T1]{fontenc} 
\usepackage{lmodern}
\usepackage[francais]{babel}
\usepackage{listings}
% \usepackage[absolute,overlay]{textpos}
\usepackage{picture}
\usepackage{alltt}
\usepackage{boxedminipage}
\usepackage{multirow}
\usepackage{array}
\usepackage{tabularx}
% \usepackage[pdftex]{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage{url}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{textcomp}
\usepackage{verbatim}
\usepackage{alltt}

% \setlength\leftmargini{1em}
% \setlength\leftmarginii{1em}
% \setlength\leftmarginiii{1em}
% \setlength\labelwidth{\leftmargini}
%
% \setbeamersize{text margin left=4em,text margin right=1em}

\title{Protocole domotique xAAL}
\date{11/04/2014}

\begin{document}

%\begin{frame}[title]
%  \maketitle
%\end{frame}
\inserttitlepage

\begin{frame}[c]
	\frametitle{Intéropérabilité: solutions existantes}
	\begin{itemize}
	\item Revue (non exhaustive) des solutions existantes: projets européen \cite{HydraMiddleware, iot-a, iot-butler}, projet open source \cite{Guinard2011,iot-toolkit,Openhab,Bonino2008}, standards \cite{Coap, Mqtt}, autre \cite{Xap}. 
	\end{itemize}

	\begin{figure}
	%\normalsize
	\includegraphics[scale=0.6]{img/Interop_solution_mindmap}
	%\def\svgwidth{350pt}
	%\input{img/Interop_solution_mindmap.pdf_tex}
	\caption{Carte heuristique}
	\end{figure}
\end{frame}

%\begin{frame}[c]
%	\frametitle{Intéropérabilité: solutions existantes}
%	\begin{itemize}
%	\item 
%	\end{itemize}
%\end{frame}

\begin{frame}[c]
  \frametitle{Principes généraux d'xAAL}
  \begin{columns}
    \begin{column}{0.6\textwidth}
    \vspace*{-4em}
    \begin{itemize}
    \item Nom: xAAL
    \item Objectif: interopérabilité
    \item Bus IP multicast
    \item Fortement distribué
    \item Mécanisme de découverte
    \item Description par schémas
    \item Messages Json
    \end{itemize}
    \end{column}
    \begin{column}{0.4\textwidth}
    \includegraphics[width=.8\linewidth]{../bus-xaal_devices}\\[2ex]
    \includegraphics[width=.8\linewidth]{../bus-xaal_databases}\\[2ex]
    \includegraphics[width=.8\linewidth]{../bus-xaal_activators}\\[4ex]~
    \end{column}
  \end{columns}
\end{frame} 

\begin{frame}[c]
  \frametitle{Bus - Les devices}
  \hspace*{-2em}\includegraphics[width=1\linewidth]{../bus-xaal_devices}
\end{frame} 

\begin{frame}[c]
  \frametitle{Bus - Bases de données}
  \hspace*{-2em}\includegraphics[width=1\linewidth]{../bus-xaal_databases}
\end{frame} 

\begin{frame}[c]
  \frametitle{Bus - Les activateurs}
  \hspace*{-2em}\includegraphics[width=1\linewidth]{../bus-xaal_activators}
\end{frame} 


\begin{frame}[c]
  \frametitle{Les schémas}
  \begin{itemize}
  \item Un pour chaque entité
  \item \emph{méthodes(paramètres)}, \emph{notifications}, 
	\emph{variables d'état}
  \item Hérarchie:
    \begin{itemize}
    \item Générique {\footnotesize
	\begin{itemize}
	\item Variables: \texttt{devtype address parent}
	\item Notifs: \texttt{Alive StateChange Error}
	\item Méthodes: \texttt{IsAlive GetDescription GetState
		SetBusConfig}
	\end{itemize} }
    \item Classe de type {\footnotesize 
	\begin{itemize} 
        \item \texttt{lamp.any} ...
        \end{itemize} }
    \item Type spécifique {\footnotesize
        \begin{itemize} 
        \item \texttt{lamp.basic lamp.dim shutter.simple door.locker}...
	\end{itemize} }
    \end{itemize}
  \end{itemize}
\end{frame}


\begin{frame}[fragile,c]
  \frametitle{Exemple de messages}
\scriptsize
\begin{columns}
  \begin{column}{0.5\textwidth}
  \begin{verbatim}
{
 "header":
  {
   "version": "0.2",
   "source": 39595606,
   "target": 16778244
   "devtype": "thermometer.queryable",
   "msgtype": "request",
   "action": "getstate",
   "cipher": "none",
   "signature": ""
  }
}
\end{verbatim}
  \end{column}

  \begin{column}{0.5\textwidth}
  \begin{verbatim}
{
 "header":
  {
   "version": "0.2",
   "source": 16778244,
   "target": 39595606,
   "msgtype": "reply",
   "devtype": "thermometer.queryable",
   "action": "getstate",
   "cipher": "none",
   "signature": ""
  },
 "body": 
  {
    "temperature": 9.3000000000000007
  }
}
\end{verbatim}
  \end{column}
\end{columns}
\end{frame} 



\begin{frame}[c]
  \frametitle{Planning}
  \begin{itemize}
  \item xAAL version 0.1-bin: mars 2012, sur le papier
  \item xAAL version 0.1-json: mars 2012, développé
  \item xAAL version 0.2: fin juin, SDK (Python), Gateway KNX, IHM web
  \end{itemize}
\end{frame}

\begin{frame}[c,allowframebreaks]
\frametitle{References}
\scriptsize{\bibliographystyle{plain}}
\bibliography{biblio} %bibtex file name without .bib extension
\end{frame}

\begin{frame}[c]
\frametitle{Annexe: solutions existantes}
L'intéropérabilité OUI mais plusieurs façons de l'atteindre:
\begin{itemize}
\item Un protocole de communication commun à tous les objets connectés
\item Un intergiciel (Middleware) permettant une intéropérabilité au niveau des services (Ressource exposés comme des services).
\item Une architecture: serveurs, passerelles, objets connectés
\end{itemize}
\end{frame}

\begin{frame}[c]
\frametitle{Protocole de communication}
Avantages:
\begin{itemize}
\item Permet une architecture distribuée
\item Permet extensibilité, flexibilité
\item N'impose pas un langage
\end{itemize}
Inconvénients:
\begin{itemize}
\item Effort en développement de "Bridges" pour intéger la pile protocolaire 
\item Centré sur une technologie (doit être adopté pour garantir succès)
\end{itemize}
\end{frame}

\begin{frame}[c]
\frametitle{Intergiciel}
Avantages:
\begin{itemize}
\item C'est du logiciel: dynamicité, déploiement, modularité
\item Intergiciel dirigé par les modèles
\item Objets/ressources exposé comme des services
\end{itemize}
Inconvénients:
\begin{itemize}
\item Impose généralement l'utilisation d'OSGI (tout concentré dans une Gateway)
\item Communication entre intergiciel ou via un protocole de communication (REST/Json, RPC, ...)
\item La Gateway doit supporter l'intergiciel (taille mémoire, vitesse processeur)
\end{itemize}
\end{frame}

\begin{frame}[c]
\frametitle{Architecture}
Avantages:
\begin{itemize}
\item Permet une intéropération horizontale entre les domaines comme la domotique, la santé, le transport, ... \cite{iot-a,iot-butler}
\item Choix utilisation: centré autour d'un protocole, utilisation d'un intergiciel ou hybride
\end{itemize}
Inconvénients:
\begin{itemize}
\item Infrastructure lourde à mettre en place
\item Connaissance de plusieurs technologies (serveur, gateway, standards,...), protocoles de communication 
\end{itemize}
\end{frame}

\begin{frame}[c]
\frametitle{Synthèse}
\begin{itemize}
\item Protocole de communication ou intergiciel (un choix qui se discute)
\item Définir une architecture $\rightarrow$ une nécessité pour mettre en place l'intéropérabilité des objets \& services
\end{itemize}
\end{frame}

\begin{frame}[c,allowframebreaks]
\frametitle{Synthèse}
Quels sont les éléments nécessaires à une architecture visant l'intéropérabilité entre les objets connectés?
\begin{itemize}
\item Identification: nommage, adressage, relation, localisation (Naming, addressing, identification, location)
\item Découverte des ressources/objets/appareils (Resource discovery)
\item Résolution (Resolution, "Linked data principle")
\item Recherche des ressources (Search, indexing)
\item Sauvegarde, mise en cache  (storage, repository)
\item Représentation des données (Data model)
\item Performances (Performances: Simplicity, Integration, Portability, Speed, ...)
\item Management des ressources/objets/appareils (Device management)
\item Protocole de communication, intéropération (Communication protocol, interoperation)
\item Extraction du contexte, intelligence ambiante (Context awareness, ambient intelligence)
\item Distribué (Distributed)
\item Sécurité \& intimité (Security \& Privacy)
\item Ontologies, Web Sémantique (Ontology, Web semantic)
\end{itemize} 
\end{frame}


\end{document}
