summaryrefslogtreecommitdiff
path: root/dokumentation.html
diff options
context:
space:
mode:
Diffstat (limited to 'dokumentation.html')
-rw-r--r--dokumentation.html462
1 files changed, 0 insertions, 462 deletions
diff --git a/dokumentation.html b/dokumentation.html
deleted file mode 100644
index b88a3ea..0000000
--- a/dokumentation.html
+++ /dev/null
@@ -1,462 +0,0 @@
-<!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="project-reports.html" title="Reports/API">Reports/API</a>
- </li>
- <li class="none">
- <a href="devel-hacking.html" title="Hacking">Hacking</a>
- </li>
- <li class="none">
- <a href="dependencies.html" title="Dependencies">Dependencies</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 die vielen
- 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;sungen 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.Unter dem Namen ,,BAsys Neu'' wurde Dualis als
- Abl&#xf6;sung des alten
- ,,BAsys''-Verwaltungssystem entwickelt. Die
- Endung ,,-is'' steht
- f&#xfc;r
- Informationssystem (
- <a class="externalLink" href="http://www.dhbw-stuttgart.de/themen/aktuelles/meldung/2008/11/basys-wird-dualis.html">Pressemeldung</a>
- ).
- </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. Dazu gibt es verschiedene
- Klassen wie Event, To-Do oder
- Free/Busy-Information.
- Im Rahmen dieses
- Projekts werden nur Events
- genutzt.</p>
- <p>
- iCalendar Daten besitzen den MIME Content-Type
- <tt>{text/calender</tt>
- . 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
- <tt>YYYYMMDDTHHmmssZ</tt>
- dargestellt
- werden.
- <tt>T</tt>
- ist ein
- Trenner zwischen Datum und
- Zeit,
- <tt>Z</tt>
- zeigt an,
- dass es sich um
- einen UTC-Timestamp
- handelt (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 ()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 anscheinend 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) angeboten wird. Oder einfach direkt iCalendar
- Format.</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 = page.getAnchorByText(&quot;Stundenplan&quot;);
-page = anchorByText.click();
- </pre></div>
- </div>
-
- <div class="section"><h3>iCalendar Datenschnittstelle<a name="iCalendar_Datenschnittstelle"></a></h3>
- <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, da der Benutzer &#xfc;ber HTTP Basic
- Authentication (nach RFC
- 1945 Sec. 11.1) vom Client
- abgefragt wird.</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
- <tt>@</tt>
- im benutzername mit
- <tt>%40</tt>
- 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 (
- <a class="externalLink" href="http://vaadin.com">vaadin.com</a>
- )
- 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>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>
- Die Unzul&#xe4;nglichkeit des ,,Dualis'' Backend wurde durch die
- Verwendung einer High-Level Schnittstelle begegnet. Anstatt
- regul&#xe4;rer
- Ausdr&#xfc;cke (
- <a class="externalLink" href="http://dhbwconnector.sourceforge.net/">DHBW Connector</a>
- )
- werden die Eingabeelemente angesprochen
- welche der Benutzer auch
- sehen w&#xfc;rde.
- </p>
- <p>
- Die Ver&#xf6;ffentlichung als Open-Source Projekt unter
- <a href="license.html">AGPL</a>
- 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>