\documentclass{beamer}

% Diese Datei enthält eine Lösungsvorlage für:

% - Vorträge bei einer (deutschsprachigen) Konferenz/einem Kolloquium.
% - Vortragslänge von etwa 20 Minuten.
% - Aussehen des Vortrags ist verschnörkelt/dekorativ.



% Copyright 2004 by Till Tantau <tantau@users.sourceforge.net>.
%
% In principle, this file can be redistributed and/or modified under
% the terms of the GNU Public License, version 2.
%
% However, this file is supposed to be a template to be modified
% for your own needs. For this reason, if you use this file as a
% template and not specifically distribute it as part of a another
% package/program, I grant the extra permission to freely copy and
% modify this file as you see fit and even to delete this copyright
% notice. 



\mode<presentation>
{
  \usetheme{Warsaw}
}

\usepackage[german]{babel}
\usepackage[utf8]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}


\title[Perl-Monitoring] % (optional, nur bei langen Titeln nötig)
{Monitoring von Perl-basierten Web Anwendungen mit Kieker}

\subtitle{Proposal}

\author{Nis Wechselberg}


\institute[CAU Kiel] % (optional, aber oft nötig)
{
  Institut für Informatik\\
  Christian-Albrechts-Universität zu Kiel
}

\date{19. Dezember 2012}

% Folgendes sollte gelöscht werden, wenn man nicht am Anfang jedes
% Unterabschnitts die Gliederung nochmal sehen möchte.
\AtBeginSection[]
{
  \begin{frame}<beamer>{Gliederung}
    \tableofcontents[currentsection]
  \end{frame}
}


% Falls Aufzählungen immer schrittweise gezeigt werden sollen, kann
% folgendes Kommando benutzt werden:

\beamerdefaultoverlayspecification{<+->}


\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{Gliederung}
  \tableofcontents
  % Die Option [pausesections] könnte nützlich sein.
\end{frame}



% Einen Vortrag zu strukturieren ist nicht immer einfach. Die
% nachfolgende Struktur kann unangemessen sein. Hier ein paar Regeln,
% die für diese Lösungsvorlage gelten:

% - Es sollte genau zwei oder drei Abschnitte geben (neben der
%   Zusammenfassung). 
% - *Höchstens* drei Unterabschnitte pro Abschnitt.
% - Pro Rahmen sollte man zwischen 30s und 2min reden. Es sollte also
%   15 bis 30 Rahmen geben.

% - Konferenzteilnehmer wissen oft wenig von der Materie des
%   Vortrags. Deshalb: vereinfachen!
% - In 20 Minuten ist es schon schwer genug, die Hauptbotschaft zu
%   vermitteln. Deshalb sollten Details ausgelassen werden, selbst
%   wenn dies zu Ungenauigkeiten oder Halbwahrheiten führt.          
% - Falls man Details weglässt, die eigentlich wichtig für einen
%   Beweis/Implementation sind, so sagt man dies einmal nüchtern. Alle
%   werden damit glücklich sein.

\section{Motivation}

\subsection{Kielprints}

