Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Augabenblatt 2 Erstelldatum: 19.04.2008 1. Begriffe ● ● ● ● ● CSS (Cascading Style Sheets) ist eine deklarative StyleSheet­Sprache, die die Darstellung eines besonders ausgezeichneten Inhalts bestimmt. Eingesetzt mit HTML oder XML legt CSS fest, wie die Abschnitte, die gleich aussehen sollen, dargestellt werden. Im entsprechenden HTML­oder XML­ Dokument wird nur die Bedeutung der Abschnitte beschrieben. Dazu ist es wichtig, dass die gleich ausgezeichneten Abschnitte als eine Klasse erkannt werden. Man trennt auf diese Weise den Inhalt von dem optischen Design. CMS (Content Management System) ist ein Anwendungssystem, das die Organisation und Bearbeitung von Inhalten wie Text­ und Multimedia­ Dokumente ermöglicht. Die zu erstellenden Informationen, meist für das Web, werden als Content (Inhalt) bezeichnet. Zum Bedienen des Systems sind keine Programmierkentnisse erforderlich. Extension steht für Erweiterung. Ohne den vorhandenen Quellcode zu verändern, können Erweiterungen bzw. zusätzliche Funktionalitäten der Rahmenapplikation OLAT hinzugefügt werden. Dafür werden die sogennanten Extension Points, Erweiterungspunkte, verwendet, die als Schnittstellen zu Verfügung stehen. HTML (Hypertext Markup Language) ist eine Hypertext­ Auszeichnungssprache zur Beschreibung und Strukturierung von Inhalten in Dokumenten, die die Basis für das World Wide Web sind. HTML ist keine Programmiersprache, man spricht hier nicht von "Programmieren" sondern von "Notieren". JSP (Java Server Pages) bezeichnet die von Sun Microsystems entwickelte Technologie zur dynamischen Generierung von Dokumenten. Der deklarative Stil von JSP ermöglicht dabei eine bessere Trennung von Design und Anwendungslogik. Grundsätzlich lassen sich JSP als HTML­oder XML­Seite mit zusätzlichen JSP­Tags und Java­Code beschreiben. Mit der Programmiersprache Java kann ausschließlich die Logik implementiert werden und das Design kann dagegen weiterhin in HTML durchgeführt werden. Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Seite 1 von 8 Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Augabenblatt 2 Erstelldatum: 19.04.2008 Als Webanwendung basiert OLAT auf Servlets und JSPs, deren Begriffserklärungen deswegen notwendig sind. ● OLAT (Online Learning and Training) ist ein von der Züricher Universität entwickelte Open Source Learning Management System mit einer sehr modularen, erweiterbaren und anpassbaren Architektur. Seit Version 3.0 wird das System von komponentenbasierter Java­Anwendung unterstützt. Ziele sind, Vorlesungen und Übungen über das Internet anbieten zu können, wobei der Aufbau und die Durchführung von Lehrveranstaltungen im Vordergrund stehen. ● SCORM (Sharable Content Object Reference Model) repräsentiert eine Anzahl von Standards und Spezifikationen aus diversen Quellen und ermöglicht die Austauschbarkeit und die Wiederverwendbarkeit in verschiedenen Umgebungen von E­Learning­Inhalten. Mit diesem Referenzmodell können Lernressourcen in OLAT erzeugt werden. ● Servlets bezeichnen Java­Klassen, die als Servererweiterungen die Funktionalität des Servers in sofern ergänzen, dass sie auf ganz bestimmte Anfragen eines Clients mit beliebig dynamisch erzeugten Inhalt antworten können. Sie sind gut zum Erzeugen von Binärdaten geeignet wie z.B. von Bildern, Archiven usw. Alle Servlets müssen die Java­Klasse javax.servlet.Servlet oder eine davon abgeleitete Klasse implementieren, damit sie innerhalb eines J2EE (Java­2­Plattform Enterprise Edition) Applicationserver laufen können. ● Tomcat bezeichnet eine Laufzeitumgebung, ein in Java geschriebener Open Source Servlet­Container. Tomcat wurde im Rahmen des Jakarta­Projekts von Apache entwickelt und wurde speziell für die JavaServer Pages geplant. Neben einem kompletten HTTP­Server stellt Tomcat für die Kommunikation mit anderen Servern den Coyote­Connector zu Verfügung. Mit Hilfe des JSP­ Compilers Jasper können auch JavaServer Pages in Servlets übersetzt und ausgeführt werden. ● XML (Extensible Markup Language) bezeichnet eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Textdatei­Form und wird beim Austausch von Daten zwischen unterschiedlichen IT­Systemen eingesetzt. Im OLAT­Projekt wird XML auch für die Konfiguration und die Anpassung der Komponenten sowie für die Kommunikation angewendet. Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Seite 2 von 8 Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Augabenblatt 2 Erstelldatum: 19.04.2008 2. Konzepte 2.1 MVC: MVC ist ein Architekturmuster, das Softwaresysteme in drei Einheiten gliedert: Datenmodell (Model), Präsentation(View) und Programmiersteuerung (Controller). Die strikte Trennung zwischen Businesslogik, Ablauflogik, Darstellung und Datenhaltung erleubt eine schnelle und übersichtliche Entwicklung, die Wiederverwendbarkeit der Komponenten und eine leichte Erweiterbarkeit. Model: Das Modell enthält die Businesslogik und beschreibt die Kernfunktionalitäten und Anwendungsdaten, unabhängig von Präsentations­ und Ablauflogik. View: Die Präsentation, ist für die Darstellung der Daten aus dem Modell verantwortlich, realisiert bzw. bildet die Benutzerinteraktionen auf dem Bildschirm ab. Die View muss das Modell überwachen, um sich nach Änderungen von Daten im Modell zu aktualisieren. Controller: Der Controller steuert den Ablauf der Programme. Der Controller verwaltet die Views und bearbeitet die von View gelieferten Benutzeraktionen, wertet diese aus und verändert die entsprechenden Daten im Modell. 2.2 JEE: JEE(Java Platform, Enterprise Edition) spezifiziert eine Softwarearchitektur, die zur transaktionsbasierten Ausführung von Java­basierten Anwendungen dient. Sie definiert Softwarekomponenten und Dienste, auf deren Basis aus modularen Komponenten verteilte, mehrschichtige Anwendungen entwickelt verden können. 2.3 GUI­Framework: Das Olat­Web­GUI­Framework ist ein vollständig in Java geschriebenes, Komponenten­basiertes, MVC­orientiertes Framework, das eine effizientere Entwicklung und Pflege von Webapplikationen ermöglicht. Olat kann sowohl mit als auch ohne AJAX­Unterstützung betrieben werden. 2.4 Hibernate: Hibernate ist ein Open­Source­Persistenz­Framework für Java. Es ermöglicht die Speicherung von Objekt­Daten in einer relationalen Datenbank und aus entsprechenden Datensätzen wiederum Objekte zu erzeugen. Dadurch kann auf die Programmierung von SQL­Abfragen verzichtet werden und die Anwendung ist unabhängig vom SQL­Dialekt der verwendeten Datenbank. Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Seite 3 von 8 Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Augabenblatt 2 Erstelldatum: 19.04.2008 2.5 Spring: Spring ist ein Open­Source­Framework für die Java­Plattform, das die Entwicklung von Java/JEE­Anwendungen vereinfacht. Das Framework basiert auf folgenden Prinzipien: Dependency Injection: Den Objekten werden die abhängigen Objekte bzw. Ressourcen zugewiesen. Sie müssen sie nicht selbst suchen. Aspektorientierte Programmierung: Unter aspektorientierter Programmierung versteht man ein Programmierparadigma, das anstrebt, verschiedene logische Aspekte einer Anwendung getrennt voneinander zu entwerfen, entwickeln und zu testen. Templates: Templates dienen dazu, die Arbeit mit einigen APIs zu vereinfachen, indem Ressourcen automatisch aufgeräumt werden und Fehlersituationen einheitlich behandelt werden. 2.6 Servlet­Architektur: Als Servlets bezeichnet man Java­Klassen, deren Instanzen innerhalb eines JEE­Applikationsservers Anfragen von Clients entgegen nehmen und beantworten. Der Inhalt der Antworten kann dynamisch, also zur Zeit der Anfrage, erstellt werden und muss nicht bereits statisch für den Webserver verfügbar sein. 3. Applikationsbeschreibung OLAT (Online Learning and Training) ist ein webbasiertes Learning Management System (LMS), das seit 1999 an der Züricher Universität entwickelt wird. Mit Beachtung der Apache 2.0 Open Source Lizenz ist die Software gebührenfrei erweiterbar und verwendbar. Das LMS OLAT baut auf modernen Technologien auf und ist zu 100% in der Programmiersprache Java geschrieben. Der Betrieb unter diversen Betriebssystemen wie Linux, Windows, MacOSX, BSD, Unix oder Solaris benötigt keine zusätzlichen Anpassungen. Zur Persistierung der Daten können ebenfalls verschiedene Datenbank­Managementsysteme wie MySQL, Postgres oder Oracle eingesetzt werden. OLAT beruht auf der Java 2 Enterprise Edition (J2EE) und verwendet eine Servlet­basierte Architektur. Mit dem MVC Framework wird eine moderne, fehlerreduzierte und schnelle Entwicklung erlaubt, wobei eine strikte Trennung zwischen Darstellungs­, Ablauf­, Businesslogik und Datenhaltung besteht. Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Seite 4 von 8 Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Augabenblatt 2 Erstelldatum: 19.04.2008 Mit zunehmenden Anforderungen an das Campusmanagement wächst OLAT zu einer modularen, leicht anpassbaren und modifizierbaren Architektur. Unterstützt werden dabei die gängigen E­Learning­Standards wie IMS Content Packaging, IMS QTI oder SCORM. Funktionen Zu den wichtigsten Funktionen von OLAT zählen die Organisation eines flexiblen Kurssystems, die allgemeine Verwaltung von Lernressourcen inklusive Katalogisierung und die Bereitstellung von Editorenwerkzeugen für Tests, Fragebögen oder Kurse. Weitere Funktionalitäten und Eigenschaften von OLAT, die einem unternehmensinternen (privaten), einem kooperativen (kollaborativen) und einem öffentlichen Bereich zu entnehmen sind, werden im Folgenden aufgezählt: Privater (Nutzer­)Bereich • Profil, Einstellungen und Passwort anpassen • Portal planen und organisieren • Kalender verwalten und Notizen führen • Kurse bookmarken, Persönliche Ordner • Persönliche Leistungen im besuchten Kurs anschauen • Kurse starten, Einschreibungen in Veranstaltungen Kollaborativer Bereich und kooperative Aktivitäten • Gruppenkalender • Mitgliederlisten anschauen • Benachrichtigungsservice via E­Mail oder RSS, Chat, Wiki, Forum für Gruppenkommunikation • Dateien in Ordnern austauschen öffentlicher Bereich • Administration • Durch Gruppenmanagement Kurse verwalten, Kurskonfiguration Kurse einstellen • Durch Rechtemanagement den Zugang zu Werkzeugen verteilen Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Seite 5 von 8 Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Augabenblatt 2 Erstelldatum: 19.04.2008 • Datenarchivierung • Durch Bewertungswerkzeug Punkte von Kursteilnehmern anschauen und editieren Rechte­ und Rollenkonzept OLAT ist rechtebasierend und hat einen hierarchischen Aufbau, der sich an das Policy­Konzept von Java anlehnt. Es gibt Identities (User), Gruppen, die Identities haben (sog. Securitygroups, nicht zu verwechseln mit Businessgroups), Rechte, Ressourcen und Policies. User bilden eine oder mehrere Gruppen und haben Rechte (z.B. „lesen“) auf eine gewisse Ressource. Die entsprechende Gruppe wird von einer Policy (Kombination von Gruppe, Recht und Ressource) referenziert und somit hat die Policy einen Fremdschlüssel auf die Gruppe, einen auf die Ressource und einen Text für das Recht. BusinessGroup: ist ein Konzept für eine Gruppe, die etwas gemeinsames macht und kollaborativ aktiv ist. BusinessGroup hat einen Namen und Beschreibung und implementiert eine Anzahl von Funktionen, die nützlich für eine Zusammenarbeit sein können. SecurityGroup: Mit der Erzeugung von einer Lernressource, z.B. einem Kurs, wird automatisch eine SecurityGroup für diese Ressource erzeugt, der Erzeuger wird in die Gruppe hinzugefügt. Jeder in der Gruppe kann dann die Ressource verwalten. Erweiterbarkeit OLAT hat einen Mechanismus zur Erweiterung, ähnlich wie von Eclipse ­Plugin. Damit kann man ohne Zugriff auf den Quellcode OLAT modifizieren. Die sog. „Extension Points“ ermöglichen es, OLAT nach kundenspezifischen Bedürfnissen zu erweitern, ohne dabei änderungen am Grundsystem vornehmen zu müssen. Somit wird die Installation von Updates erleichtert. Beispiele für solche Erweiterungen wären ein zusätzlicher Navigationspunkt in der Hauptnavigation oder ein neuer Kursbaustein. Um OLAT zu erweitern, wird ein Pfad in die Datei olat_extensions.xml hinzugefügt und die eigene Datei extension.jar in WEB­INF/lib Directory. Das Paket ch.goodsolutions.demoextension zeigt, wie man SitesCreator benutzen kann. Folgende Extension Points werden definiert: Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Seite 6 von 8 Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Extension interface org.olat.extension s.globalmapper Extension point org.olat.dispatcher .DispatcherAction Augabenblatt 2 Erstelldatum: 19.04.2008 Klasse benutzt die Erweiterung org.olat.dispatcher. DispatcherAction Beschreibung Extension kann Link mit dem Text und der einsprechenden Beschreibung besorgen. Sie definieren die Aktion, was passiert, wenn der Link geklickt wird. Extension kennt den Pfad, wo sich die Stylesheets in OLAT befinden. Alle CSS Definitionen aus allen Erweiterungen teilen einen Namensraum. Es ist nützlich, kurze Namen von Extension vor die CSS- Klasse zu setzen. Die Definition der CSS Klasse soll nicht mit „o_“ beginnen, da es für OLAT Basissystem benutzt wird. Extension kann zusätzlich HibernateDarstellung hinzu fügen. Die Erzeugung einer Tabelle hier ist sehr schwer. Diese braucht ein separates SQL-Script in der Datenbasis Dialekt, den Sie benutzen. Wenn Extension Sites wie „Home“, „Group“, „Learning Resources“ hinzufügen will, dann soll SitesCreator geöffnet werden. Eine Liste von Sitedefinition-Objekten muss zurückgegeben werden und jedes von ihnen kann eine SiteInstanz erzeugen. MapperProvider org.olat.extension s.action.ActionEx tension org.olat.home.Ho meMainController … org.olat.extension s.css.CSSIncluder org.olat.gui.compo nents.Window org.olat.gui.css.CSS Generator org.olat.extension s.hibernate.Hiber nateConfigurator org.olat.persistenc e.DB org.olat.persistence .DB org.olat.extension s.sitescreator.Site sCreator org.olat.gui.contro l.generic.dtabs.DT abs org.olat.FullChiefCo ntroller Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Extension kann aus einem Mapper bestehen und sie kennt den Pfad, der mit dem Mapper assoziiert. Seite 7 von 8 Gruppe: SWP08­2­OLAT Projektleiter: Vladislava Nadova Augabenblatt 2 Erstelldatum: 19.04.2008 OLAT­Verzeichnisse Beschreibung der OLAT­Verzeichnisse: /INSTALL_DIR | +­/olatdata : OLAT Laufzeitdaten | | | +­/bcroot | | | | | +­/course : Kurse | | +­/cts : Gruppenordner | | +­/forum : Dateinanhänge zu Forumseinträgen | | +­/homepages : Benutzer Homepages | | +­/homes : Benutzerordner | | +­/repository : Lernressourcen | | +­/scorm : SCORM Laufzeitdaten | | +­/search_index : Der Index der Volltextsuche | | +­/tmp : Temporäre Daten | | | +­/calendars : Kalenderdateien | +­/logs : Log Dateien | +­/monitoring : Statistikdaten der Systemerwachung | +­/recording : Daten des Recording/Test Frameworks | +­/system : Installierte Upgrades | +­/tmp : Temporäre Daten +­/webapp : Ordner für den Betrieb von OLAT (Applikationsdateien) | | | +­/examples : Demo Kurs | +­/help : Hilfe und Support | +­/static : statische Elemente des Portals wie Cascading Style Sheets oder Bilder | +­/WEB­INF : Hauptordner einer Servlet­Anwendung(enthält Konfigurations­ dateien von OLAT, z.B. olat_extensions.xml)–erforderlich für Entwicklungsarbeiten | | | | | +­/classes : compilierte Quelldateien | | +­/lib : zusätzliche Java­Bibliotheken | | +­/patchesSrc : enthält Pfade zur Bibliotheken | | +­/src : Quelldateien 4. Quellen http://www.olat.org/docu/dev/olat_dev_docu_one_page.html#d0e1983 http://www.olat.org/website/en/download/olat_install_admin_docu_one_page.htmlhttp://w ww.olat.org/website/en/html/unit_development.html http://www.olat.org/website/en/html/download_documentation.html http://www.frentix.com/de/resources/docu/OLAT­Systemdokumentation.pdf http://pcai042.informatik.uni­leipzig.de/swp/Material/KP­Allgemein.pdf Aufgabenblatt 2 Softwaretechnikpraktikum – SS 2008 Seite 8 von 8