\documentclass[11pt]{beamer}

\usepackage{ngerman}
\usepackage{times}
\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
\usepackage{amsmath,amssymb}
\usepackage[latin1]{inputenc}
\usepackage{listings,color}
\definecolor{lbcolor}{rgb}{0.95,0.95,0.95}
\lstset{language=C++,
		   numbers=left,
		   stepnumber=1,
		   numbersep=5pt,
		   numberstyle=\tiny,
		   breaklines=true,
		   breakautoindent=true,
		   postbreak=\space,
		   tabsize=2,
		   basicstyle=\ttfamily\footnotesize,
		   showspaces=false,
		   showstringspaces=false,
		   extendedchars=true,
		   backgroundcolor=\color{lbcolor},
		   keywordstyle=\bf ,
		   commentstyle=\color{green},
		   stringstyle=\color{red}
}
%Abb. 	Layout 	Farbschema
%1 	Berkeley 	default
%2 	Antibes 	crane
%3 	Warsaw 	seahorse

\mode<presentation>
{
	\usetheme{PaloAlto}
	\usecolortheme{default} 
	\setbeamercovered{dynamic}
}

\title{RT CORBA}
\author{Manuel Traut}
\institute{TRUMPF-Laser GmbH + Co. KG \\ Hochschule Ravensburg-Weingarten}
\logo{\includegraphics[height=1.6cm]{./img/logo.jpg}}

