diff options
Diffstat (limited to 'src/site/xdoc')
-rw-r--r-- | src/site/xdoc/devel-hacking.xml | 70 | ||||
-rw-r--r-- | src/site/xdoc/devel-install.xml | 25 | ||||
-rw-r--r-- | src/site/xdoc/dokumentation.xml | 357 | ||||
-rw-r--r-- | src/site/xdoc/user-allgemein.xml | 87 | ||||
-rw-r--r-- | src/site/xdoc/user-google.xml | 35 | ||||
-rw-r--r-- | src/site/xdoc/user-lightning.xml | 43 | ||||
-rw-r--r-- | src/site/xdoc/user-outlook.xml | 16 |
7 files changed, 633 insertions, 0 deletions
diff --git a/src/site/xdoc/devel-hacking.xml b/src/site/xdoc/devel-hacking.xml new file mode 100644 index 0000000..554e56f --- /dev/null +++ b/src/site/xdoc/devel-hacking.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Hacking DHBW Calendar</title> + <author>Yves Fischer</author> + <date>24.02.2011</date> + </properties> + + <body> + <section name="Dualis"> + <p> + Der Dualis Scraper mit htmlunit ist im package + <tt>...calendar.dualis</tt> + Untergebracht. Vaadin verwendet jedoch für den Login Test noch einen + eigenen Scraper. + </p> + </section> + <section name="Dokumentation"> + <p> + Diese Dokumentation wird im Projektverzeichniss unter + <tt>src/main/site</tt> + verwaltet. + </p> + <p> + Dabei wird durchgehend das + <em>xdoc</em> + Format verwendet. + </p> + <p> + Generiert wird die Dokumentation durch den Befehl + <tt>mvn site:site</tt> + und der Befehl + <tt>mvn site:deploy</tt> + veröffentlicht - entsprechende Berechtigungen vorrausgesetzt - die + Seite auf github im + <em>gh-pages</em> + des Repositories. + </p> + <p> + Dazu muss in der lokalen Maven Konfiguration ( + <tt>$HOME/.m2/settings.xml</tt> + ) der Benutzer zum Zugriff auf das Repository auf + <em>git</em> + eingestellt sein. + </p> + <source> + <settings + xmlns="http://maven.apache.org/SETTINGS/1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 + http://maven.apache.org/xsd/settings-1.0.0.xsd"> + <servers> + <server> + <id>github-project-site</id> + <username>git</username> + </server> + </servers> + </settings> </source> + <p> + Siehe hierzu auch + <a href="http://khuxtable.github.com/wagon-gitsite/">die wagon-gitsite Seite</a> + und ein bestehendes Problem + <a href="https://github.com/khuxtable/wagon-gitsite/issues/7">issue</a> + . + </p> + </section> + </body> +</document> + diff --git a/src/site/xdoc/devel-install.xml b/src/site/xdoc/devel-install.xml new file mode 100644 index 0000000..9796a5b --- /dev/null +++ b/src/site/xdoc/devel-install.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Installation Guide</title> + <author>Yves Fischer</author> + <date>24.02.2011</date> + </properties> + + <body> + <section name="Installation Guide"> + <subsection name="Mit Embedded Servlet Container"> + <source>mvn jetty:run</source> + <p>Standardmäßig lauscht jetty nun auf Port 8080</p> + </subsection> + <subsection name="Mit .war File"> + <p>Mit .war-File für Servlet Container</p> + <source>mvn package +cp +target/dhbwcalendar.war $WEB</source> + </subsection> + </section> + </body> +</document> + diff --git a/src/site/xdoc/dokumentation.xml b/src/site/xdoc/dokumentation.xml new file mode 100644 index 0000000..ac4b483 --- /dev/null +++ b/src/site/xdoc/dokumentation.xml @@ -0,0 +1,357 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Projektdokumentation</title> + <author>Yves Fischer</author> + <date>24.02.2011</date> + </properties> + + <body> + <section name="Einleitung"> + <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> + <subsection name="Dualis"> + <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 + 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> + </subsection> + <subsection name="Das iCalendar Format"> + <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> + <source><![CDATA[ +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 + ]]></source> + <p>Eine Event-Component ist wie folgt aufgebaut, wobei noch weitere + optionale Felder möglich sind:</p> + <source><![CDATA[ +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 + ]]></source> + <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> + </subsection> + </section> + <section name="Umsetzung"> + <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> + <subsection name="Web Scraping"> + <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> + <source><![CDATA[ +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(); + ]]></source> + </subsection> + + <subsection name="iCalendar Datenschnittstelle"> + <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> + </subsection> + <subsection name="Web Datenschnittstelle"> + <p> + Zusätzlich zur ICS-Schnittstelle existiert eine Schnittstelle für + den Webbrowser. Sie ist mit dem Framework + vaadin ( + <a 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> + </subsection> + + <subsection name="Sicherheit des Benutzers"> + <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> + <tr> + <th>Problempunkt</th> + <th>Analyse</th> + </tr> + <tr> + <td>Auf dem PC des Benutzers</td> + <td>Für die Sicherheit + auf seinem + Zugriffsgerät ist jeder + Benutzer + selbst + verantwortlich.</td> + </tr> + <tr> + <td>Die Netzwerkverbindung zum DHBW Calendar</td> + <td>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> + <td>Die Verarbeitung im DHBW Calendar</td> + <td>Die + Verarbeitung + im DHBW Calender speichert + die verarbeiteten + Daten + vorübergehend im + Arbeitsspeicher des + darunterliegenden System. + </td> + </tr> + <tr> + <td>Die Netzwerkverbindung zu Dualis</td> + <td>ist verschlüsselt (HTTPS) + %%TODO + check was bei + unügliten cets + passiert</td> + </tr> + <tr> + <td>Die Verarbeitung in Dualis</td> + <td> Über die + Verarbeitung + innerhalb von Dualis + existieren + keine + Informationen.</td> + </tr> + <tr> + <td>ggf. weitere Verbindungen von Dualis (AD o.ä.)</td> + <td>Ü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> + </subsection> + </section> + <section name="Fazit"> + <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 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> + </section> + </body> +</document> + diff --git a/src/site/xdoc/user-allgemein.xml b/src/site/xdoc/user-allgemein.xml new file mode 100644 index 0000000..6995e77 --- /dev/null +++ b/src/site/xdoc/user-allgemein.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Anbindung Allgemein</title> + <author>Yves Fischer</author> + <date>24.02.2011</date> + </properties> + + <body> + <section name="Anbindung Allgemein"> + <p>Die Software stellt Ihnen eine iCalendar Schnittstelle über HTTP + bereit. Sie ist also mit jeder kompatiblen Kalendersoftware nutzbar. + </p> + <p> + Die Internet RFC zu iCalendar findet sich unter + <a href="http://tools.ietf.org/html/rfc5545">rfc5545</a> + . + </p> + <p>Zusätzlich stellt der DHBW Calendar eine Webschnittstelle bereit + mit dem die Daten in Tabellenform betrachtet werden können. Diese + ist primär zu Test- und Prüfzwecke gedacht.</p> + <subsection name="Beispiel einer iCalendar Ausgabe"> + <source><![CDATA[ +BEGIN:VCALENDAR +PRODID:-//DHBW Horb i08005//DHBW Calender 0.1//EN +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-TIMEZONE:UTC +X-WR-CALDESC:DHBW Calendar +X-WR-CALNAME:DHBW Calendar +BEGIN:VEVENT +DTSTART:20110208T081500Z +DTEND:20110208T104500Z +DTSTAMP:20110208T081500Z +UID:vevent_20110208T081500Z@dhbw.de +CREATED:20110224T211542Z +STATUS:CONFIRMED +SUMMARY:Open Source Systeme +DESCRIPTION:Open Source Systeme +LOCATION:HOR-121 +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART:20110208T123000Z +DTEND:20110208T160000Z +DTSTAMP:20110208T123000Z +UID:vevent_20110208T123000Z@dhbw.de +CREATED:20110224T211542Z +STATUS:CONFIRMED +SUMMARY:Computergrafik HOR-TIT08 +DESCRIPTION:Computergrafik HOR-TIT08 +LOCATION:HOR-121 +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART:20110209T084500Z +DTEND:20110209T120000Z +DTSTAMP:20110209T084500Z +UID:vevent_20110209T084500Z@dhbw.de +CREATED:20110224T211542Z +STATUS:CONFIRMED +SUMMARY:Web Engineering II +DESCRIPTION:Web Engineering II +LOCATION:HOR-121 +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART:20110209T123000Z +DTEND:20110209T150000Z +DTSTAMP:20110209T123000Z +UID:vevent_20110209T123000Z@dhbw.de +CREATED:20110224T211542Z +STATUS:CONFIRMED +SUMMARY:Anwendung von Fallbeispielen +DESCRIPTION:Anwendung von Fallbeispielen +LOCATION:HOR-121 +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR +]]></source> + </subsection> + </section> + </body> +</document> + diff --git a/src/site/xdoc/user-google.xml b/src/site/xdoc/user-google.xml new file mode 100644 index 0000000..983f3e1 --- /dev/null +++ b/src/site/xdoc/user-google.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Anbindung Google Kalender</title> + <author>Yves Fischer</author> + <date>24.02.2011</date> + </properties> + + <body> + <section name="Anbindung Google Kalender"> + <p> + Öffnen Sie ihren + <a href="http://www.google.com/calendar">Google Kalender</a> + und wählen Sie links unter + "Weitere Kalender" den Button + "Hinzufügen". + </p> + <img src="images/dhbwcalendar-google1.jpg" alt="Hinzufügen" /> + <p> + Im folgenden Menü wählen + Sie "Über URL hinzufügen" und + geben die URL + Ihrer Schnittstelle, + etwa + <a href="http://meinhost:8080/dhbwcalendar/ics">http://meinhost:8080/dhbwcalendar/ics</a> + . + </p> + <img src="images/dhbwcalendar-google2.jpg" alt="Ergebnis" /> + <p>Bitte beachten Sie, dass die URL ihrer Schnittstelle für Google + erreichbar sein muss.</p> + </section> + </body> +</document> + diff --git a/src/site/xdoc/user-lightning.xml b/src/site/xdoc/user-lightning.xml new file mode 100644 index 0000000..63d1523 --- /dev/null +++ b/src/site/xdoc/user-lightning.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Anbindung Mozilla Lightning</title> + <author>Yves Fischer</author> + <date>24.02.2011</date> + </properties> + + <body> + <section name="Anbindung Mozilla Lightning"> + <p>Nach der Installation der Lightning + Extension öffnen Sie die + Kalender + Ansicht.</p> + <p>In der linken Sidebar + werden die verfügbaren Kalender verwalten. + Mit + Rechtsklick erscheint + ein Menü in dem "Neuer Kalender" ausgewählt + werden kann.</p> + <p>Wählen sie + "Im Netzwerk" aus. Im folgenden wählen "iCalendar (ICS)" + und + geben + die Adresse ihrer Schnitstelle an, beispielsweise + http://localhost:8080/dhbwcalendar/ics.</p> + <p>Auf der nächsten Seite können + Sie noch Namen und Farben für den + Kalender vergeben. Mit dem + Abschluss des Assistenten wird der + Kalender synchronisiert. Dabei + fordert die Schnittstelle ein + Passwort + von Ihnen an. Geben Sie Ihr + Dualis-Login an.</p> + <center> + <img src="images/dhbwcalendar-lightning.jpg" alt="Mozilla Lightning" /> + </center> + </section> + </body> +</document> + diff --git a/src/site/xdoc/user-outlook.xml b/src/site/xdoc/user-outlook.xml new file mode 100644 index 0000000..486df58 --- /dev/null +++ b/src/site/xdoc/user-outlook.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> + <properties> + <title>Anbindung Microsoft Outlook</title> + <author>Yves Fischer</author> + <date>24.02.2011</date> + </properties> + + <body> + <section name="Anbindung Microsoft Outlook"> + <p>Dokumentation fehlt noch.</p> + </section> + </body> +</document> + |