\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 { \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} % \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}