diff options
author | yvesf <yvesf-git@xapek.org> | 2011-02-24 22:41:27 +0100 |
---|---|---|
committer | yvesf <yvesf-git@xapek.org> | 2011-02-24 22:41:27 +0100 |
commit | 3ecd2028df12300bd00616147f8803edd56bf8fb (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /dokumentation.html | |
parent | 4ba8c3222647851220ae5da03e33e733d2fc7016 (diff) | |
download | dhbw-calendar-3ecd2028df12300bd00616147f8803edd56bf8fb.tar.gz dhbw-calendar-3ecd2028df12300bd00616147f8803edd56bf8fb.zip |
cleanup
Diffstat (limited to 'dokumentation.html')
-rw-r--r-- | dokumentation.html | 462 |
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>
- | <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>
|