summaryrefslogtreecommitdiff
path: root/dokumentation.html
diff options
context:
space:
mode:
Diffstat (limited to 'dokumentation.html')
-rw-r--r--dokumentation.html487
1 files changed, 487 insertions, 0 deletions
diff --git a/dokumentation.html b/dokumentation.html
new file mode 100644
index 0000000..fdff5a9
--- /dev/null
+++ b/dokumentation.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Generated by Apache Maven Doxia at Feb 24, 2011 -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>DHBW Calendar -
+ Projektdokumentation</title>
+ <style type="text/css" media="all">
+ @import url("./css/maven-base.css");
+ @import url("./css/maven-theme.css");
+ @import url("./css/site.css");
+ </style>
+ <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+ <meta name="author" content="Yves Fischer" />
+ <meta name="Date-Revision-yyyymmdd" content="20110224" />
+ <meta http-equiv="Content-Language" content="en" />
+
+ </head>
+ <body class="composite">
+ <div id="banner">
+ <div id="bannerLeft">
+ DHBW Calendar
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+ <div class="xleft">
+ <span id="publishDate">Last Published: 2011-02-24</span>
+ &nbsp;| <span id="projectVersion">Version: 1.0-SNAPSHOT</span>
+ </div>
+ <div class="xright">
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+ <h5>Allgemein</h5>
+ <ul>
+ <li class="none">
+ <a href="index.html" title="Start">Start</a>
+ </li>
+ <li class="none">
+ <strong>Dokumentation</strong>
+ </li>
+ <li class="none">
+ <a href="license.html" title="Lizenzierung">Lizenzierung</a>
+ </li>
+ </ul>
+ <h5>User Guide</h5>
+ <ul>
+ <li class="none">
+ <a href="user/allgemein.html" title="Allgemein">Allgemein</a>
+ </li>
+ <li class="none">
+ <a href="user/google.html" title="Google Kalender">Google Kalender</a>
+ </li>
+ <li class="none">
+ <a href="user/lightning.html" title="Mozilla Lightning">Mozilla Lightning</a>
+ </li>
+ <li class="none">
+ <a href="user/outlook.html" title="Outlook">Outlook</a>
+ </li>
+ </ul>
+ <h5>Entwickler</h5>
+ <ul>
+ <li class="none">
+ <a href="devel/install.html" title="Install">Install</a>
+ </li>
+ <li class="none">
+ <a href="devel/hacking.html" title="Hacking">Hacking</a>
+ </li>
+ <li class="none">
+ <a href="source-repository.html" title="Source Repository">Source Repository</a>
+ </li>
+ </ul>
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+ <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+ </a>
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+
+
+ <div class="section"><h2>Einleitung<a name="Einleitung"></a></h2>
+ <p>
+ Die Nutzung von elektronischen Kalendern zur Planung und
+ Verwaltung
+ spielt eine
+ enorme Rolle f&#xfc;r viele Privatleute und in
+ vielen Unternehmen.</p>
+ <p>
+ Firmeninterne und -&#xfc;bergreifende Gesch&#xe4;fte nutzen in vielen die
+ M&#xf6;glichkeiten
+ von Kalender (Groupware) Applikationen. Mithilfe des
+ iCalendar
+ Standards
+ existiert ein interoperabler Standard zum
+ Austausch von
+ Kalenderinformationen.</p>
+ <p>
+ Die neue Campus-Software ,,Dualis'' der Dualen Hochschule
+ Baden-W&#xfc;rttemberg
+ stellt den Studenten einen elektronischen
+ Vorlesungsplan zur Verf&#xfc;gung.
+ Eine
+ Schnittstelle zur Anbindung an
+ g&#xe4;ngige Kalenderl&#xf6;sung wird jedoch nicht
+ bereitgestellt.</p>
+ <p>
+ Das Ziel dieses Projektes ist es, einen Adapter bereitzustellen
+ mithilfe
+ dessen der ,,Stundenplan'' aus dem ,,Dualis'' System der
+ Dualen Hochschule
+ Baden-W&#xfc;rttemberg in eine iCalendar-kompatible
+ Anwendung importiert
+ werden kann.</p>
+ <div class="section"><h3>Dualis<a name="Dualis"></a></h3>
+ <p>Dualis ist das interne Verwaltungssystem der DHBW. Es basiert auf
+ der Software
+ ,,CampusNet'' der Firma Datenlotsen Informationssysteme
+ GmbH, Hamburg.
+ </p>
+ <p>
+ Unter dem Namen ,,BAsys Neu'' wurde Dualis als Abl&#xf6;sung des alten
+ ,,BAsys''-Verwaltungssystem entwickelt. Die Endung ,,-is'' steht
+ f&#xfc;r
+ Informationssystem.%cite
+ %http://www.dhbw-stuttgart.de/themen/aktuelles/meldung/2008/11/basys-wird-dualis.html
+ </p>
+ <p>
+ Studierende k&#xf6;nnen &#xfc;ber den Dualis Web-Client ihre Noten, eine
+ Leistungs&#xfc;bersicht &#xfc;ber das gesamte Studium und ihren aktuellen
+ Stundenplan einsehen.
+ </p>
+ </div>
+ <div class="section"><h3>Das iCalendar Format<a name="Das_iCalendar_Format"></a></h3>
+ <p>
+ iCalendar ist ein Internet Standard (RFC 5545) um
+ Kalenderinformationen
+ auszutauschen.</p>
+ <p>
+ Dabei gibt es Verschiedene Klassen wir Event, To-Do oder
+ Free/Busy-Information.
+ Im Rahmen dieses Projekts werden nur Events
+ genutzt.</p>
+ <p>
+ iCalendar Daten besitzen den MIME Content-Type
+ \texttt{text/calender}. Die
+ Daten
+ sind in einem einfachen, ASCII
+ Key-Value Format aufgebaut.</p>
+ <p>
+ Grunds&#xe4;tzlich bestehen iCalendar Daten aus folgendem Block
+</p>
+ <div class="source"><pre>
+ BEGIN:VCALENDAR
+ PRODID:-//xyz Corp//NONSGML PDA Calendar
+ Version 1.0//EN
+ VERSION:2.0
+ ....
+ Event, To-Do, Journal,
+ Free/Busy, Time
+ Zone, Alarm Component
+ ...
+ END:VCALENDAR
+ </pre></div>
+ <p>Eine Event-Component ist wie folgt aufgebaut, wobei noch weitere
+ optionale Felder m&#xf6;glich sind:</p>
+ <div class="source"><pre>
+ BEGIN:VEVENT
+ DTSTAMP:19960704T120000Z
+ UID:uid1@example.com
+ ORGANIZER:mailto:jsmith@example.com
+ DTSTART:19960918T143000Z
+ DTEND:19960920T220000Z
+ STATUS:CONFIRMED
+ CATEGORIES:CONFERENCE
+ SUMMARY:Networld+Interop Conference
+ DESCRIPTION:Networld+Interop
+ Conference
+ and Exhibit\nAtlanta World Congress Center\n
+ Atlanta\,
+ Georgia
+ END:VEVENT</pre></div>
+ <p>
+ Wie zu sehen ist bestehen besondere Vorgaben f&#xfc;r Zeit- und
+ Textformatierung.</p>
+ <p>
+ Zeiten k&#xf6;nnen in der UTC-Zone im Format
+ \texttt{YYYYMMDDTHHmmssZ}
+ dargestellt
+ werden. \texttt{T} ist ein
+ Trenner zwischen Datum und
+ Zeit, \texttt{Z}
+ zeigt an,
+ dass es sich um
+ einen UTC-Timestamp
+ handelt\footnote{RFC5545 Sec.
+ 3.3.5}.</p>
+ <p>
+ Text wird
+ grunds&#xe4;tzlich als ASCII-Test dargestellt. Es bestehen
+ jedoch
+ Fluchtzeichen f&#xfc;r nicht-ASCII Zeichen und Satz- und
+ Kontrollzeichen
+ \footnote{RFC5545 Sec. 3.3.11}.
+ </p>
+ </div>
+ </div>
+ <div class="section"><h2>Umsetzung<a name="Umsetzung"></a></h2>
+ <p>
+ Dem Anschein nach ist der Dualis Web-Client mithilfe der Software
+ Oracle
+ Application Express (APEX) entwickelt.
+ Das erzeugte Markup ist
+ schlecht maschienenverarbeitbar, vermutlich weil
+ es
+ auf die Anzeige
+ gegen&#xfc;ber einem menschlichen Benutzer ausgerichtet ist.</p>
+
+ <p>Eine Web-API von Dualis gibt meines unseres Wissens nach nicht.
+ Demzufolge m&#xfc;ssen die
+ Webseiten relativ umst&#xe4;ndlich analysiert
+ werden, um an die
+ ben&#xf6;tigten
+ Informationen zu gelangen. Diesen Vorgang
+ nennt man Web-Scraping
+ (engl. ,,kratzen'').</p>
+
+ <p>Dadurch wird die Schnittstelle anf&#xe4;lliger f&#xfc;r
+ kleinere &#xc4;nderungen
+ an dem
+ Dualis
+ Web-Client. Schon das &#xc4;ndern der
+ Beschriftung eines
+ bestimmten Links kann die
+ Funktion beeintr&#xe4;chtigen.</p>
+
+ <p>F&#xfc;r einen zuverl&#xe4;ssigen Betrieb ist es daher unbedingt n&#xf6;tig, dass
+ von Seiten
+ des Dualis System eine stabile Schnittstelle mit einem zum
+ Informationsaustausch
+ geeigneten Format (zum Beispiel eine
+ XML-Schnitstelle nach dem HTTP/REST
+ Prinzip) angeboten wird. Oder
+ einfach direkt eine iCalendar
+ Schnittstelle.</p>
+ <div class="section"><h3>Web Scraping<a name="Web_Scraping"></a></h3>
+ <p>Zum ,,kratzen'' der Informationen aus dem HTML-Dickicht der
+ Dualis
+ Website wird
+ die Java-Bibliothek htmlunit Verwendet. Deren
+ eigentlicher Zweck ist
+ das
+ automatisierte Headless Testen von
+ Websites. Dazu ist sie in der Lage einen
+ Web-Browser inklusive
+ JavaScript und CSS weitgehend zu emulieren.</p>
+
+ <p>Dies sind optimale
+ Ausgangsbedingungen um eine schwer zug&#xe4;ngliche
+ Seite wie Dualis
+ einfach auszuwerten.</p>
+
+ <p>Ein vereinfachtes Code-Beispiel verdeutlicht die
+ Arbeit mit
+ htmlunit:</p>
+ <div class="source"><pre>
+ ...
+ WebClient webClient = new
+ WebClient();
+
+ loginPage =
+ webClient.getPage(DUALIS_URL);
+
+ loginForm =
+ loginPage.getFormByName(&quot;cn_loginForm&quot;);
+ usernameField =
+ loginForm.getInputByName(&quot;usrname&quot;);
+ usernameField.type(username);
+
+ passwordField = loginForm.getInputByName(&quot;pass&quot;);
+ passwordField.type(password);
+
+ submitButton =
+ loginForm.getInputByValue(&quot;Anmelden&quot;);
+ page = submitButton.click();
+
+ HtmlAnchor anchorByText;
+ anchorByText =
+ page.getAnchorByText(&quot;Stundenplan&quot;);
+ page = anchorByText.click();
+ </pre></div>
+ </div>
+
+ <div class="section"><h3>iCalendar Datenschnittstelle<a name="iCalendar_Datenschnittstelle"></a></h3>
+ <p>TBD</p>
+
+ <p>Die g&#xe4;ngige Methode zum Austausch von iCalendar Daten sind
+ entweder
+ lokale Files
+ oder der entfernte Zugriff &#xfc;ber HTTP.</p>
+
+ <p>Mit diesem Projekt wird der Zugriff &#xfc;ber HTTP erm&#xf6;glicht. Dabei
+ entf&#xe4;llt
+ zus&#xe4;tzlich der Bedarf eine Benutzerkonfiguration zu
+ pflegen. Der
+ Benutzer kann
+ &#xfc;ber HTTP Basic
+ Authentication\footnote{RFC 1945 Sec.
+ 11.1}.</p>
+
+ <p>Hierzu wurde ein Java-Servlet erstellt welches die
+ Authentifizerung und
+ Steuerung der Dualis Abfrage &#xfc;bernimmt.</p>
+
+ <p>Bei der
+ Ansteurerung der Schnittstelle &#xfc;ber einfache HTTP-Software
+ ist
+ zu beachten, dass das \texttt{@} im benutzername mit
+ \texttt{\%40} zu
+ escapen ist.</p>
+ </div>
+ <div class="section"><h3>Web Datenschnittstelle<a name="Web_Datenschnittstelle"></a></h3>
+ <p>
+ Zus&#xe4;tzlich zur ICS-Schnittstelle existiert eine Schnittstelle f&#xfc;r
+ den Webbrowser. Sie ist mit dem Framework
+ vaadin\footnote{\url{http://vaadin.com}}
+ umgesetzt und bietet die
+ Funktionalit&#xe4;t den Login durch eine
+ Anmeldung zu testen
+ sowie den
+ ,,Stundenplan'' in einer Tabelle zu Betrachten.</p>
+ </div>
+ <div class="section"><h3>Kompatibilit&#xe4;t<a name="Kompatibilitt"></a></h3>
+ <p>to be copied from TeX</p>
+ </div>
+
+ <div class="section"><h3>Sicherheit des Benutzers<a name="Sicherheit_des_Benutzers"></a></h3>
+ <p>Wie alle Systeme die Authentifizierungs und Benutzerdaten
+ verarbeiten ist dieses
+ hinsichtlich der Vertrauensw&#xfc;rdigkeit zu
+ untersuchen.</p>
+
+ <p>Hinsichtlich der Authentifizierungsinformationen die der
+ Benutzer
+ DHBW~Calendar
+ &#xfc;bergibt sind mehrere Angriffspunkte
+ auszumachen.</p>
+ <table align="center" border="1" class="bodyTable">
+ <tr class="a">
+ <th align="left">Problempunkt</th>
+ <th align="left">Analyse</th>
+ </tr>
+ <tr class="b">
+ <td align="left">Auf dem PC des Benutzers</td>
+ <td align="left">F&#xfc;r die Sicherheit
+ auf seinem
+ Zugriffsger&#xe4;t ist jeder
+ Benutzer
+ selbst
+ verantwortlich.</td>
+ </tr>
+ <tr class="a">
+ <td align="left">Die Netzwerkverbindung zum DHBW Calendar</td>
+ <td align="left">Die
+ Netzwerkverbindung zum
+ DHBW~Calender
+ sollte entweder als
+ direkte
+ Lokale Kommunikation ablaufen
+ (der
+ DHBW~Calender arbeitet
+ lokal) oder
+ eine sichere Verbindung (HTTPS)
+ verwenden.</td>
+ </tr>
+ <tr class="b">
+ <td align="left">Die Verarbeitung im DHBW Calendar</td>
+ <td align="left">Die
+ Verarbeitung
+ im DHBW~Calender speichert
+ die verarbeiteten
+ Daten
+ vor&#xfc;bergehend im
+ Arbeitsspeicher des
+ darunterliegenden System.
+ </td>
+ </tr>
+ <tr class="a">
+ <td align="left">Die Netzwerkverbindung zu Dualis</td>
+ <td align="left">ist verschl&#xfc;sselt (HTTPS)
+ %%TODO
+ check was bei
+ un&#xfc;gliten cets
+ passiert</td>
+ </tr>
+ <tr class="b">
+ <td align="left">Die Verarbeitung in Dualis</td>
+ <td align="left"> &#xdc;ber die
+ Verarbeitung
+ innerhalb von Dualis
+ existieren
+ keine
+ Informationen.</td>
+ </tr>
+ <tr class="a">
+ <td align="left">ggf. weitere Verbindungen von Dualis (AD o.&#xe4;.)</td>
+ <td align="left">&#xdc;ber
+ m&#xf6;gliche Kommunikationen
+ von Dualis mit Drittsystem
+ bestehen
+ keine
+ Informationen.</td>
+ </tr>
+ </table>
+ <p>Durch die quelloffenheit
+ des
+ DHBW~Calendar ist die
+ Verarbeitung der
+ Daten
+ transparent. Daher
+ entstehen dem Anwender durch
+ die Verwendung
+ des
+ DHBW Calender
+ keine
+ weiteren Sicherheitsrisiken.</p>
+ </div>
+ </div>
+ <div class="section"><h2>Fazit<a name="Fazit"></a></h2>
+ <p>
+ Die Entwicklung des DHBW~Calendar erm&#xf6;glicht den Studenten in
+ bezug auf
+ die
+ Organisierung ihres Studentalltags eine neue Dimension
+ von Integration und
+ Komfort.</p>
+ <p>Der Unzuverl&#xe4;ssigkeit des Backend ,,Dualis'' wurde durch die
+ Verwendung einer
+ High-Level Schnittstelle begegnet. Anstatt regul&#xe4;rer
+ Ausdr&#xfc;cke (DHBW
+ Connector)
+ werden die Eingabeelemente angesprochen
+ welche der Benutzer auch sehen
+ w&#xfc;rde.</p>
+ <p>
+ Die Ver&#xf6;ffentlichung als Open-Source Projekt stellt das Vertrauen
+ der
+ Studenten
+ sowohl in Hinsicht auf ihre eigene Sicherheit, als auch
+ der
+ Zuverl&#xe4;ssigkeit
+ hinsichtlich m&#xf6;glicherweise zuk&#xfc;nftig n&#xf6;tiger
+ Anspassungen.
+ </p>
+ </div>
+
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">Copyright &#169; 2011.
+ All Rights Reserved.
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>