\begin{frame}{Kielprints}
  \includegraphics[scale=0.17]{kielprints.png}[
\end{frame}

\begin{frame}{Projektbeschreibung}
  \begin{itemize}
    \item 
      Plattform zur Veröffentlichung von wissenschaftlichen Dokumenten (\emph{self archiving})
    \item
      Ergänzte und modifizierte Version von ePrints
    \item
      Betrieben durch das Helmholtz Zentrum für Ozeanforschung Kiel (GEOMAR)
    \item
      Erweiterung des OceanRep GEOMAR
    \item 
      Über 14000 Veröffentlichungen von etwa 1000 Autoren
  \end{itemize}
\end{frame}

\subsection{Beobachtete Performanceprobleme}

\begin{frame}{Benutzerperspektive}
  \begin{itemize}
    \item
      Abrufen von Einträgen über die Plattform: \\[0.5cm]
    \item
      Erhöhte Antwortzeiten
    \item
      Langsame Suche in den Fachbereichen
  \end{itemize}
\end{frame}

\begin{frame}{Administration/Betrieb}
  \begin{itemize}
    \item
      Zur Zeit \emph{Vorberechnung} in der Nacht durch Cron-Job
    \item
      Trotzdem hohe Wartezeiten bei Seitenwechseln im Backend
    \item
      Beispiel: Beim Eintragen von neuen Publikationen über das Backend und hinzufügen von Autoren dauert die Generierung von Dropdown-Menüs etwa 10 Sekunden.
  \end{itemize}  
\end{frame}

\section{Technologien und Methoden}

\subsection{Performance-Monitoring}

 \begin{frame}{Vorgehen bei Performance-Monitoring}
   \begin{enumerate}
     \item
       Instrumentierung des Codes mit \emph{Probes}
     \item
       Ausführung des instrumentierten Codes
     \item
       Protokollierung von Monitoring Daten
     \item
       Auswertung der Daten mittels geeigneter Tools
   \end{enumerate}
 \end{frame}
 
 \begin{frame}{Erfasste Daten}
   \begin{itemize}
     \item 
       Anwendungsdaten
       \begin{itemize}
         \item
           Aufrufreihenfolge
         \item
           Aufrufhäufigkeiten
         \item
           Ausführungszeiten
       \end{itemize}
     \item
       Systemdaten
       \begin{itemize}
         \item
           CPU-Auslastung
         \item
           Arbeitsspeicher
         \item 
           aktive Prozesse
         \item
           ...
       \end{itemize}
   \end{itemize}
 \end{frame} 
 
\subsection{Kieker-Framework}

 \begin{frame}{Kieker Monitoring Framework}
    \begin{itemize}
      \item Monitoring Tool aus diesem Lehrstuhl
      \item Empfohlenes Tool im SPEC RG Software Repository
    \end{itemize}
      \includegraphics[scale=0.7]{kiekerComponentDiagram-woCloud-bw-w-record-newNames-withTraceAnalysis-colors.pdf}
 \end{frame}
 
 \begin{frame}{Überblick über Kieker}
   \begin{itemize}
     \item Aufteilung in \emph{Kieker.Monitoring} und \emph{Kieker.Analysis}
     \item Kieker.Monitoring zur Instrumentierung und Überwachung
     \item Kieker.Analysis zur Auswertung und Veranschaulichung
     \item Kommunikation über Monitoring Log oder Stream\\[0.5cm]
     \item Bisher keine Unterstützung für Perl
   \end{itemize}
 \end{frame}
 
\subsection{Programmiersprache Perl}

 \begin{frame}{Programmiersprache Perl}
   \begin{itemize}
     \item imperative, plattformunabhängige, interpretierte Sprache
     \item Entwickelt 1987, heute in Version 5.16 verfügbar
     \item Sehr viele Freiheiten für Programmierer (freie Syntax)
     \item Starke Funktionen für String-Manipulationen und Reguläre Ausdrücke
     \item Direkte Integration in Webserver mittels CGI-Perl
   \end{itemize}
 \end{frame}

\section{Geplante Umsetzung}

\subsection{Architekturentwurf}

 \begin{frame}{Neuimplementierungen in Perl}
   \begin{itemize}
     \item Implementierung von Monitoring Probes und Monitoring Writer
     \item Ausgabe von Monitoring Records in Monitoring Log
     \item Auswertung mit \emph{Kieker.Analysis}
   \end{itemize}
 \end{frame}

 \begin{frame}{Architekturentwurf}
   \includegraphics[scale=0.6]{Architektur.png}
 \end{frame}

\subsection{Zeitplan}

 \begin{frame}{Zeitplan}
   \includegraphics[scale=0.27]{Gantt-Project.png}
   \begin{itemize}
     \item Implementierung der benötigten Funktionen bis 23.12.
     \item Ab Mitte Januar zunächst Testinstrumentierung von Kielprints
     \item Anschliessend Instrumentierung und Analyse im Produktivsystem
   \end{itemize}
 \end{frame}

 \begin{frame}
   \hfill
     \begin{beamercolorbox}[rounded=true, center, shadow=true,sep=0.5cm]{block body}
       Ich danke für Ihre Aufmerksamkeit!
     \end{beamercolorbox}
   \hfill\hfill
 \end{frame}
\end{document}