%\AtBeginSubsection[]
%{
%	\begin{frame}<beamer>
%		\frametitle{\"Ubersicht}
%		\tableofcontents[currentsection,currentsubsection]
%	\end{frame}
%}

%uncover stepwise
\beamerdefaultoverlayspecification{<+->}

\begin{document}

\frame{ \titlepage }

\begin{frame}
	\frametitle{\"Ubersicht}
	\tableofcontents
\end{frame}

\section{Motivation}

\begin{frame}
	\frametitle{Erfahrungen und Interesse in den Gebieten:}
	  \begin{block}{Linux}
		  \begin{itemize}
			\item<1-> 1999 - erster Kontakt SuSE 6.1 mit Kernel 2.2
			\item<2-> 2000 - Einsatz f\"ur Office, Internet, C++
			\item<3-> 2001 - Linuxserver als Router, Fileserver, \dots
			\item<4-> seit 2003 - Tutor an der FH LIP
			\item<5-> 2004, 2006 - eigene gentoo LIP veranstaltet
		  \end{itemize}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Erfahrungen und Interesse in den Gebieten:}
	  \begin{block}{hardwarenahes Arbeiten}
	  \begin{itemize}
		  \item<1->2000 - Modelleisenbahnsteuerung mit Parallelport
		  \begin{itemize}	
			\item<2-> Projektarbeit an der Realschule
			\item<3-> auf DOS, BASIC Basis
			\item<4-> Stellen von Weichen und Gleisabschnitten
		  \end{itemize}
		  \item<5->2003 - Versuche Modelleisenbahnsteuerung mit Linux
		  \begin{itemize}	
			\item<6-> Linuxd\"amon aus Internet\footnote{http://vogt-it.com/OpenSource/DDL} kreiert digital Signale
			\item<7-> umgebauter M\"arklin Delta dient als Booster
			\item<8-> Loks addressbier und steuerbar via ssh
		  \end{itemize}
		  \end{itemize}
	 \end{block}
\end{frame}

\begin{frame}
		\frametitle{Erfahrungen und Interesse in den Gebieten:}
		  \begin{block}{embedded Systeme}
			\begin{itemize}
		   		\item<1-> 2002 \emph{WAECHTER} \footnote{ Wireless And Efficient Caretaker He Transmitts Errors Rapidly} \"Uberwachung und Steuerung per Handy
				\begin{itemize}
					\item<2-> Webserver (wap) auf embedded Linux
					\item<3-> Kommunikation via Parallelport mit Microcontroller
					\item<4-> Microcontroller liest und schreibt i/o
					\item<5-> Microcontroller steuert Handy via V24
				\end{itemize}
				\item<6-> 2006 Linux auf dBox
				\item<7-> 2006 Geocaching Anwendung f\"ur Symbian JAVA
				\end{itemize}
		  \end{block}
\end{frame}

\begin{frame}
		\frametitle{Erfahrungen und Interesse in den Gebieten:}
		  \begin{block}{verteilte Systeme}
			\begin{itemize}
			\item<1-> 2006 \emph{YALP} \footnote{ Yet Another Lovely Player} Multimediadatenverwaltung und Streaming
			\begin{itemize}
				\item<2-> auf vielen Plattformen einsetzbar
				\item<3-> basierend auf JAVA, RMI, VideolanClient, postgreSQL
				\item<4-> Server f\"ur DB mit Medieninformationen und Datenhaltung
				\item<5-> Client zum Finden von Medien, Indizieren neuer Dateien
				\item<6-> Playlist auf Client erstellen, Server streamt diese zu Client
				\item<7-> Benutzerverwaltung (editieren, indizieren, abspielen)
				\item<8-> Statistik (User, Streams, gesamt, aktuell)
			\end{itemize}
		\end{itemize}
    \end{block}
\end{frame}

\section{CORBA}

\begin{frame}
	\frametitle{Funktionsweise}
	\includegraphics[height=6cm]{img/objRequest.jpg}
\end{frame}

\begin{frame}
	\frametitle{Komponenten}
	\includegraphics[height=6cm]{img/orb.jpg}
\end{frame}

\subsection{Services}
\begin{frame}
	\frametitle{NamingService}
	\begin{block}{Server}
	\begin{itemize}
	\item<1-> NamingService finden
	\item<2-> Objektreferenz mit Name beim NS melden
	\end{itemize}
	\end{block}
	\begin{block}{Client}
	\begin{itemize}
	\item<3-> NamingService finden
	\item<4-> Objektreferenz anhand Name beim NS erfragen
	\item<5-> Objektzugriff \"uber Objektreferenz
	\end{itemize}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{EventService}
	\begin{block}{Server}
	\begin{itemize}
	\item<1-> Zugriff \"uber NamingService
	\item<2-> Message mit Typ und Sender ID an EventService senden
	\end{itemize}
	\end{block}
	\begin{block}{Client}
	\begin{itemize}
	\item<3-> Zugriff \"uber NamingService
	\item<4-> anmelden bei EventService (Policies definieren Zustellart der Nachrichten)
	\item<5-> Kann beim EventService Filterregeln hinterlegen
	\end{itemize}
	\end{block}
\end{frame}

\section{Realtime CORBA}
\begin{frame}
	\frametitle{RTCORBA Komponenten}
	\includegraphics[height=6cm]{./img/rtcorbaext.jpg}
\end{frame}

\section{TAO}

\begin{frame}
	\frametitle{Architektur}
	\includegraphics[height=6cm]{./img/ace.jpg}
\end{frame}

\begin{frame}
	\frametitle{realtime Scheduling in TAO}
	\includegraphics[height=6cm]{./img/tao.jpg}
\end{frame}

\section{Clients zum Datenaustausch}

\subsection{Versuchsaufbau}
\begin{frame}
	\frametitle{Ende zu Ende Latenz}
	\includegraphics[height=6cm]{./img/versuch1.jpg}
\end{frame}

\begin{frame}
	\frametitle{Lastsimulation}
	\begin{block}{Festplattenlast} 
	xdd 
	\end{block}
	\begin{block}{Netzwerklast}
	auf niedriger priorisierte Ethernetports
	via flood ping
	\end{block}
	\begin{block}{CPU Last} 
	cpuburnP5 
	\end{block}
\end{frame}

\subsection{V1 RT CORBA}

\begin{frame}[fragile]
	\frametitle{Interfacedefinition}
	\begin{block}{definiert Kommunikationsobjekte}
	\end{block}
\begin{lstlisting}
// benchV1.idl
module benchmark{
    exception invalidRequest();
    interface Put{
        void allPorts(in short val1, in short val2, in short val3) raises(invalidRequest);
	}
}
\end{lstlisting}
\end{frame}

\begin{frame}[fragile]
	\frametitle{Implementation}
	\begin{block}{Server}
	\begin{itemize}
	\item<1-> hostet ein Objekt zum Setzen von DOUT
	\item<2-> Zugriff auf dieses Objekt erfolgt mit h\"ochster Priorit\"at
	\end{itemize}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Implementation}
	\begin{block}{Client}
	\begin{itemize}
	\item<1-> Init: Objektreferenz holen
	\item<2-> PortChanged - Signal: Anhand Objektreferenz entsprechenden Port auf Server setzen
	\end{itemize}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Datenflu\ss}
	\includegraphics[height=7cm]{./img/programmfluss.jpg}
