diff options
Diffstat (limited to 'target/site/dokumentation.html')
-rw-r--r-- | target/site/dokumentation.html | 462 |
1 files changed, 462 insertions, 0 deletions
diff --git a/target/site/dokumentation.html b/target/site/dokumentation.html new file mode 100644 index 0000000..b88a3ea --- /dev/null +++ b/target/site/dokumentation.html @@ -0,0 +1,462 @@ +<!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>
+ | <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ür viele Privatleute und in + vielen Unternehmen.</p> + <p>Firmeninterne und -übergreifende Geschäfte nutzen die vielen + Mö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ürttemberg + stellt den Studenten einen elektronischen + Vorlesungsplan zur Verfügung. + Eine + Schnittstelle zur Anbindung an + gängige Kalenderlö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ü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ösung des alten + ,,BAsys''-Verwaltungssystem entwickelt. Die + Endung ,,-is'' steht + fü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önnen über den Dualis Web-Client ihre Noten, eine + Leistungsübersicht ü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ä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ö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ür Zeit- und + Textformatierung.</p> + <p> + Zeiten kö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ätzlich als ASCII-Test dargestellt. Es bestehen + jedoch + Fluchtzeichen fü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über einem menschlichen Benutzer ausgerichtet ist.</p> + <p>Eine Web-API von Dualis gibt anscheinend nicht. + Demzufolge müssen + die Webseiten relativ umständlich analysiert + werden, um an die + benötigten Informationen zu gelangen. Diesen Vorgang + nennt man + Web-Scraping (engl. ,,kratzen'').</p> + + <p>Dadurch wird die Schnittstelle anfälliger für kleinere Änderungen + an dem Dualis Web-Client. Schon das Ändern der Beschriftung eines + bestimmten Links kann die Funktion beeinträchtigen.</p> + + <p>Für einen zuverlässigen Betrieb ist es daher unbedingt nö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ä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("cn_loginForm"); +usernameField = loginForm.getInputByName("usrname"); +usernameField.type(username); + +passwordField = loginForm.getInputByName("pass"); +passwordField.type(password); + +submitButton = loginForm.getInputByValue("Anmelden"); +page = submitButton.click(); + +HtmlAnchor anchorByText = page.getAnchorByText("Stundenplan"); +page = anchorByText.click(); + </pre></div> + </div> + + <div class="section"><h3>iCalendar Datenschnittstelle<a name="iCalendar_Datenschnittstelle"></a></h3> + <p>Die gängige Methode zum Austausch von iCalendar Daten sind + entweder + lokale Files + oder der entfernte Zugriff über HTTP.</p> + + <p>Mit diesem Projekt wird der Zugriff über HTTP ermöglicht. Dabei + entfällt + zusätzlich der Bedarf eine Benutzerkonfiguration zu + pflegen, da der Benutzer ü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 übernimmt.</p> + + <p> + Bei der + Ansteurerung der Schnittstelle ü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ätzlich zur ICS-Schnittstelle existiert eine Schnittstelle für + den Webbrowser. Sie ist mit dem Framework + vaadin ( + <a class="externalLink" href="http://vaadin.com">vaadin.com</a> + ) + umgesetzt und bietet die + Funktionalitä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ürdigkeit zu + untersuchen.</p> + + <p>Hinsichtlich der Authentifizierungsinformationen die der + Benutzer + DHBW Calendar + ü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ür die Sicherheit + auf seinem + Zugriffsgerä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übergehend im + Arbeitsspeicher des + darunterliegenden System. + </td> + </tr> + <tr class="a"> + <td align="left">Die Netzwerkverbindung zu Dualis</td> + <td align="left">ist verschlüsselt (HTTPS) + %%TODO + check was bei + unügliten cets + passiert</td> + </tr> + <tr class="b"> + <td align="left">Die Verarbeitung in Dualis</td> + <td align="left"> Über die + Verarbeitung + innerhalb von Dualis + existieren + keine + Informationen.</td> + </tr> + <tr class="a"> + <td align="left">ggf. weitere Verbindungen von Dualis (AD o.ä.)</td> + <td align="left">Über + mö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öglicht den Studenten in + bezug auf + die + Organisierung ihres Studentalltags eine neue Dimension + von Integration und + Komfort.</p> + <p> + Die Unzulänglichkeit des ,,Dualis'' Backend wurde durch die + Verwendung einer High-Level Schnittstelle begegnet. Anstatt + regulärer + Ausdrücke ( + <a class="externalLink" href="http://dhbwconnector.sourceforge.net/">DHBW Connector</a> + ) + werden die Eingabeelemente angesprochen + welche der Benutzer auch + sehen würde. + </p> + <p> + Die Verö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ässigkeit hinsichtlich + möglicherweise zukünftig nötiger Anspassungen. + </p> + </div> + +
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">Copyright © 2011.
+ All Rights Reserved.
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
|