\end{frame}

\begin{frame}
	\frametitle{Ergebnis}
	\begin{itemize}
	\item<1-> mit Last
	\end{itemize}
	\includegraphics[height=6cm]{./cdrom/messungen/versuch1/optimiert/Image.png}
\end{frame}

\subsection{V2 RT CORBA Priorisierung}

\begin{frame}
	\frametitle{\"Anderungen zu V1}
	\begin{block}{Server}
	\begin{itemize}
		\item<2-> 2 Instanzen zum Schreiben auf CPX
		\item<3-> 2 versch. priorisierte POAs: RTCORBA::max, RTCORBA::min
		\item<4-> je eine Instanz zum Schreiben auf CPX wird bei jedem POA registriert
	\end{itemize}
	\end{block}
	\begin{block}{Client}
	\begin{itemize}
		\item<6-> \"Anderung an P1 wird mit max Priority Objektreferenz \"ubertragen
		\item<7-> \"Anderung an P2 wird mit min Priority Objektreferenz \"ubertragen
	\end{itemize}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Ergebnis}
	\begin{itemize}
	\item ohne Last
	\end{itemize}
	\includegraphics[height=3cm]{./cdrom/messungen/versuch3/00.png}
	\begin{itemize}
	\item mit Last
	\end{itemize}
	\includegraphics[height=3cm]{./cdrom/messungen/versuch3/61.png}
\end{frame}

\subsection{V3 RT EventService}
\begin{frame}
	\frametitle{Versuchsaufbau}
	\begin{block}{Supplier}
	sendet Port\"anderungen an RT EventService
	\end{block}
	\begin{block}{Consumer}
	registriert sich bei RT EventService
	bekommt \"Anderungen mitgeteilt
	setzt entsprechend die digitalen Ausg\"ange
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Ergebnis}
	\begin{itemize}
	\item<1-> mit Last
	\end{itemize}
	\includegraphics[height=6cm]{./cdrom/messungen/versuch2/Image.png}
\end{frame}

\section{weiteres Vorgehen}
\begin{frame}
	\frametitle{n\"achste Schritte}
	\begin{block}{Dokumentation}
	\begin{itemize}
	\item Auswertung der Messungen mit gnuplot
	\item Grafiken und Beschreibungen zu V2, V3
	\end{itemize}
	\end{block}
	\begin{block}{QoS auf Ethernetebene}
	\begin{itemize}
	\item Integration von QoS Switches in den Versuchsaufbau
	\item Messungen mit Switch
	\end{itemize}
	\end{block}
	\begin{block}{remote Control}
	\begin{itemize}
	\item Integration von ACE/TAO in zproc Umgebung
	\item Programm zum \emph{Fernsteuern} eines Lasers
	\end{itemize}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{weitere Aspekte der DA}
	\begin{block}{ACE/TAO}
	\begin{itemize}
	\item footprint reduzieren
	\item Jitter Schwankungen bei HD Last
	\end{itemize}
	\end{block}
	\begin{block}{Untersuchung DAIS}
	\begin{itemize}
	\item Auf CORBA aufgesetzter Standard zur RT Kommunikation
	\item Treffen mit Homag, Einf\"uhrung DAIS
	\end{itemize}
	\end{block}
	\begin{block}{Untersuchung DDS}
	\begin{itemize}
	\item Standard zur RT Kommunikation
	\item Publish / Subscribe
	\end{itemize}
	\end{block}
\end{frame}


\end{document}