Erklärung I Erklärung Hiermit erkläre ich, dass ich die vorliegende Diplomarbeit selbständig angefertigt habe. Es wurden nur die in der Arbeit ausdrücklich benannten Quellen und Hilfsmittel benutzt. Wörtlich oder sinngemäß übernommenes Gedankengut habe ich als solches kenntlich gemacht. Die Arbeit wurde in gleicher oder ähnlicher Form keiner anderen Prüfungsbehörde zur Erlangung eines akademischen Grades vorgelegt. Ort, Datum Unterschrift Kurzfassung II Kurzfassung Gegenstand dieser Arbeit ist die Ausarbeitung eines Konzepts für die Verwaltung von E-Learning Prozessen bei kooperierenden Content Management Systemen (CMS) auf der Grundlage einer vorhergehenden Bachelorthesis (Kim Matthäß: „Kontrollierter automatischer Datenaustausch zwischen befreundeten Content Management Systemen“, HS Karlsruhe, Fak. WI, 2005) . Hintergrund der Arbeit ist die Idee, dass sowohl Lernobjekte als auch die Administration des Lehrbetriebs auf mehreren Content Management Systemen verteilt sein können. Hierbei sind über mehrere CMS verteilte Lernobjekte wie Projektaufgaben und Objekte der Administration wie Semester-/Veranstaltungsdaten zu verwalten. In dieser Arbeit wird ein Lösungsvorschlag für die Verwaltung von E-Learning Prozessen bei kooperierenden Content Management Systemen vorgestellt. Um die Realisierbarkeit des Konzepts nachzuweisen, wird zunächst eine Testumgebung implementiert. Diese Testumgebung wird durch zwei konkrete Content Management Systeme implementiert, die verteilte Lernobjekte und Administrationsobjekte beinhalten. Der Lösungsvorschlag für die gegebene Problemstellung basiert auf der Technologie der Web Services. Die beiden CMS werden durch die Web Services in der Verwaltung komplexer Lernprozesse, wie z.B. der Vorkorrektur durch Tutoren und der endgültigen Bewertung durch den Dozenten, unterstützt. Schließlich werden auf der Basis des erstellten Prototyps die Möglichkeiten der Verwaltung von Lernprozessen durch Workflow-Management anhand von BPEL und XML-Netzen diskutiert. Schlagwörter: BPEL, CMS, Content Management Systeme, E-Learning, Web Services, Workflow-Management, XML-Netze Inhaltsverzeichnis III Inhaltsverzeichnis Erklärung.........................................................................................................................I Kurzfassung...................................................................................................................II Inhaltsverzeichnis........................................................................................................ III Abbildungsverzeichnis.................................................................................................V Tabellenverzeichnis..................................................................................................... VI Abkürzungsverzeichnis..............................................................................................VII 1 Aufgabenstellung..................................................................................................... 1 2 Zielsetzung...............................................................................................................2 3 Begriffsklärung und Ausgangsszenario................................................................ 3 3.1 Content Management Systeme...................................................................... 3 3.1.1 Allgemeines............................................................................................ 3 3.1.2 Klassifikation von CMS........................................................................... 5 3.1.3 Probleme bei verteilten Inhalten............................................................. 6 3.2 E-Learning...................................................................................................... 7 3.2.1 Allgemeines............................................................................................ 7 3.2.2 Formen von E-Learning.......................................................................... 9 3.2.3 E-Learning auf der Basis von CMS...................................................... 10 3.3 Web Services................................................................................................11 3.3.1 Allgemeines.......................................................................................... 11 3.3.2 Transaktionen und Prozesse mit Web Services................................... 13 3.3.3 Workflow Management bei Web Services............................................ 15 3.4 Ausgangsszenario........................................................................................ 17 3.4.1 Allgemeines.......................................................................................... 17 3.4.2 Auswahl eines CMS..............................................................................17 3.4.3 Architektur des Gesamtsystems........................................................... 20 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services............................................................................................................ 22 4.1 Modul „Zeiterfassung“................................................................................ 22 4.1.1 Problembeschreibung...........................................................................22 4.1.2 Funktionsbeschreibung.........................................................................22 4.1.3 Modell................................................................................................... 23 4.1.3.1 Aktivitätsdiagramm...................................................................24 4.1.3.2 Use-Case................................................................................. 27 4.1.3.3 Sequenzdiagramm................................................................... 28 Inhaltsverzeichnis IV 4.1.4 Lösungsvorschlag................................................................................. 29 4.2 Modul „Verwaltung von E-Learning Objekten“..............................................30 4.2.1 Problembeschreibung...........................................................................30 4.2.2 Funktionsbeschreibung.........................................................................30 4.2.3 Modell................................................................................................... 31 4.2.3.1 Aktivitätsdiagramm...................................................................32 4.2.3.2 Use-Case................................................................................. 35 4.2.3.3 Sequenzdiagramm................................................................... 37 4.2.4 Lösungsvorschlag................................................................................. 39 5 Prototypische Realisierung...................................................................................41 5.1 Modellierung................................................................................................. 41 5.1.1 Zeiterfassung........................................................................................ 41 5.1.1.1 Architektur................................................................................ 41 5.1.1.2 Klassendiagramm.................................................................... 42 5.1.2 Verwaltung von E-Learning Objekten................................................... 43 5.1.2.1 Architektur................................................................................ 43 5.1.2.2 Klassendiagramm.................................................................... 44 5.2 Implementierung........................................................................................... 48 5.2.1 Code-Beispiele Client (Webseiten).......................................................50 5.2.2 Code-Beispiel Server (Web Services).................................................. 51 6 Feasibility Study Workflow-Management............................................................ 57 6.1 BPEL.............................................................................................................57 6.2 XML-Netze.................................................................................................... 61 7 Sicherheitsaspekte................................................................................................63 7.1 Allgemeine Sicherheitsanforderungen.......................................................... 63 7.2 Sicherheitslösungen für Web Services......................................................... 65 8 Zusammenfassung und Ausblick......................................................................... 67 Anhang: Quelltexte..................................................................................................... 70 Glossar......................................................................................................................... 81 Literaturverzeichnis.................................................................................................... 83 Stichwortverzeichnis.................................................................................................. 85 Abbildungsverzeichnis V Abbildungsverzeichnis Abbildung 3.1: Architektur Gesamtsystem................................................................................................... 20 Abbildung 4.1: Vereinfachtes Modell des Moduls „Zeiterfassung“............................................................... 24 Abbildung 4.2: Studentische Aktivitäten am Modul „Zeiterfassung“............................................................. 25 Abbildung 4.3: Aktivitäten eines Dozenten am Modul „Zeiterfassung“......................................................... 26 Abbildung 4.4: Use-Case Modul „Zeiterfassung“ Student............................................................................ 27 Abbildung 4.5: Use-Case Modul „Zeiterfassung“ Dozent............................................................................. 28 Abbildung 4.6: Sequenzdiagramm Modul „Zeiterfassung“........................................................................... 29 Abbildung 4.7: Vereinfachtes Modell des Moduls „Verwaltung von E-Learning Objekten“.......................... 32 Abbildung 4.8: Aktivitätsdiagramm „E-Learning Objekte“ Student............................................................... 33 Abbildung 4.9: Aktivitätsdiagramm „E-Learning Objekte“ Tutor................................................................... 34 Abbildung 4.10: Aktivitätsdiagramm „E-Learning Objekte“ Dozent............................................................. 35 Abbildung 4.11: Use-Case Modul „Verwaltung von E-Learning Objekten“ Student..................................... 36 Abbildung 4.12: Use-Case Modul „Verwaltung von E-Learning Objekten“ Tutor......................................... 36 Abbildung 4.13: Use-Case Modul „Verwaltung von E-Learning Objekten“ Dozent...................................... 37 Abbildung 4.14: Sequenzdiagramm Modul „Verwaltung von E-Learning Objekten“ Student....................... 38 Abbildung 4.15: Sequenzdiagramm Modul „Verwaltung von E-Learning Objekten“ Dozent........................ 39 Abbildung 4.16: Sequenzdiagramm Modul „Verwaltung von E-Learning Objekten“ Tutor........................... 39 Abbildung 5.1: Komponentendiagramm Modul „Zeiterfassung“................................................................... 41 Abbildung 5.2: Klassendiagramm „Zeiterfassung“........................................................................................42 Abbildung 5.3: Komponentendiagramm Modul „Verwaltung von E-Learning Objekten“ Dozent..................43 Abbildung 5.4: Komponentendiagramm Modul „Verwaltung von E-Learning Objekten“ Student.................43 Abbildung 5.5: Komponentendiagramm Modul „Verwaltung von E-Learning Objekten“ Tutor.....................44 Abbildung 5.6: Pakete Modul „Verwaltung von E-Learning Objekten“......................................................... 44 Abbildung 5.7: Klassendiagramm Modul „Verwaltung von E-Learning Objekten“ Paket Dozent................. 46 Abbildung 5.8: Klassendiagramm Modul „Verwaltung von E-Learning Objekten“ Paket Student................ 47 Abbildung 5.9: Klassendiagramm Modul „Verwaltung von E-Learning Objekten“ Paket Tutor.................... 48 Abbildung 5.10: Die Stellvertreterklasse (Proxyklasse)................................................................................ 49 Abbildung 5.11: Webseite für den Web Service Student..............................................................................52 Abbildung 5.12: Aufruf der Web Methode „GetSemesterKalenderwochen“................................................. 53 Abbildung 5.13: Rückgabewerte der Web Methode „GetSemesterKalenderwoche“................................... 53 Abbildung 6.1: Prozess „Hausaufgabe abgeben“......................................................................................... 58 Abbildung 7.1: Beteiligte Systeme und Angriffsmöglichkeiten bei Web Services.........................................64 Tabellenverzeichnis VI Tabellenverzeichnis Tabelle 3.1: Abgrenzung von Web-Begriffen..................................................................................................3 Tabelle 3.2: Auswahlkriterien für ein CMS................................................................................................... 18 Tabelle 7.1: Sicherheitsstandards für Web Services.................................................................................... 66 Abkürzungsverzeichnis VII Abkürzungsverzeichnis ASP Active Server Pages BPEL(4WS) Business Process Execution Language (for Web Services) CAE Computer Aided Engineering CD Compact Disc CMS Content Management System DISCO Discovery of Web Services GXSL Graphical XML Schema Definition Language HP Hewlett-Packard HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol IBM International Business Machines Corporation IIS Internet Information Service IPSec Internet Protocol Security MITM Man in the middle attacks MVC Model View Control OASIS Organization for the Advancement of Structured Information Standards PHP Hypertext Preprocessor SAML Secure Assertion Markup Language SOAP Simple Object Access Protocol Abkürzungsverzeichnis VIII SSL Secure Socket Layer UDDI Universal Description, Discovery and Integration UML Unified Modeling Language VPN Virtual Private Network WSCL Web Services Conversation Language WSDL Web Services Description Language WSFL Web Services Flow Language WS-Security Web Service-Security W3C World Wide Web Consortium XACML Extensible Access Control Markup Language XKMS XML Key Management Specification XML Extensible Markup Language XManiLa XML Manipulation Language YAWL Yet Another Workflow Engine 1 Aufgabenstellung 1 1 Aufgabenstellung Content Management Systeme (CMS), die im Umfeld des E-Learning zum Einsatz kommen, sind nicht selten auf die Lerninhalte fokussiert. Die auftretenden Lehr-, Lernund Administrationsprozesse werden häufig nicht ausreichend unterstützt. Aufgabe dieser Arbeit ist es deshalb, auf der Grundlage bestehender Systeme und Vorarbeiten an Hand einer prototypischen Implementierung die Einbeziehung prozessorientierter Aspekte in E-Learning-Anwendungen zu erproben. Grundidee der Arbeit ist die Vorstellung, dass komplexe Lernobjekte, aber auch Objekte, die der Administration des Lehrbetriebs dienen, verteilt auf mehrere Content Management Systeme vorliegen. Die Verteilung reicht von der Verwendung unterschiedlichster Werkzeuge zur Erzeugung der Lernobjekte durch verschiedene Beteiligte bis zur Einbeziehung externer Quellen in den Lehr-/Lernprozess. Trotz der Einbindung vielfältiger Quellen sollen die beteiligten Teilsysteme autonom agieren, d.h. beispielsweise die Regie über die eigenen Inhalte bewahren. Ein typisches Beispiel für einen entsprechenden Prozess wäre etwa die Vorkorrektur von Projektarbeiten durch Assistenten und Tutoren und deren endgültige Bewertung durch den verantwortlichen Dozenten. Hier sind neben Lernobjekten (z.B. schriftlichen Kursunterlagen) auch Administrationsobjekte (z.B. Teilnehmerlisten, Terminpläne) zwischen den Beteiligten zu kommunizieren. Um ein Gesamtsystem zu konzipieren, das diesem Anspruch genügt, musste zunächst grundsätzlich geklärt werden, welche technischen Möglichkeiten zur Synchronisation „befreundeter“ Content Management Systeme bestehen. Dies ist in Form einer Bachelorthesis bereits geschehen. (Kim Matthäß: „Kontrollierter automatischer Datenaustausch zwischen befreundeten Content Management Systemen“, HS Karlsruhe, Fak. WI, 2005) Der nächste Schritt besteht darin, von der Verwaltung der Lernobjekte hin zu einer Modellierung des Lernobjekt- bzw. Lernprozess-Managements und schließlich zu einer aktiven Unterstützung der Abläufe (z.B. Koordination von Tutoren bei der Durchführung eines Kurses) zu kommen. Dazu sollen die Content Management Systeme, welche die E-Learning-Plattform bilden, um eine Komponente für das Workflow-Management ergänzt werden. 2 Zielsetzung 2 Ziel 2 Zielsetzung ist die prototypische Implementierung einer Lernplattform (DozentWeb, TutorClient), die über die Verwaltung der Lernobjekte hinaus Funktionen für prozessorientierte Aspekte miteinander kooperierender CMS anbietet. Im Einzelnen sind folgende Problemfelder zu bearbeiten: 1. Aufnahme und Analyse der Ergebnisse der o.g. Bachelorthesis 2. Auswahl eines CMS 3. Einrichtung der Testumgebung 4. Prototypische Implementierung einer E-Learning-Plattform (DozentWeb, TutorClient) 5. Definition der zu betrachtenden Prozesse 6. Implementierung der Funktionen zur Unterstützung des Workflows für ausgewählte Prozesse durch Web Services 7. Bereitstellung von Testfällen zur Demonstration des Lern- und Administrationsobjekt-Managements 8. Prüfung, inwieweit ein Workflow-Management auf der Basis neuerer Verfahren, wie z.B. BPEL oder XML-Netzen, angebracht und zu realisieren wäre 3 Begriffsklärung und Ausgangsszenario 3 3 Begriffsklärung und Ausgangsszenario 3.1 Content Management Systeme 3.1.1 Allgemeines Der Begriff Content Management System (CMS) setzt sich aus drei eigenständigen Begriffen zusammen: Unter Content werden die Inhalte, wie z.B. Texte, Bilder, Audiodaten, Videodaten etc. verstanden. Management steht für die Verwaltung dieser Inhalte. Der Begriff System steht für ein Softwaresystem, das diese Verwaltung, z.B. die Repräsentation der Zusammenhänge zwischen Textmodulen ermöglicht. Der überwiegende Teil der zur Zeit verfügbaren Content Management Systeme ist als browserfähige Webanwendung implementiert. Die relativ neuen Begriffe Content Management System, Portal-System und Web-Content Management System sind im aktuellen Sprachgebrauch noch nicht eindeutig definiert. Wenn im weiteren Verlauf dieser Arbeit der Begriff CMS verwendet wird, dann wird darunter ein Web Content Management System, also ein CMS zur Verwaltung der Inhalte von Webauftritten verstanden. Im aktuellen Sprachgebrauch sind die Begriffe, wie z.B. Webseite, Website und Homepage, nicht eindeutig definiert. Im Rahmen dieser Arbeit werden diese Begriffe wie folgt verwendet: Tabelle 3.1: Abgrenzung von Web-Begriffen Begriff/ Definition Einzelne HTML Mehrere HTML Seiten System zur Verwaltung Seite von Content Website Ja Nein Webauftritt Nein Ja Portal Nein Nein Webseite Nein Webpage Homepage Ja 3 Begriffsklärung und Ausgangsszenario 4 Eine ausführliche Definition des Begriffs Content Management System findet sich z.B. in [11], dort heißt es: „A web site's "content" is a combination of different components: text, graphics, images, scripts, included files such as Flash animations, audio/video streams or downloadable files. All of these may be components of one page, included in an HTML page using links or sometimes integrated in the HTML page itself. But even the text shown in the HTML page itself is regarded as "content". Content management systems organize and classify these components by dividing the content from the layout. In more concrete terms, the con­ tent is stored in content files, the layout is stored in layout files (i.e. docu­ ment templates). Using this approach, a CMS provides the means for treating content and layout in separate ways. This also allows using the same content in diffe­ rent documents and formatted for different media ("cross-media publis­ hing"); think of an HTML page as it shows in the browser and the printerfriendly display of the same page, for example.“ Content Management Systeme bieten also dem Benutzer auch ohne Programmierkenntnisse die Möglichkeit, Inhalte einzustellen und zu verwalten. Besonderen Wert legen Content Management Systeme auf die medienneutrale Verwaltung der Inhalte. Ziel ist es, beliebige Inhalte für ihre Präsentation im Internet aufzubereiten. Häufig wird von Content Management Systemen folgende Klassifikation der zu verwaltenden Informationen zu Grunde gelegt: • Inhalt • Darstellung / Präsentation • Struktur Kernfunktionen, die von einem Content Management System umfasst werden müssen, sind nach [13] : • Benutzerverwaltung in Gruppen und Rollen 3 Begriffsklärung und Ausgangsszenario 5 Entwicklung der Sitestruktur, Navigation, Stylesheets und Templates für • die Redakteure • Pflege von existierendem Content • Qualitätssicherung und Freigabemanagement • Stylesheetverwaltung Zur Unterstützung dieser Funktionen bietet ein Content Management System Prozesse, die den Administrator bei Rountineaufgaben unterstützen und die ggf. weitere Prozesse für korrelierende Aufgaben im Hintergrund anstoßen können. Ein Beispiel hierfür ist das Löschen aller Verlinkungen beim Entfernen einer Quelle. 3.1.2 Klassifikation von CMS Es gibt viele Möglichkeiten zur Klassifikation von Content Management Systemen, z.B. nach dem jeweiligen Einsatzgebiet. Unabhängig von dieser Klassifikation besitzen aber alle Systeme einen gemeinsamen Vorrat an Funktionalitäten. Meistens werden diese Funktionalitäten in Form einzelner Module, die speziell für ein bestimmtes Gebiet erarbeitet wurden, bereitgestellt. In dieser Arbeit werden CMS für folgende Einsatzgebiete betrachtet: • Enterprise Content Management Systeme • Redaktionssysteme • Learning Content Management Systeme • Digital Asset Management Systeme Enterprise Content Management Systeme Enterprise Content Management Systeme sind auf die Bedürfnisse von großen Firmen hin ausgelegt. Enterprise steht für unternehmensweit im Sinne einer einheitlichen, von allen Beteiligten im Unternehmen nutzbaren Lösung. Content steht für beliebige Inhalte in elektronischen Systemen. Management wird im Sinne eines Softwaresystems benutzt und steht für die Verwaltung, Verarbeitung und Kontrolle von Systemen. 3 Begriffsklärung und Ausgangsszenario 6 Redaktionssyteme Content Management Systeme werden auch als Redaktionssysteme bezeichnet. Dies trifft aber in den wenigsten Fällen wirklich zu. Redaktionssysteme dienen dazu, Inhalte zu verwalten und veröffentlichen zu können. Typische Inhalte in diesem Zusammenhang sind Artikel oder Schriftstücke. Ein Redaktionssystem ist damit eher als ein Teil eines Content Management Systems anzusehen denn als ein eigenständiges System. Digital Asset Management Systeme Digital Asset Management Systeme haben sich auf die Speicherung und Verwaltung digitaler Inhalte, insbesondere von Grafiken, Videos und Audiodaten spezialisiert. Diese Systeme werden auch unter dem Begriff Media Asset Management gehandelt. Learning Content Management Systeme Als Aufgaben eines Learning Content Management Systems werden das Erstellen, Wiederverwenden, Auffinden, Nacharbeiten und das Ausliefern von Lerninhalten (Content) verstanden. Learning Content Management Systeme verfügen über eine Benutzerverwaltung, die es ermöglicht, Benutzern oder Gruppen bestimmte Rechte zuzuweisen. Dadurch können die Zugriffsstrukturen für Lernende festgelegt werden. Der Benutzer muss beispielsweise erst eine bestimmte Aufgabe lösen, um dann bei Erfolg an eine andere Aufgabe herangehen zu dürfen. 3.1.3 Probleme bei verteilten Inhalten Im Rahmen dieser Arbeit wird die Problematik verteilter Lerninhalte untersucht. Die Inhalte einer Lernplattform sind demnach über zwei oder mehrere CMS verteilt. Der Konsument dieser Lerninhalte soll die Verteilung der Inhalte nicht bemerken und die Systeme als ein einziges System wahrnehmen. Eine Definition der Problematik von verteilten Inhalten findet sich in [10], dort heißt es: „The ability to compose, aggregate, and transform content from distribu­ ted heterogeneous sources makes it possible to present users with new and customized resources. However, providing access to these new resources, while maintaining the integrity of a traditional environment, is often problematic. With the distribution of content, services and users, in­ 3 Begriffsklärung und Ausgangsszenario 7 stitutions face a formidable task in providing reliable service, protecting the privacy of users and rights of content providers, and ensuring the long-term preservation of digital content that may not be in their direct control.“ Bei der Verwendung von verteilten Inhalten müssen folgende Kriterien beachtet werden: • Verteilte Inhalte müssen verlässlich zur Verfügung gestellt werden. • Es dürfen nicht die Rechte der Urheber dieser Inhalte verletzt werden. • Der Zugriff auf die Inhalte muss auch auf lange Sicht gesichert sein. Ein Administrator, der ein CMS mit verteilten Inhalten betreibt, muss möglicherweise Inhalte aus Systemen beziehen, die nicht unter seiner Kontrolle stehen. Verwaltung von verteilten Inhalten stellt deshalb häufig ein Risiko dar. Die Qualität und Verfügbarkeit verteilter Inhalte ist häufig nicht sichergestellt. So kann z.B. ein Inhalt von einem entfernten System eingebunden werden. Dieser Inhalt entspricht bei der Prüfung, die vor der Einbindung geschieht, den geforderten Qualitätsmerkmalen. Dieser Inhalt kann aber jederzeit vom Urheber geändert werden, ohne dass eine weitere Prüfung erfolgt. Ausführlich wird die Problematik von verteilten Inhalten in [8] beschrieben. 3.2 E-Learning 3.2.1 Allgemeines Unter E-Learning wird im Allgemeinen der Einbezug von Kommunikations- und Informationstechnologie in den Prozess des Lernens verstanden. E-Learning kann sich über die Vorbereitung in Form von Kursauswahl oder Studienführern bis hin zur Nachbereitung in Form von Klausurergebnissen oder Evaluierungen erstrecken. Wichtig hierbei ist, dass die Technologien mit dem Prozess des Lernens verknüpft sind und nicht nur ein Hilfsmittel darstellen. 3 Begriffsklärung und Ausgangsszenario 8 Eine Definition des Begriffes E-Learning ist z.B. nach [14] : „eLearning kann verstanden werden als ein Lernprozess, der durch In­ formations- und Kommunikationstechnologie unterstützt wird. eLearning umfasst somit Informationen, Aktivitäten, Abläufe, Menschen und Techniken. Die Gewichtung kann - je nach Bedarf - unterschiedlich sein: In akademischen oder schulischen Umgebungen wird eLearning v.a. ein­ gesetzt, damit die Lernenden im Rahmen ihrer Kurse bzw. Fächer Kon­ zepte und Ideen verfügbar haben, analysieren, konstruieren, publizieren und evaluieren können. Dabei können die Inhalte und Funktionen des eLearning in sich abgeschlossen sein oder gemeinsam mit Präsenz-Ver­ anstaltungen eingesetzt werden.“ Ausschlaggebend für den Einsatz von E-Learning war besonders die rasante technologische Entwicklung der Computerindustrie und die fortschreitende Vernetzung der Computer. Die damit ermöglichten neuen Verfahren förderten in großem Umfang die Entwicklung des E-Learnings. E-Learning wurde auch aufgrund seiner ökonomischen Vorteile gefördert, denn ein „life-long-learning“ (lebenslanges Lernen) bedeutet ein Lernen neben dem Beruf oder ein Lernen im Beruf. Die Lernenden sind mit E-Learning räumlich sowie zeitlich unabhängig und die Vermittlung von Lernstoff kann ohne Präsenz eines Lehrenden geschehen. Die Vor- und Nachteile des E-Learning werden heute viel diskutiert. Laut [15] hat man sich aber mittlerweile darauf geeinigt, E-Learning als einen Teil des Lernprozesses anzusehen und nicht mehr als revolutionären Prozess, der den klassischen Lernprozess ersetzen könnte. Aktuell wird davon ausgegangen, dass der optimale Lernprozess erst entstehen kann, wenn Medien, Inhalte, Organisation, Didaktik und Methodik professionell geplant und umgesetzt werden. Man sieht E-Learning als einen Teil des Lernprozesses an und nimmt Abstand von dem Gedanken, dass das Medium einen sehr hohen Einfluss auf den Lernprozess hat. 3 Begriffsklärung und Ausgangsszenario 3.2.2 9 Formen von E-Learning E-Learning kann nach [15] in folgende Klassen unterteilt werden: Web- und Computer-basiertes E-Learning Unter Web- und Computer-basiertem E-Learning versteht man E-Learning- Anwendungen, die es dem Lernenden z.B. per Web oder CD ermöglichen, zeitlich und räumlich unabhängig zu lernen. Meist beinhaltet diese Art des E-Learning Multimedia in Form von Video- oder Audiodaten. Es steht eindeutig das Selbststudium im Vordergrund. Kontakt zu anderen Lernenden oder dem Autor erfolgt, wenn überhaupt, nur über E-Mail oder Foren. Autorensysteme Autorensysteme dienen der Entwicklung von E-Learning-Inhalten und werden nur von Lehrenden benutzt. Der Lernende hat keinen Kontakt zu diesem System. Das Autorensystem hilft dem Lehrenden, Inhalte zum Beispiel als Webseite oder als CD zu publizieren. Der Lehrende muss hierbei über keine Kenntnisse in den angewandten Technologien, wie zum Beispiel HTML (Hypertext Markup Language) besitzen. Simulationen Simulationen bilden Modelle der realen Welt ab und dienen der Veranschaulichung von meist sehr theoretischen Inhalten. Sie erlauben dem Lernenden selber Wissen durch Experimentieren und Beobachten zu erlangen. Im Zuge der Simulationen kommen unterschiedlichste Technologien zum Einsatz. Zum Beispiel das CAE (Computer Aided Engineering) im Feld des Maschinenbaus, das den Ingenieuren die Simulation eines Teiles erlaubt, bevor dieses überhaupt gebaut wird. Videokonferenz/Teleteaching Videokonferenzen ermöglichen die Kommunikation zwischen Lernenden und Lehrenden über Distanz. Dies erlaubt den Einsatz von Gestik und Mimik sowie direkte Fragen zum Lehrinhalt. Teleteaching ist mehr auf die Erschaffung virtueller Hörsäle ausgerichtet. Eine Kommunikation erfolgt hier meist in der Richtung vom Lehrenden zum Lernenden. 3 Begriffsklärung und Ausgangsszenario 10 Beide Formen des E-Learning sind durch ihren sehr hohen technologischen Aufwand nur eingeschränkt nutzbar. Learning Management System Als Learning Management System werden Systeme aus der Sicht des E-Learning bezeichnet, wenn sie die für das Lehrangebot nötige Organisation, den Ablauf und die Verwaltung übernehmen. Dies umfasst zum Beispiel Buchungsprozesse bei der Anmeldung zu Veranstaltungen und Klausuren oder auch Ressourcenverwaltung bei Kursen mit beschränkter Teilnehmeranzahl. Learning Management Systeme sind strategische Systeme, die den gesamten Prozess des Lernens unterstützen. Ein Learning Management System zeichnet sich vor allem durch folgende Funktionalitäten aus: • Planung von Seminaren/Kursen • Anmeldung zu Seminaren/Kursen • Bereitstellung von Kursunterlagen • Zertifizierung/Erstellung von Kursabschlüssen • Erfolgsmessung/Messung des Lernfortschrittes In einigen Learning Management Systemen ist zusätzlich eine Raumplanung und Vertretungsplanung integriert. Den Funktionalitäten eines Learning Management Systems sind nach oben fast keine Grenzen gesetzt. 3.2.3 E-Learning auf der Basis von CMS In dieser Arbeit soll ein Content Management System als eine E-Learning Plattform implementiert werden. Nach [12] muss eine E-Learning Plattform mindestens folgende Funktionlitäten bieten: • Benutzerverwaltung (Anmeldung mit Verschlüsselung) • Kursverwaltung (Kurse, Verwaltung der Inhalte, Dateiverwaltung) • Rollen- und Rechtevergabe mit differenzierten Rechten 3 Begriffsklärung und Ausgangsszenario • 11 Kommunikationsmethoden (Chat, Foren) und Werkzeuge für das Lernen (Whiteboard, Notizbuch, Annotationen, Kalender etc.) • Darstellung der Kursinhalte, Lernobjekte und Medien in einem netzwerkfähigen Browser Eine Benutzerverwaltung ist bei den meisten Content Management Systemen Grundausstattung. Eine Rollen- und Rechtevergabe ist in den handelsüblichen Content Management Systemen ebenso vorhanden. Bei der Kursverwaltung, die in diesem Sinne nur in speziellen Systemen (Learning Management Systemen) implementiert ist, kann man sich durch die Unterteilung mit Kategorien oder Sektionen, die die meisten Content Management System bieten, behelfen. Kommunikationsmethoden gibt es in Content Management Systemen sehr viele – jedoch werden nicht von jedem Content Management System alle Methoden implementiert; häufig wird von den CMS aber mindestens eine Kommunikationsmethode unterstützt, in den meisten Fällen das Forum. Die Darstellung der Inhalte in browserfreundlichen Formaten ist Grundaufgabe eines Content Management Systems (siehe Kapitel 3.1) und muss von jedem Content Management System beherrscht werden. Es besteht also die Möglichkeit, eine E-Learning Plattform mit einem handelsüblichen Content Management System zu betreiben, da alle Mindestanforderungen von diesem abgedeckt werden können. 3.3 Web Services 3.3.1 Allgemeines Hinter Web Services steht die Idee, dass Übertragungsstandards für den Daten- und Informationsaustausch zwischen Kommunikationspartnern sorgen. Diese Idee an sich ist nicht neu, aber bei Web Services steht nicht der Mensch als Kommunikationspartner, sondern die Maschine im Blickfeld. Es wird eine Maschine-zu-MaschineKommunikation angestrebt. Nach [2] ist eine Definition von Web Services folgende: „Durch die Maschine-zu-Maschine-Kommunikation unterscheiden sich die Web Services vom bisherigen Web-Ansatz, bei dem der Nutzer Da­ ten und Funktionalitäten vom Webserver abruft. Für Web Service ist kein 3 Begriffsklärung und Ausgangsszenario 12 Nutzer erforderlich. Vielmehr muss der Web Service einmal in ein Pro­ gramm eingebunden werden und läuft dann – in der Theorie – automa­ tisch.“ Es gibt keine einheitliche Regelung für Web Services. Wenn man heute von Web Services spricht, meint man eine Menge von Standards und Spezifikationen. Laut [2] basieren Web Services auf unterschiedlichsten Technologien, haben jedoch stets die drei folgenden Elemente gemeinsam: • Die Übermittlung: Übertragung von Nachrichten zwischen den Kommunikationspartnern. • Die Beschreibung: Der Service und seine Methoden müssen beschrieben werden, damit der Konsument weiß, was der Service leisten kann. • Der Verzeichnisdienst: Ein Web Service sollte immer in einem Verzeichnis aufgenommen werden, um dort von Konsumenten gefunden zu werden. Die Standards für diese drei Elemente bilden das Fundament für Web Services. Übermittlung Bei der Übermittlung von Nachrichten hat sich mittlerweile SOAP (Simple Object Access Protocol) als Standard durchgesetzt. Dieser Standard, der von dem W3C (World Wide Web Consortium) verwaltet wird, basiert auf XML (Extensible Markup Language). Beschreibung Bei der Beschreibung ist WSDL (Web Services Description Language) der Standard; dieser wird ebenfalls von dem W3C verwaltet. Verzeichnisdienst Bei den Verzeichnisdiensten gibt es mehrere Ansätze, einige davon proprietärer Art, wie z.B. Microsofts DISCO (Discovery of Web Services). Als Standard hat sich aber 3 Begriffsklärung und Ausgangsszenario 13 UDDI (Universal Description, Discovery and Integration) durchgesetzt. UDDI wird nicht von dem W3C, sondern von der OASIS (Organization for the Advancement of Structured Information Standards) verwaltet und gepflegt. 3.3.2 Transaktionen und Prozesse mit Web Services Web Services ermöglichen es, Software zu bauen die lose gekoppelt ist. Damit ist es möglich, Software einfach aus einzelnen Teilen zusammenzustecken und ein funktionierendes System zu erhalten. Unternehmen wünschen sich eine solche Vorgehensweise für die Modellierung von Geschäftsprozessen. Man möchte Prozessketten nahtlos, schnell und kostengünstig verwirklichen können. Eine Definition von Web Services in Geschäftsprozessen findet sich z.B. in [7], dort heißt es: „While Web Services are a gentle evolution of existing technology, they are a revolution in the way of business can be represented in software. However, we cannot realize the full potential of Web Services, or see their revolutionary nature, unless we start constructing partner-to-partner e-business dialogues that conduct real business transactions.“ Die Problematik bei solchen lose gekoppelten Softwaresystemen liegt in der Konsistenz und der Abstimmung zwischen den einzelnen Teilen des Systems. Hier ist eine weiterführende Technologie notwendig, um dies zu gewährleisten. Gerade im ebusiness kann es schwerwiegende Folgen haben, wenn ein Teilsystem ausfällt und im schlechtesten Fall das komplette System handlungsunfähig wird. Diese Problematik nimmt zu mit der Komplexität der Systeme und ist um so wichtiger, je unternehmenskritischer diese Systeme sind. Es muss sichergestellt werden, dass Transaktionen zwischen verteilten Anwendungen konsistent erfolgen, damit umfangreiche Prozesse auf Dauer realisiert werden können. Transaktionen Eine Transaktion stellt eine zusammengehörende Menge von Operationen dar. Transaktionen können immer nur ganz oder gar nicht ausgeführt werden. Sie unterliegen den ACID-Restriktionen aus dem Umfeld der Datenbanken. 3 Begriffsklärung und Ausgangsszenario 14 Eine Definition der ACID-Restriktionen findet man z.B. in [4]: • Atomicity: Eine Transaktion ist ein atomare Einheit. Sie wird entweder vollständig und korrekt ausgeführt oder gar nicht. • Consistency: Vor dem Beginn und nach dem Abschluss einer Transaktion ist das zugrunde liegende System (Datenbank, Va­ riablen etc.) in einem konsistenten Zustand. • Isolation: Während der Ausführung einer Transaktion darf eine andere Transaktion nicht auf relevante und möglicherweise in­ konsistente Teile des Systems zugreifen. • Durability: Durchgeführte Änderungen am System dürfen nach Abschluss einer Transaktion nur durch eine weitere Transaktion verändert oder rückgängig gemacht werden. Die ACID-Kriterien zu erfüllen ist für eine Web Service Transaktion zwar anstrebenswert, aber in vielen Fällen nicht einhaltbar. Web Services in lose gekoppelten autonomen Systemen lassen sich häufig nicht in so eng formulierte Kriterien fassen. Ein einfaches Beispiel sind Transaktionen, die über einen längeren Zeitraum – oft über Tage oder Wochen hinweg – laufen. Diese würden nach ACIDKriterien Teile des System für diese Dauer sperren. Eine weitere Problematik ist die Zustandslosigkeit von WSDL (Web Service Description Language), wodurch der Web Service nicht ohne Weiteres weiß, in welchem Kontext er steht, um auf die jeweils richtigen Daten zugreifen zu können. Prozesse Prozesse stehen für die Kopplung mehrerer, genau definierter Aktivitäten. Prozesse müssen genau spezifiziert werden, damit sie nutzbar werden für alle Beteiligten. Während man bei einigen wenigen Prozessen ohne genaue Spezifikationen noch von Hand implementieren kann, wird bei größeren Systemen die ausführliche und korrekte Spezifikation von Prozessen um so wichtiger. Damit ein späteres „Prozess-Plug&Play“ möglich wird, müssen die Details der beteiligten Partner genau zueinander passen. Man unterscheidet zwischen öffentlichen und privaten Prozessen. Die privaten Prozesse unterliegen nicht den strengen Spezifikationen der öffentlichen Prozesse, welche eindeutig in ihrer Beschreibung sein müssen. 3 Begriffsklärung und Ausgangsszenario 3.3.3 15 Workflow Management bei Web Services Um die Konsistenz der Transaktionen und Prozesse zu gewährleisten, muss eine übergeordnete Technologie eingesetzt werden. Da WSDL bzw. SOAP aber erst in den letzten Jahren entwickelt wurden, fehlt es hier noch an einem einheitlichen Standard. Der Praxisdruck war so hoch, dass Technologien ohne Standard entwickelt wurden. Vor allem größere Unternehmen schrieben ihre eigenen Spezifikationen. Auf dem Markt hat ca. ein Dutzend Unternehmen solche Standards entwickeltet: HP mit WSCL (Web Services Conversation Language), IBM mit WSFL (Web Services Flow Language), Microsoft mit XLANG und BizTalk. Um einen einheitlichen Standard erreichen zu können, übergaben einige Firmen ihre Spezifikationen an Standardisierungsorganisationen. IBM und HP reichten ihre Spezifikationen an das W3C weiter, während Microsoft WSFL mit XLANG verschmolz und diese Spezifikation als BPEL (Business Process Execution Language for Web Services) an die OASIS übergab. Da sich aktuell einige der größten Firmen hinter BPEL stellen, scheint diese Spezifikation mit hoher Wahrscheinlichkeit zum allgemeinen Standard zu werden. Unterstützt wird BPEL hauptsächlich von BEA, IBM, Microsoft und Sun. Eine weiterführende Liste mit Unternehmen und Artikeln über BPEL ist unter [1] aufgeführt. BPEL (Business Process Execution Language) Eine Definition für BPEL findet sich z.B. in [16], dort heißt es: „BPEL (Business Process Execution Language) wurde im Jahr 2003 von IBM, BEA und Microsoft eingeführt. BPEL ist eine XML-basierte Sprache zur Beschreibung von Geschäftsprozessen, deren einzelne Aktivitäten durch Webservices implementiert sind. Weiterhin kann mit BPEL ein Webservice selbst beschrieben werden.“ Das Ziel von BPEL ist die Sprachspezifikation zur Beschreibung von Prozessen, die auf einem oder mehreren Web Services basieren. Diese Prozesse sollen wiederverwendbar sein und kombiniert eingesetzt werden können. BPEL kann sowohl für private als auch für öffentliche Prozesse angewendet werden. Die logischen Grundelemente von BPEL sind nach [5] : • Partner: Teilnehmer an einem Prozess 3 Begriffsklärung und Ausgangsszenario 16 • Messages: Nachrichten, die von Partnern ausgetauscht werden • Data Handling: Funktionen für das Aktualisieren und Austauschen von Zustandsvariablen der Prozesse • Activities: Aktivitäten, die zusammen einen Prozess darstellen • Scopes: Kontext um zusammengehörige Aktivitäten Einzelne Schritte heißen in BPEL Aktivitäten. Nach [5] werden BPEL-Aktivitäten in folgende Aktivitäten unterschieden: Basisaktivitäten • Invoke: Aufrufen eines Web Service • Receive: Erhalten einer Nachricht von einem Web Service • Reply: Antworten auf einen Web Service • Throw: Zurückgeben von Fehlermeldungen • Empty: Keine Aktivität ausführen Strukturierte Aktivitäten • Sequence: Festgelegte Reihenfolge von Aktivitäten • Switch: Bedingte Schleife von Aktivitäten • Pick: Ausführen einer Aktivität nach einem erwarteten Ereignis • Scope: Aktivität mit eigenem Scope Strukturierte Aktivitäten können verschachtelt werden, um komplexe Prozesse abzubilden. 3 Begriffsklärung und Ausgangsszenario 17 BPEL-Transaktionen verwirklichen die ACID-Kriterien nur in den privaten Prozessen. BPEL baut auf dem Standard WSDL auf. Dadurch wird der Einstieg für Web ServiceEntwickler erleichtert. Ein Nachteil von BPEL ist aber zugleich die Abhängigkeit von diesem Standard. 3.4 Ausgangsszenario 3.4.1 Allgemeines Die Verwaltung von Lernobjekten, wie z.B. Projektaufgaben und Skripten, wird an Hochschulen häufig nicht ausreichend unterstüzt. Dozenten verwalten ihre Lernobjekte meistens mit statischen Webseiten. Im Rahmen dieser Arbeit werden zwei konkrete Szenarien bei der Verwaltung von Lernobjekten bearbeitet. Ein Szenario ist die Erfassung von Zeitdaten der Studierenden. Die Studierenden werden aktuell einmal im Semester in einer schriftlichen Umfrage nach den Zeiten befragt, die sie bei Vorlesungen, Übungen, Hausaufgaben und bei der Klausurvorbereitung verbracht haben. Diese Befragung geschieht während der Vorlesung und wird von dem Dozenten ausgewertet. Das zweite Szenario umfasst die Verwaltung von Lernobjekten, welche die Vorkorrektur von Projektaufgaben durch Tutoren unterstützen soll. Aktuell müssen Studenten sich die Projektaufgaben von einer statischen HTML-Seite des Dozenten herunterladen. Die Korrektur geschieht momentan nur durch den Dozenten, der die bearbeiteten Projektaufgaben schriftlich oder per E-Mail erhält. Die erreichten Punkte werden statisch von dem Dozenten publiziert. Basierend auf einer Lernplattform, die von zwei CMS gebildet wird, soll durch die Unterstützung von Web Services eine Lösung dieser Problemstellung gefunden werden. 3.4.2 Auswahl eines CMS Ein ausführlicher Überblick über Content Management Systeme ist unter [8] aufgeführt. Die Zahl der momentan auf dem Markt befindlichen CMS wird darin auf 1.116 Anwendungen beziffert. Es wird hervorgehoben, dass ein Entscheidungsprozess durch die Vielzahl an Anwendungen nicht leicht ist. In der Praxis müssen viele Punkte für die Auswahl eines CMS berücksichtigt werden. Die im Rahmen dieser Arbeit gestellten Kriterien für ein CMS sind: 3 Begriffsklärung und Ausgangsszenario 18 • Open Source/Kostenfreiheit • Erfüllung der Funktionalitäten aus Kapitel 3.2.3 • Schnelle Einarbeitung • Lauffähigkeit auf gängigen Webservern (z.B. Apache) Einen kompletten Überblick über die verschiedenen CMS zu schaffen, ist nicht Ziel dieser Arbeit und würde deren Rahmen übersteigen. Als erstes Kriterium zur Auswahl der Systeme wurde die Forderung nach Kostenfreiheit festgelegt. Die drei bekanntesten Vertreter dieser Kategorie wurden auf die Eignung nach den verbliebenen drei Kriterien geprüft. Diese Vertreter sind im Einzelnen: • Mambo • OpenCMS • Typo3 Nach Installation und Test der Systeme ergab sich folgender Überblick über die Testkriterien: Tabelle 3.2: Auswahlkriterien für ein CMS Kriterium/System Typo3 OpenCMS Mambo Open Source Ja Ja Ja Sprache Webserver PHP/Apache Java/Tomcat PHP/Apache Funktionalitäten aus Kapitel 3.2.3 Erfüllt Erfüllt Erfüllt Schnelles Einarbei­ Sehr komplexes Ist möglich ten System, das auf Projektdenken ba­ siert Ist möglich Die geforderten Funktionalitäten aus Kapitel 3.2.3 werden von allen drei Systemen erfüllt. 3 Begriffsklärung und Ausgangsszenario 19 OpenCMS und Typo3 sind für die Umsetzung im Rahmen dieser Arbeit jedoch nicht geeignet. Die Gründe sind im Einzelnen: • OpenCMS benötigt einen Tomcat Server, der auf dem Markt nicht gängig ist. • Typo3 ist ein sehr komplexes System, das eine lange Einarbeitungszeit erfordert. Mambo läuft auf einem gängigen Webserver (Apache), erfüllt die geforderten Funktionalitäten und ist leicht zu erlernen. Die beiden CMS (DozentWeb, TutorClient), die im Rahmen dieser Arbeit verwendet wurden, sind deshalb durch Mambo Systeme der Version 4.5.2 implementiert. 3 Begriffsklärung und Ausgangsszenario 3.4.3 20 Architektur des Gesamtsystems Die Architektur des Gesamtsystems stellt sich wie folgt dar: Abbildung 3.1: Architektur Gesamtsystem Die Architektur des Systems bezieht sich auf das MVC-Pattern (Model View Control). Das Model, hier Verwaltung genannt, wird durch die beiden CMS repräsentiert. Die Schicht des View, hier Präsentation, wird durch ASP Webseiten implementiert. Die Web Services bilden den Controller. Dieser wird hier als Datenverwaltung bezeichnet. Die in dieser Arbeit zur Realisierung des Systems verwendeten Technologien und Standards sind folgende: • UML (Unified Modeling Language) • Microsoft Web Services • ASP.NET (Active Server Pages) 3 Begriffsklärung und Ausgangsszenario • 21 MySQL UML-Diagramme sind nach den Spezifikationen von UML, wie sie in Microsofts Office Visio 2003 verwendet werden, entworfen. Web Services sind mit Microsofts Visual Studio .NET 2003 entworfen und programmiert. Alle Web Services wurden in C# geschrieben und sind basierend auf dem .NET Framework 1.1 entstanden. Web Services haben in dieser Arbeit die Endung .asmx. Klassen die in C# geschrieben wurden, enden mit dem Bezeichner .cs. Zur Gestaltung der Webseiten kam ASP.NET zum Einsatz. Alle ASP.NET-Seiten wurden im Visual Studio.NET 2003 entworfen und implementiert. Neben ASP.NET wurde auch C# als Programmiersprache verwendet. ASP.NET-Seiten enden mit .aspx, die dazugehörigen Code Behind-Klassen mit aspx.cs. Als Datenbank für die Web Services wurde eine MySQL Datenbank der Version 4.1.14 verwendet. Alle Web Services und Webseiten wurden unter einem Windows XP System (Servicepack 1) mit dem IIS (Internet Information Service) als Webserver entwickelt und getestet. Desweiteren wurde für alle Beispiele des Workflow-Management durch BPEL die Version 1.1 von BPEL gewählt und verwendet. 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 4.1 Modul „Zeiterfassung“ 4.1.1 Problembeschreibung 22 Zur Zeit wird jeder Student rückwirkend befragt über die für Veranstaltungen aufgebrachte Zeit. Erfasst wird die Zeit, die ein Student in den Vorlesungen, Übungen und bei den Hausarbeiten verbracht hat und die er für die Klausurvorbereitung aufgewendet hat. Diese Befragung geschieht aktuell schriftlich auf Papier und wird einmal pro Semester ausgeführt. Zukünftig sollte die Erfassung online geschehen und von den Studenten eigenständig ausgefüllt werden. Zum Beispiel sollen die Studenten von Dozent Z während den Vorlesungen „Datenbanken I“ und „Elektronische Medien und Märkte“ diese Erfassungen über die Portalseiten DozentWeb oder TutorClient eintragen. Die Daten sollen an einem zentralen Ort gespeichert werden, dadurch wird die spätere Auswertung durch Dozent Z vereinfacht. Der Fragebogen ist für die Studenten möglichst einfach zu gestalten, so dass er ohne großen Aufwand bei einem Besuch auf DozentWeb oder TutorClient ausgefüllt werden kann. Die Zeit, die in Vorlesungen, Übungen und bei Hausaufgaben verbracht wird, soll wöchentlich abgefragt werden. Die Klausurvorbereitungszeit wird einmal pro Semester abgefragt. 4.1.2 Bei den Funktionsbeschreibung benötigten Funktionen kann man zwischen Nutzerfunktionen und Verwaltungsfunktionen unterscheiden. Nutzerfunktionen werden von den Studenten benötigt, um Daten einzugeben und gegebenenfalls zu modifizieren. Verwaltungsfunktionen werden von Dozenten zur Auswertung benötigt und dienen desweiteren dazu, Semester- oder Vorlesungseinträge zu erstellen und zu pflegen. 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 23 Nutzerfunktionen • Wöchentliche Eintragung von Übungs-, Vorlesungs- und Hausaufgabenzeiten • Eintragen von aufgewendeter Zeit für die Klausurvorbereitung pro Semester • Auskunft über die Einträge Verwaltungsfunktionen 4.1.3 • Anlage und Pflege von Semestereinträgen • Anlage und Pflege von Veranstaltungseinträgen • Abruf der erfassten Zeitdaten der Studierenden Modell Zur besseren Übersicht wird der Ablauf einer Zeiterfassung auf ein Diagramm abgebildet. Als Vertreter der Benutzer sind hier Student X und Student Y gewählt worden. Dozent Z steht repräsentativ für die Verwalter. Die beiden Studenten besuchen eine Vorlesung bei Dozent Z und tragen ihre Daten in die Zeiterfassung ein. Student X wählt hierbei den Weg über das Portal DozentWeb, Student Y hingegen gibt seine Daten über das Portal TutorClient ein. Dozent Z ruft die Zeitdaten für diese Veranstaltung ab und wertet diese aus. Dies sind alles Anwendungsbeispiele, die aus der Funktionsbeschreibung hervorgehen und in folgendem Modell verdeutlicht werden können. Modellbeschreibung Durch dieses Modell ergibt sich eine Trennung zwischen der Eingabemaske, welche die Studenten benutzen und der Eingabemaske für die Abfrage der gespeicherten Daten durch Dozenten. Die Studenten nehmen über ihre Eingabemasken die Nutzerfunktionen wahr. Die Verwaltungsfunktionen für den Dozenten werden über eine Eingabemaske oder über Direktzugriff auf den Datenspeicher wahrgenommen. Die 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 24 Eingabemaske für die Studenten und Dozenten dient rein der Darstellung. Logik und Speicherung werden an zentraler Stelle von einem Server und einer Datenbank übernommen. Abbildung 4.1: Vereinfachtes Modell des Moduls „Zeiterfassung“ 4.1.3.1 Aktivitätsdiagramm Die Aktivitäten der Benutzer des Moduls „Zeiterfassung“ müssen aus der Sicht der Studenten und der Dozenten betrachtet werden. Die Aktivitäten der Studenten sind alle auf die Erfassung und Abfrage ihrer eigenen Zeitdaten gerichtet. Dagegen sind die Aktivitäten des Dozenten auf die Auswertung aller Daten fokussiert. Aktivitätsdiagramm Student Der Student ruft als erstes die Seite zur Zeiterfassung auf. Diesen Zustand wollen wir als Startzustand definieren. Seine erste Aktivität besteht nun darin, sich am System anzumelden. Bei nicht erfolgreicher Anmeldung gelangt er wieder zurück in den Startzustand. Sollte die Anmeldung erfolgreich sein, erlangt der Benutzer den Zustand 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 25 „Eingeloggt“ und kann nun zwischen den Aktivitäten „Ausloggen“ und „Auswahl Veranstaltung“ wählen. Die Aktivität „Ausloggen“ führt zum Endzustand, der sich von dem Startzustand nur durch die Tatsache unterscheidet, dass dieser über den Zustand „Eingeloggt“ erreicht wird. Die Aktivität „Auswahl Veranstaltung“ ermöglicht zwei weitere Aktivitäten: „Neuer Wocheneintrag“ und „Neuer Semestereintrag“. Beide Aktivitäten führen nach Beendigung zurück in den Zustand „Eingeloggt“. Abbildung 4.2: Studentische Aktivitäten am Modul „Zeiterfassung“ 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 26 Aktivitätsdiagramm Dozent Den Dozenten wird als Verwaltern eine andere Seite zur Verfügung gestellt. Das Aufrufen dieser Seite wird wieder als Startzustand angenommen. Bei gescheitertem Login gelangt der Dozent wieder auf den Startzustand zurück. Nach erfolgreichem Login hat der Dozent den Zustand „Eingeloggt“; dort stehen drei Aktivitäten zur Auswahl: „Veranstaltung neu/ändern“, „Semester neu/ändern“ oder „Statistik anzeigen“. Die Aktivität „Ausloggen“ führt zum Endzustand, der wiederum bis auf den Punkt, dass er aus dem Zustand „Eingeloggt“ erreicht wird, mit dem Startzustand gleichzusetzen ist. Alle drei möglichen Aktivitäten im Zustand „Eingeloggt“ führen wieder auf diesen Zustand „Eingeloggt“ zurück. Abbildung 4.3: Aktivitäten eines Dozenten am Modul „Zeiterfassung“ Die beiden Diagramme (Abbildungen 4.2 & 4.3) beschreiben Ablaufmöglichkeiten und einzelne Aktivitäten des Moduls „Zeiterfassung“. Als nächstes kann nun an einen Use- 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 27 Case (Anwendungsfall) herangegangen werden und das Verhalten des Moduls aus der Sicht des Benutzers und vor allem die Beziehungen zwischen dem System und dem Benutzer können dargestellt werden. 4.1.3.2 Use-Case Die Use-Cases (Anwendungsfälle) für das Modul „Zeiterfassung“ müssen von der Sicht der Benutzer ausgehen: den Studenten und den Dozenten. Use-Case Student Will der Student seine Daten im Modul „Zeiterfassung“ einsehen oder ändern, so stehen ihm zwei Wege offen: über das Portal „DozentWeb“ und über das Portal „TutorClient“. Beide bieten die Möglichkeit, die Daten der Studenten auf dem neusten Stand zu halten. Der Student kann frei zwischen beiden Portalen wählen. Er ruft das Modul „Zeiterfassung“ über eines der beiden Portale auf und loggt sich ein. Der Student besitzt zwei Anwendungsfälle: Er kann entweder seine Daten abrufen oder diese ändern. Abbildung 4.4: Use-Case Modul „Zeiterfassung“ Student 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 28 Use-Case Dozent (Verwalter) Der Verwalter besitzt den vollen Zugriff auf die Datenbasis oder kann über einen Client in dem Portal „DozentWeb“ handeln. Er kann, sollte er es wünschen, die Änderungen direkt an der Datenbank vornehmen oder über den Webclient auch die alltäglichen Verwaltungsarbeiten erledigen. Benutzt der Verwalter den Webclient, so besitzt er drei Anwendungsfälle: „Statistik abfragen“, „Semester neu/ändern“ und „Veranstaltung neu/ändern“. Abbildung 4.5: Use-Case Modul „Zeiterfassung“ Dozent 4.1.3.3 Sequenzdiagramm Ein Sequenzdiagramm für das Modul „Zeiterfassung“ soll zeigen, wie der zeitliche Ablauf von Nachrichten zwischen Objekten des Moduls gestaltet werden muss. Wie schon in vorhergehenden Punkten festgestellt, besteht das Modul „Zeiterfassung“ aus mehreren Clients, die auf einen Server zugreifen. Die Clients sind Webseiten, die einen Server verwenden, der durch Web Services implementiert ist. Interessant ist vor allem der Nachrichtenaustausch zwischen den Clients und dem Server – weniger die Nachrichten, die im Server versendet werden. 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 29 Abbildung 4.6: Sequenzdiagramm Modul „Zeiterfassung“ Beide Clients können gleichzeitig auf dem Server aktiv sein und unterschiedliche Anfragen an diesen senden. Der Server, in diesem Fall der Web Service, muss feststellen können, wer die Anfrage gesendet hat und ob dieser die Berechtigung dazu besitzt. Desweiteren muss sich der Server den Status der einzelnen Clients merken. Hierbei ist eine zentrale Frage, die der Web Service sicherstellen muss, ob der Client eingeloggt ist und er die Anfrage stellen darf oder ob die Anfrage von einem nicht eingeloggten Client stammt. Solange ein Client eingeloggt ist, kann er immer wieder Anfragen an den Server stellen. Die Anfragen erfolgen in einer zeitlich nicht festzulegenden Reihenfolge und müssen vom Server einem Client zugeordnet werden können. 4.1.4 Lösungsvorschlag Die Implementierung des Moduls „Zeiterfassung“ erfordert eine Trennung zwischen einem Client als Webseite in den Portalen DozentWeb und TutorClient und einem Server in Form von Web Services, die zentral die Bearbeitung und Speicherung der erfassten Daten übernehmen. Als Client sollten weiterhin getrennte Seiten erstellt werden: eine Seite für die Studenten als Benutzer und eine weitere Seite für den Dozenten als Verwalter der Erfassung. Beide Clients benutzen den selben Web 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 30 Service als Server mit unterschiedlicher Zugriffsberechtigung, abhängig davon, welcher Typ von User sich am Server angemeldet hat. Die Web Services können nur mit gültiger Anmeldung am Server genutzt werden. 4.2 Modul „Verwaltung von E-Learning Objekten“ 4.2.1 Problembeschreibung Zur Zeit müssen die Studenten sich Aufgaben von einer statischen HTML-Seite eines Dozenten herunterladen. Diese Aufgaben werden von den Studenten bearbeitet und in Form einer E-Mail oder auf Papier zur Korrektur eingereicht. Der Dozent veröffentlicht die Ergebnisse der Korrektur auf einer statischen HTML-Seite. Zukünftig soll eine Vorkorrektur der abgegebenen Aufgaben durch Tutoren erfolgen. Die Studenten sollen sich die Aufgaben für eine Veranstaltung selbständig von einer Seite des Dozenten herunterladen. Einer oder mehrere Tutoren korrigieren diese Aufgaben und legen sie zur Endkorrektur dem Dozenten vor. Dieser kann der Korrektur des Tutors zustimmen oder diese verwerfen und die Korrektur selbst durchführen. Die erreichten Punktzahlen werden von dem Dozenten veröffentlicht. 4.2.2 Funktionsbeschreibung Die Funktionalitäten im Modul „Verwaltung von E-Learning Objekten“ müssen in drei Kategorien unterschieden werden: Funktionalitäten, die Studenten, Tutoren und Dozenten benötigen. Studenten sind Benutzer (User) dieses Moduls; Tutoren und Dozenten sind Verwalter (Administratoren), jedoch Aufgabengebieten. Funktionalitäten für Studenten • Authentifizieren am Modul • Übersicht über erreichte Punktzahlen • Abgabe bearbeiteter Aufgaben Funktionalitäten für Tutoren • Authentifizieren am Modul mit unterschiedlichen 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services • Übersicht über eingereichte Aufgaben von Studenten • Übersicht über bereits bearbeitete Aufgaben • Abgabe einer Vorkorrektur an den Dozenten 31 Funktionalitäten für Dozenten 4.2.3 • Authentifizieren am Modul • Übersicht über eingereichte Vorkorrekturen • Übersicht über Punktzahlen der Studenten • Eintragen von Punktzahlen Modell Anhand eines einfachen Diagramms soll die Problem- und Funktionsbeschreibung im Modell verdeutlicht werden. Modellbeschreibung Als Vertreter für Studenten, Tutoren und Dozenten wurden Student X, Tutor Y und Dozent Z gewählt. Student X erhält durch das Portal „DozentWeb“ eine Aufgabe. Diese wird bearbeitet und über das gleiche Portal abgegeben. Tutor Y erhält diese Aufgabe zur Vorkorrektur in dem Portal „TutorClient“. Ist die Aufgabe von dem Tutor bearbeitet worden, wird sie weiter an den Dozent Z zur Endkorrektur gereicht. Dozent Z kann die Vorkorrektur über das Portal „DozentWeb“ einsehen. Die erreichten Punkte werden ebenfalls über dieses Portal von Dozent Z eingetragen. Student X kann die erreichte Punktzahl über das Portal „DozentWeb“ abfragen. 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 32 Abbildung 4.7: Vereinfachtes Modell des Moduls „Verwaltung von E-Learning Objekten“ 4.2.3.1 Aktivitätsdiagramm Aktivitäten am Modul „Verwaltung von E-Learning Objekten“ müssen aus der Sicht der Studenten, Tutoren und Dozenten betrachtet werden. Aktivitäten der Studenten sind auf die Abgabe von Hausaufgaben und die Abfrage der erreichten Punkte gerichtet. Die Aktivitäten von Tutoren und Dozenten sind auf die Bewertung dieser Aufgaben und, im Speziellen beim Dozenten auf die Veröffentlichung der erreichten Punktzahlen gerichtet. Aktivitätsdiagramm Student Der Student ruft als erstes die Seite zur Verwaltung von E-Learning Objekten auf. Diesen Zustand wollen wir als Startzustand definieren. Seine erste Aktivität besteht 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 33 nun darin, sich am System anzumelden. Bei nicht erfolgreicher Anmeldung gelangt er wieder zurück in den Startzustand. Sollte die Anmeldung erfolgreich sein, erlangt der Benutzer den Zustand „Eingeloggt“ und kann nun zwischen den Aktivitäten „Ausloggen“ und „Aufgabe abgeben“ wählen. Die Aktivität „Ausloggen“ führt zum Endzustand, der sich von dem Startzustand nur durch die Tatsache unterscheidet, dass dieser über den Zustand „Eingeloggt“ erreicht wird. Die Aktivität „Aufgabe abgeben“ führt nach Beendigung zurück in den Zustand „Eingeloggt“. Abbildung 4.8: Aktivitätsdiagramm „E-Learning Objekte“ Student 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 34 Aktivitätsdiagramm Tutor Der Tutor ruft die Seite zur Verwaltung von E-Learning Objekten auf. Dieser Zustand ist als Startzustand anzusehen. Die folgende Aktivität des Tutor ist es, sich am System anzumelden. Sollte die Aktivität „Einloggen“ erfolgreich sein, gelangt er in den Zustand „Eingeloggt“. Dort hat er die Auswahl zwischen den Aktivitäten „Ausloggen“, welche zum Endzustand führt und „Vorkorrektur abgeben“, welche nach Beendigung in den Zustand „Eingeloggt“ zurückführt. Abbildung 4.9: Aktivitätsdiagramm „E-Learning Objekte“ Tutor Aktivitätsdiagramm Dozent Der Dozent ruft eine Seite zur Verwaltung von E-Learning Objekten auf. Dieser Zustand ist der Startzustand. Die nächste Aktivität des Dozenten besteht darin, sich am System anzumelden. Dies geschieht durch die Aktivität „Einloggen“. Ist diese 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 35 erfolgreich, erlangt der Dozent den Zustand „Eingeloggt“. Dort kann er zwischen den Aktivitäten „Ausloggen“, „Punkte eintragen“, „Aufgaben anlegen/pflegen“ und „Semester/Veranstaltungen anlegen/pflegen“ wählen. Abbildung 4.10: Aktivitätsdiagramm „E-Learning Objekte“ Dozent 4.2.3.2 Use-Case Die Use-Cases (Anwendungsfälle) des Moduls „Verwaltung von E-Learning Objekten“ müssen aus der Sicht der Studenten, Tutoren und Dozenten betrachtet werden. 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 36 Use-Case Student Der Student besitzt zwei Anwendungsfälle: „Hausaufgabe herunterladen“ und „Hausaufgabe abgeben“. Der Anwendungsfall „Hausaufgabe herunterladen“ erfolgt über das Portal „DozentWeb“, ohne dass das Modul „Verwaltung von E-Learning Objekten“ benötigt wird. Die Hausaufgabe wird zur Korrektur durch den Anwendungsfall „Hausaufgabe abgeben“ durch das Modul „Verwaltung von E-Learning Objekten“ eingereicht. Abbildung 4.11: Use-Case Modul „Verwaltung von E-Learning Objekten“ Student Use-Case Tutor Der Tutor besitzt einen Anwendungsfall „Vorkorrektur abgeben“. Durch diesen werden vorkorrigierte Hausaufgaben im Portal „TutorClient“ mit dem Modul „Verwaltung von ELearning Objekten“ zur Endkorrektur durch den Dozenten eingereicht. Abbildung 4.12: Use-Case Modul „Verwaltung von E-Learning Objekten“ Tutor 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 37 Use-Case Dozent Der Dozent besitzt drei Anwendungsfälle: „Punkte eintragen“, „Aufgabe veröffentlichen“ und „Verwaltung“. Im Anwendungsfall „Punkte eintragen“ trägt der Dozent einem Studenten die erreichte Punktzahl für eine eingereichte Lösung ein. Aufgaben werden im Portal „DozentWeb“ zum Herunterladen eingestellt und müssen im Modul „Verwaltung von E-Learning Objekten“ zur Bearbeitung freigegeben werden. Der Anwendungsfall „Verwaltung“ umfasst die Anlage und Pflege von Semestern und Veranstaltungen. Abbildung 4.13: Use-Case Modul „Verwaltung von E-Learning Objekten“ Dozent 4.2.3.3 Sequenzdiagramm Sequenzdiagramme für das Modul „Verwaltung von E-Learning Objekten“ sollen den zeitlichen Ablauf der Nachrichten verdeutlichen. Dabei muss zwischen Nachrichten aus dem Portal „DozentWeb“ und Nachrichten aus dem Portal „TutorClient“ unterschieden werden. Desweiteren müssen Nachrichten aus dem „DozentWeb“ nochmals in Nachrichten von Studenten und von Dozenten unterteilt werden. Aus diesem Grund sind für das Modul insgesamt drei Sequenzdiagramme notwendig. Sequenzdiagramm DozentWeb Student Die erste Nachricht an den Server (Web Services) von dem Client der Studenten im Portal Dozent besteht aus dem Login. Wird diese Nachricht mit „True“ beantwortet, ist eine Sitzung an dem Server hergestellt und es kann die Nachricht „Aufgabe abgeben“ an den Server gesendet werden. Wird die Nachricht ohne einen erfolgreichen Login 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 38 gesendet, so muss diese nicht bearbeitet werden. Die Sitzung wird durch die Nachricht „Logout“ beendet. Abbildung 4.14: Sequenzdiagramm Modul „Verwaltung von E-Learning Objekten“ Student Sequenzdiagramm DozentWeb Dozent Die erste Nachricht aus dem Portal „DozentWeb“ (Dozent) an den Server (Web Service) besteht aus dem Login. Wird diese Nachricht mit „True“ beantwortet, ist eine Sitzung an dem Server hergestellt und es können andere Nachrichten in beliebiger Reihenfolge an den Server gesendet werden. Einige dieser Nachrichten sind z.B. „Punkte eintragen“ oder „Aufgabe veröffentlichen“. Sollte eine Nachricht ohne einen gültigen Login an den Server gesendet werden, so ist diese nicht zu bearbeiten. Sind alle Nachrichten an den Server mitgeteilt, wird mit der Nachricht „Logout“ die Sitzung am Server beendet. 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 39 Abbildung 4.15: Sequenzdiagramm Modul „Verwaltung von E-Learning Objekten“ Dozent Sequenzdiagramm TutorClient Tutor Die erste Nachricht des Client in dem Portal „TutorClient“ an den Server (Web Service) besteht aus dem Login. Ist diese Nachricht mit „True“ beantwortet, hat der Client eine Sitzung an dem Server. Die Nachricht „Vorkorrektur abgeben“ kann dann an den Server gesendet werden. Die Sitzung wird durch die Nachricht „Logout“ beendet. Ohne gültigen Login werden Nachrichten nicht bearbeitet. Abbildung 4.16: Sequenzdiagramm Modul „Verwaltung von E-Learning Objekten“ Tutor 4.2.4 Lösungsvorschlag Die Implementierung des Moduls „Verwaltung von E-Learning Objekten“ erfordert eine Trennung zwischen Clients (Webseiten) und dem Server (Web Services). Die Clients 4 Konzept zur Verwaltung von E-Learning Objekten auf der Basis von Web Services 40 werden als Webseiten implementiert, die in die Portale „DozentWeb“ und „TutorClient“ integriert werden. Die Clients müssen deshalb weiterhin unterteilt werden in Clients für die einzelnen Portale und Benutzer. Im „DozentWeb“ muss es einen Client für den Dozenten und einen für die Studenten geben. Im Portal „TutorClient“ ist ein Client für die Tutoren notwendig. Die Benutzer können sich an den Clients anmelden, wenn sie im betreffenden Portal als Benutzer registriert sind. Ein Tutor z.B. muss als Benutzer im Portal „TutorClient“ bekannt sein, um sich über seinen Client am Modul „Verwaltung von E-Learning Objekten“ anmelden zu können. Ein Student muss als Benutzer und ein Dozent als Administrator am Portal „DozentWeb“ bekannt sein. Der Server, welcher über Web Services realisiert wird, ist in drei eigenständige Web Services untergliedert, die jeweils für Studenten, Tutoren und Dozenten zuständig sind. Diese Web Services sind die Gegenstücke zu den oben beschriebenen Clients. Die Web Services bearbeiten nur Aufgaben, die von Benutzern mit gültiger Berechtigung gestellt wurden. Die Datenspeicherung für das Modul „Verwaltung von E-Learning Objekten“ erfolgt unabhängig von den Datenbanken der Portale „DozentWeb“ und „TutorClient“ in einer eigenen Datenbank. Für die Handhabung von Datenbankzugriffen wird den Web Services eine Komponente DBHandler zur Verfügung gestellt. 5 Prototypische Realisierung 5 Prototypische Realisierung 5.1 Modellierung 5.1.1 Zeiterfassung 5.1.1.1 Architektur 41 Die Architektur des Moduls „Zeiterfassung“ ist eine Client/Server-Architektur. Folgendes Komponentendiagramm soll die Zusammensetzung von Client und Server verdeutlichen. Abbildung 5.1: Komponentendiagramm Modul „Zeiterfassung“ Der Client besteht aus zwei Komponenten: den ASP.NET Webseiten und den CodeBehind-Klassen. Die Code-Behind Klassen enthalten C# Code, welcher die Darstellung und Steuerung von den ASP.NET Seiten betrifft. Ein Beispiel hierfür sind Button Click Events. Eine Besonderheit bei der Code-Behind Komponente besteht darin, dass sie nur im Quelltext eine eigenständige Komponente darstellt. Nach der Kompilierung bildet sie zusammen mit den Webseiten eine einzige Komponente. Der Server besteht aus zwei Komponenten: Den „Web Services“ und dem „DBHandler“. Die Komponente „DBHandler“ soll aus Gründen der Übersichtlichkeit die Kommunikation mit der Datenbank übernehmen, da sonst die Komponente „Web Services“ mit Datenbankbefehlen überladen wäre. 5 Prototypische Realisierung 5.1.1.2 42 Klassendiagramm Beide Komponenten im Modul „Zeiterfassung“ auf Seiten des Servers bestehen aus jeweils einer Klasse. Folgendes Diagramm zeigt die beiden Klassen „Zeiterfassung“ und „DBHandler“ mit ihren öffentlichen Methoden und Attributen. Abbildung 5.2: Klassendiagramm „Zeiterfassung“ Die Klasse „Zeiterfassung“, die über ihre einzelnen Methoden in die Web Services implementiert ist, wird durch die Klasse „DBHandler“ bei Operationen auf der Datenbank unterstützt. Beispielhaft für diese Unterstützung ist die Methode „SelectFromDatabase“, die von der Klasse „DBHandler“ bereitgestellt wird. Durch diese Methode kann der Web Service beliebige Anfragen an die Datenbank stellen. 5 Prototypische Realisierung 5.1.2 Verwaltung von E-Learning Objekten 5.1.2.1 Architektur 43 Das Modul „Verwaltung von E-Learning Objekten“ besteht aus einer Client/ServerArchitektur. Im Unterschied zum Modul „Zeiterfassung“ existieren hier mehrere Clients und mehrere Server. Insgesamt sind drei Clients und Server im Einsatz. Folgende Komponentendiagramme sollen einen Überblick über die einzelnen Komponenten der Clients und Server vermitteln. Abbildung 5.3: Komponentendiagramm Modul „Verwaltung von E-Learning Objekten“ Dozent Abbildung 5.4: Komponentendiagramm Modul „Verwaltung von E-Learning Objekten“ Student 5 Prototypische Realisierung 44 Abbildung 5.5: Komponentendiagramm Modul „Verwaltung von E-Learning Objekten“ Tutor Die drei Client/Server setzen sich jeweils wie folgt zusammen: Die Seite des Client besteht immer aus den Komponenten Code-Behind und den ASP. NET Webseiten. Die Code-Behind Komponente enthält den Quellcode, der die Darstellung und die Steuerung der ASP. NET Webseiten betrifft. Es gilt zu beachten, dass die Code-Behind Komponente nur im Quellcode eigenständig anzusehen ist; im kompilierten Zustand verschmilzt sie mit den ASP.NET Webseiten. Der Server setzt sich aus dem Web Service und der Komponente DBHandler zusammen. Die Komponente DBHandler enthält unterstützende Werkzeuge für den Datenbankzugriff, die von der Komponente Web Service benötigt werden. 5.1.2.2 Klassendiagramm Der Server des Moduls „Verwaltung von E-Learning Objekten“ besteht aus drei Teilen: Dozent, Student und Tutor. Diese Teile werden als Pakete bezeichnet. Abbildung 5.6: Pakete Modul „Verwaltung von E-Learning Objekten“ 5 Prototypische Realisierung 45 Alle Pakete des Moduls „Verwaltung von E-Learning Objekten“ bestehen aus den Komponenten Web Service und DBHandler (siehe 5.2.2.1), welche jeweils durch eine Klasse implementiert sind. Die Klasse, die den Web Service implementiert, ist nach ihrem Aufgabengebiet benannt. Der Web Service, der z.B. für das Portal DozentWeb und den Dozenten implementiert ist, heißt „Dozent“. Die Klassen der Web Services und die Klassen der Datenbankunterstützung besitzen in den drei Paketen einige Gemeinsamkeiten. Gemeinsamkeiten DBHandler Sogenannte Connection Strings (Verbindungs-Texte) sind in jeder „DBHandler“ Klasse hinterlegt. Sie erlauben den Zugriff auf Datenbanken und tragen in den Klassen immer den Namen „MY_CONN_STRING“, möglicherweise mit dem Zusatz der Datenbank auf die sie verbinden. Diese Variablen sind in den Klassen immer statisch hinterlegt, was durch die Großschreibung des Namens angezeigt wird. Jede Klasse „DBHandler“ besitzt die Methode „SelectFromDatabase“ und „ExecuteQuery“. Erstere erlaubt es, mit Hilfe des Connection String eine Select-Abfrage an die Datenbank zu senden. Die Methode „ExecuteQuery“ führt mit Hilfe des Connection String z.B. ein Insert Statement aus. Gemeinsamkeiten Web Services Die Klassen der Web Services besitzen alle die Methoden „Login“, „Logout“, „IsUserLoggedIn“ Benutzernamen und und „GetLoggedInUser“. Passwörter mit Die angegeben Methode „Login“ Datenbankeinträgen vergleicht in den betreffenden Portalen. Bei positivem Vergleich wird eine Sitzung hergestellt. Die Methode „Logout“ beendet diese Sitzung wieder. Über die Methode „GetLoggedInUser“ kann der Benutzername des eingeloggten Benutzers in Erfahrung gebracht werden. Über die Methode „IsUserLoggedIn“ kann erfragt werden, ob ein Benutzer am Server angemeldet ist. Klassendiagramm Dozent Die Klasse „Dozent“ (Web Service) erhält über die Klasse „DBHandler“ Zugriff auf die Datenbanken vom Portal „DozentWeb“ und die Datenbank, die der Speicherung von Daten des Moduls „Verwaltung von E-Learning Objekten“ dient. Eine Besonderheit der 5 Prototypische Realisierung 46 Klasse „Dozent“ ist die Methode „IsLoggedInUserAdmin“; diese überprüft, ob der betreffende Benutzer in der Datenbank des Portals „DozentWeb“ als Administrator geführt wird. Die Methode „GetAufgabenToDo“ liefert dem Dozenten eine Liste von Aufgaben zurück, die von Tutoren vorkorrigiert und noch nicht vom Dozenten bearbeitet wurden. Eine Liste von allen bereits durch den Dozenten bewerteten Aufgaben erzeugt die Methode „GetBearbeiteteAufgaben“. „GetVorkorrigierteAufgaben“ liefert eine Liste aller Aufgaben, die durch Tutoren bearbeitet wurden. Durch die Methode „GetVeranstaltungen“ werden alle Veranstaltungen, die von diesem Dozenten betreut werden, zurückgeliefert. Abbildung 5.7: Klassendiagramm Modul „Verwaltung von E-Learning Objekten“ Paket Dozent Klassendiagramm Student Die Klasse „Student“ (Web Service) erhält über die Klasse „DBHandler“ Zugriff auf die Datenbanken des Portals „DozentWeb“ und einer Datenbank, die der Speicherung von Daten des Moduls „Verwaltung von E-Learning Objekten“ dient. Die Methode „HausaufgabeAbgeben“ ermöglicht es, eine bearbeitete Aufgabe zur Vorkorrektur abzugeben. Die Methode „GetAktivesSemester“ liefert die Kennung des aktuellen Semesters zurück. Eine Liste aller Veranstaltungen liefert die Methode „GetVeranstaltungen“. Über die Methode „ShowMyHausaufgaben“ können alle 5 Prototypische Realisierung 47 Hausaufgaben, die zu einem Semester und einer Veranstaltung gehören, eingesehen werden. Die Methode „ShowMySelectableHausaufgaben“ zeigt die Hausaufgaben eines Semesters und einer Veranstaltung, die noch von dem Studenten abgegeben werden können. „GetMyHausaufgabenDone“ zeigt die Hausaufgaben, die von diesem Studenten abgegeben wurden und zur Vorkorrektur bei einem Tutor vorliegen. Durch die Methode „GetMyHausaufgabenDoneBewertet“ kann der Student die Hausaufgaben einsehen, die von einem Dozenten bewertet wurden und die erreichte Punktzahl erfahren. Abbildung 5.8: Klassendiagramm Modul „Verwaltung von ELearning Objekten“ Paket Student 5 Prototypische Realisierung 48 Klassendiagramm Tutor Die Klasse „Tutor“ (Web Service) erhält über die Klasse „DBHandler“ Zugriff auf die Datenbanken des Portals „TutorClient“ und einer Datenbank, die der Speicherung von Daten des Moduls „Verwaltung von E-Learning Objekten“ dient. Durch die Methode „KorrekturAbgeben“ können Tutoren korrigierte Aufgaben an den Dozenten weiterreichen. Die Methode „GetVeranstaltungNameForTutor“ liefert den Namen der Veranstaltung zurück, die der Tutor betreut. „GetAufgabenForTutor“ erzeugt eine Liste aller Aufgaben, die zur Vorkorrektur bei diesem Tutor eingereicht wurden. Eine Übersicht über alle bereits korrigierten Aufgaben eines Tutors erzeugt die Methode „GetKorrekturForTutor“. Die Methode „GetAufgabenToDoForTutor“ listet alle Aufgaben auf, die noch von diesem Tutor korrigiert werden müssen. Abbildung 5.9: Klassendiagramm Modul „Verwaltung von ELearning Objekten“ Paket Tutor 5.2 Implementierung Im Folgenden wird ein kurzer Überblick über die Implementierung der beiden Module „Zeiterfassung“ und „Verwaltung von E-Learning Objekten“ gegeben. Dies geschieht anhand beispielhafter Implementierungen. Der komplette Quellcode liegt der Arbeit als Anhang bei. Bei den Beispielen unterscheiden wir zwischen Code-Beispielen auf der Seite des Servers und des Client. 5 Prototypische Realisierung 49 Um einen Web Service, der in C# geschrieben ist, in einer Client Anwendung einfach zu nutzen, stellt Microsoft mit der „wsdl.exe“ (enthalten im Microsoft .NET Framework Software Development Kit) eine Lösung bereit. Der Web Service wird an die „wsdl.exe“ übergeben; als Rückgabe erhält man eine Proxyklasse (Stellvertreterklasse) für diesen Web Service. Diese Stellvertreterklasse muss mit dem Kompiler des .NET Framework übersetzt werden. Stellvertreterklasse Dadurch erzeugt. wird Diese eine Library (Programmbibliothek) Programmbibliothek muss in dieser den Client eingebunden werden, damit dieser über die Stellvertreterklasse Zugriff auf den Web Service hat. Im Einzelnen sind die Schritte zur Erzeugung einer Programmbibliothek einer Stellvertreterklasse folgende: wsdl.exe /l:c# /n:proxy /out:proxy.cs DerWebService.asmx Der Parameter „/l:“ legt die Programmiersprache fest; über den Parameter „/n:“ wird der Namensraum (vgl. Glossar) der Stellvertreterklasse bestimmt. Die „wsdl.exe“ erzeugt dadurch für den Web Service eine Stellvertreterklasse in C# mit dem Namen „proxy“ in der Datei proxy.cs. csc.exe /target:library proxy.cs Durch obigen Befehl wird die Stellvertreterklasse kompiliert und in eine Programmbibliothek mit dem Namen „proxy.dll“ übersetzt. Folgende Abbildung zeigt, wie eine Stellvertreterklasse, die in einen Client eingebunden wurde, mit dem Server agiert. Abbildung 5.10: Die Stellvertreterklasse (Proxyklasse) 5 Prototypische Realisierung 50 Der Browser sendet eine Anfrage an die Stellvertreterklasse – dies geschieht über „HTTP GET“ oder „HTTP POST“. Die Stellvertreterklasse formuliert nun aus dieser Anfrage eine „SOAP-Nachricht“ und sendet diese über „HTTP“ an den Web Service. Als Antwort erhält die Stellvertreterklasse XML, das an den Browser weitergeleitet wird. Durch die Möglichkeit der „wsdl.exe“ des .NET Framework muss sich der Programmierer von .NET Web Services nur noch sehr gering mit den Spezifikationen SOAP, WSDL und den XML-Antworten auseinandersetzen. 5.2.1 Code-Beispiele Client (Webseiten) Ein typisches Code-Beispiel auf der Seite des Client ist der Aufruf eines Web Service in der Code-Behind Klasse einer ASP-Webseite. Voraussetzung hierfür ist die Einbindung der Stellvertreterklasse als Programmbibliothek in dieser Klasse z.B. durch den Befehl: use Proxy; Ist dies geschehen, wird eine Instanz einer Stellvertreterklasse erzeugt mit folgender Zeile: proxy.Zeiterfassung myService = new proxy.Zeiterfassung(); Auf der Instanz dieser Stellvertreterklasse wird als Methodenaufruf die Web Methode dieses Web Service aufgerufen. Die Web Methode „IsUserLoggedIn“ kann beispielsweise wie folgt aufgerufen werden: myService.IsUserLoggedIn(); Alle Web Services, die in den Klassendiagrammen dargestellt sind, können so erzeugt und ihre Web Methoden dementsprechend aufgerufen werden. Gibt der Web Service „IsUserLoggedIn“ den Wert „true“ zurück, können von diesem Client die Web Methoden aufgerufen werden, die vor nicht eingeloggtem Zugriff geschützt sind. Ein Beispiel für einen solchen Web Service ist „ShowMyAccountWeek“, der die Wochendaten eines Nutzers bereitstellt. Eine Einbindung in eine Code-Behind Klasse würde z.B. folgendermaßen geschehen: 5 Prototypische Realisierung 51 if (myService.IsUserLoggedIn()) { string user = myService.GetLoggedInUser(); System.Data.DataSet WeekList = ((System.Data.DataSet) myService.ShowMyAccountWeek(user, veranstaltung )); weekData.DataSource = WeekList; weekData.DataBind(); } Zuerst wird durch eine „if-Abfrage“ sichergestellt, dass der User eingeloggt ist. Im zweiten Schritt wird über den Web Service „GetLoggedInUser“ die Benutzerkennung des Users erfragt. Danach werden die Wochendaten für diesen Benutzer mit dieser Benutzerkennung über den Web Service „ShowMyAccount“ abgerufen. Die Daten werden in einem DataSet gespeichert. Ein DataSet nimmt z.B. Ergebnisse von Datenbankabfragen auf und speichert diese intern wiederum als Datenbank ab. Deshalb werden DataSets auch als Abbilder von Datenbanken bezeichnet, jedoch mit dem Unterschied, dass DataSets nur im Speicher existieren, wohingegen Datenbanken persistent sind. Auf der ASP.NET-Webseite existiert ein Element „weekData“. Dies ist ein DataGrid. Jedes DataGrid kann an eine Quelle zum Befüllen gebunden werden. Dies kann ein DataSet wie im vorliegenden Beispiel sein. Das DataGrid stellt die so befüllten Daten als Tabelle auf der ASP.NET-Seite dar. Dadurch werden die abgefragten Wochendaten des Benutzers auf der Webseite ausgegeben. 5.2.2 Code-Beispiel Server (Web Services) Die Web Services auf Seiten des Servers sind als Klassen implementiert. Sie sind abgeleitete Klassen von der Klasse „System.Web.Services.WebService“ des .NET Framework. Der Rumpf einer Web Service Klasse sieht z.B. folgendermaßen aus: [WebService(Namespace="http://WebServiceE-Learning/")] public class Student : System.Web.Services.WebService Die erste Zeile deklariert diese Klasse als eine Web Service Klasse und legt deren Namensraum fest. In den folgenden Zeilen wird die Klasse „Student“ als öffentliche Klasse erstellt. Die einzelnen Web Services sind Methoden dieser Klasse – diese werden im .NET Framework als „Web Methode“ bezeichnet. Zu jeder Web Service 5 Prototypische Realisierung 52 Klasse und ihren Methoden erzeugt das .NET Framework passende Webseiten, durch die der Web Service im Browser betrachtet und aufgerufen werden kann. Abbildung 5.11: Webseite für den Web Service Student Ein einfaches Code-Beispiel für eine Methode eines Web Service ist die Methode „GetSemesterKalenderwochen“ aus dem Web Service „Zeiterfassung“. [WebMethod] public string[] GetSemesterKalenderwochen( string semestername) { return DBHandler.GetSemesterKalenderwochen( semestername); } Die Methode wird mit dem Bezeichner „[WebMethod]“ als Methode eines Web Services bekanntgemacht. Durch diesen Bezeichner wird die Methode veröffentlicht und eine Webseite, die das Betrachten und Aufrufen der Methode durch einen Browser ermöglicht, wird bereitgestellt. Die Methode hat ein Feld von Strings als Rückgabewert und nimmt als Parameter einen String auf, der den Semesternamen beinhaltet. Die 5 Prototypische Realisierung 53 Methode reicht diesen erhaltenen Parameter weiter an eine Methode der Klasse „DBHandler“, welche die benötigten Daten bei der Datenbank erfragt und diese an die Web Methode zurückgibt. Bei diesem Beispiel ist der Rückgabewert eine Liste der Kalenderwochen, die in dem erfragten Semester liegen. Ein beispielhafter Aufruf der Web Methode über einen Browser ist folgender: Abbildung 5.12: Aufruf der Web Methode „GetSemesterKalenderwochen“ Das Ergebnis des Aufrufs einer Web Methode wird als XML zurückgeliefert und stellt sich in diesem Beispiel wie folgt dar: Abbildung 5.13: Rückgabewerte der Web Methode „GetSemesterKalenderwoche“ 5 Prototypische Realisierung 54 Als Ergebnis wird eine in XML formatierte Liste der Kalenderwochen, die im Wintersemester 05/06 liegen, zurückgegeben. Der Client kann nun mit den bereitgestellten Daten arbeiten. Ein weiters typisches Code-Beispiel für die Implementierung eines Web Service in die z.B. oben genannte Klasse „Student“ ist die Web Methode „IsUserLoggedIn“. [WebMethod(EnableSession=true) ] public bool IsUserLoggedIn() { object loggedIn = Session["LoggedIn"]; if (null != loggedIn) return (bool)loggedIn; return false; } Diese unterscheidet sich durch den Zusatz „(EnableSession=true)“ in dem Bezeichner „[WebMethod]“ von der vorhergehenden Web Methode. Dadurch wird diese Web Methode sitzungsfähig gemacht. Web Methoden ohne diesen Zusatz sind wie z.B. HTML-Seiten zustandslose und können sich nicht merken, in welchem Kontext sie stehen. Die Methode liefert als Rückgabewert einen boolschen Wert zurück. Parameter sind nicht erforderlich für diesen Vorgang. Daten über Sitzungen werden in Sessionobjekten gespeichert; dementsprechend tragen sie den Namen „Session“. In diesen Sessionobjekten können verschiedene Attribute gespeichert werden, wie z.B. Name und Status eines Benutzers. Das Sessionobjekt wird in diesem Beispiel nach dem Status des Attributs „LoggedIn“ gefragt. Ist ein Attribut mit diesem Namen vorhanden, wird dieses zurückgegeben. Sollte das Attribut „LoggedIn“ nicht vorhanden sein, so wird in jedem Fall der Wert „false“ zurückgegeben. Ein typisches, aber eher komplexes Beispiel für Web Methoden in der Klasse „Student“ ist die Web Methode „GetVeranstaltungen“. Diese Web Methode soll zurückgeben, welche Veranstaltungen in der Datenbank hinterlegt wurden. Die Rückgabe erfolgt als ein DataSet; Parameter sind keine notwendig. Die Web Methode stützt sich hierbei einerseits auf die Sessionobjekte, um die Gültigkeit der Anfrage festzustellen und andererseits auf die Klasse „DBHandler“ für den Dantenbankzugriff. 5 Prototypische Realisierung 55 [WebMethod(EnableSession=true)] public DataSet GetVeranstaltungen() { if ((object)Session["LoggedIn"] == null) return null; if ((bool)Session["LoggedIn"] == true) { string query = "Select Name from veranstaltung"; DataSet dataSet = new DataSet("dataSet"); return DBHandler.SelectFromDatabase( dataSet, DBHandler.MY_CONN_STRING, query); } else return null; } Nachdem überprüft wurde ob der Benutzer eingeloggt ist, wird der String „query“ mit einer Datenbankabfrage aufgebaut. Dieser String wird an die Methode „SelectFromDatabase“ der Klasse „DBHandler“ übergeben. Zusätzlich werden an diese Methode noch ein leeres DataSet, welches mit dem Ergebniss befüllt wird, und der Connection String übergeben. Web Services übernehmen aber nicht nur die Aufgabe der Sitzungsverwaltung und Erstellung der Datenbankabfragen. Sie steuern auch die Logik, die den Änderungen an Datenbanken vorhergehen muss. Dies soll an der Web Methode „AddSemester“ verdeutlicht werden. Diese Methode wird immer aufgerufen, wenn Änderungen an den Semesterdaten in der Datenbank vorgenommen werden müssen. Dies geschieht bei zwei Anwendungsfällen: Es wird ein neuer Eintrag hinzugefügt oder es wird ein bereits bestehender Eintrag editiert. In dem folgenden Beispiel wurde aus Gründen der Übersichtlichkeit der Code, der die Sitzungsverwaltung betrifft, weggelassen. [WebMethod(EnableSession=true)] public bool AddSemester(String semesterName, int wochen, int startKalenderwoche, int aktiv, 5 Prototypische Realisierung 56 int startJahr) { bool status = false; if(DBHandler.IsNewSemester(semesterName)) { status = DBHandler.InsertSemester( semesterName, wochen, startKalenderwoche, aktiv, startJahr); } else { status = DBHandler.UpdateSemester( semesterName, wochen, startKalenderwoche, aktiv, startJahr); } return status; } Per Parameter werden die Daten für die Änderung an den Semesterdaten an die Web Methode „AddSemester“ übergeben. Diese überprüft nun mit Hilfe der Klasse „DBHandler“ und der Methode „IsNewSemester“, ob es sich um einen neuen Eintrag handelt oder ob ein Eintrag editiert wurde. Nach dem Ergebnis dieser Abfrage wird die Methode „InsertSemester“ oder die Methode „UpdateSemester“ mit den Parametern gerufen. Der boolsche Wert „status“ zeigt an, ob die Operation erfolgreich auf der Datenbank ausgeführt werden konnte. 6 Feasibility Study Workflow-Management 6 57 Feasibility Study Workflow-Management Dieses Kapitel beschäftigt sich damit inwiefern die Unterstützung der vorliegenden Web Services durch Workflow-Management machbar und sinnvoll ist. Als zu untersuchende Tools des Workflow-Management wurden BPEL und XML-Netze gewählt. 6.1 BPEL BPEL kann nur auf Servern ausgeführt werden, die diese Sprache unterstützen. Dies sind z.B. folgende Server: • Microsoft BizzTalk Server 2004 • Oracel BPEL Process Manager • IBM WebSphere Business Integration Server Foundation • IBM BPWS4J • Vergil VCAB • OpenStorm Service Orchestrator • ActiveBPEL Engine and ActiveWebflow In den folgenden Beispielen wird von „naivem“ BPEL ausgegangen, das von allen Servern unterstützt wird. Einige Firmen haben BPEL auf ihrem Server noch mit Erweiterungen ausgestattet. Es wird im weiteren Verlauf von allgemeinem BPEL der Version 1.1 ausgegangen, ohne auf die Zusätze und Einschränkungen verschiedener Serveranbieter zu achten. Für Microsoft .NET Web Services wie sie hier verwendet wurden, ist der BizzTalk Server 2004 von Microsoft kompatibel. Dieser läuft allerdings nur auf einem Microsoft Windows Server 2003, auf dem ein Microsoft SQL Server 2000 installiert ist. Da der in dieser Arbeit erstellte Prototyp auf einer Microsoft Windows XP Plattform mit einer MySQL Datenbank entwickelt wurde, steht diese Option zur Realisierung nicht zur 6 Feasibility Study Workflow-Management Verfügung. Die Überprüfung der 58 Machbarkeit kann eingeschränkt dennoch weitergeführt werden unter der Annahme, dass Betriebssystem und Datenbank ausgetauscht werden. Um die Machbarkeit von BPEL für die prototypische Realisierung dieser Arbeit zu untersuchen, muss ein Prozess (Arbeitsablauf) betrachtet werden. Beispielhaft hierfür wäre z.B. der Prozess der Abgabe einer Hausaufgabe durch einen Studenten aus dem Modul „Verwaltung von E-Learning Objekten“. Dieser Prozess besteht aus zwei Schritten: Überprüfung, ob diese Hausaufgabe schon abgegeben wurde sowie Benachrichtigung des Tutors über den Eingang einer neuen Hausaufgabe. Die zweite Aktivität ist abhängig vom dem Ausgang der ersten Aktivität. Dieser Prozess wird in der prototypischen Realisierung als ein Web Service dargestellt, der alle dazugehörigen Funktionen aufruft. Diese könnten aber auch als eigenständige Web Services implementiert sein. Von diesem Fall wird hier ausgegangen. Folgende Abbildung zeigt den Prozess mit seinen Aktivitäten: Abbildung 6.1: Prozess „Hausaufgabe abgeben“ Es ist davon auszugehen, dass „Überprüfung der Abgabe“ und „Benachrichtigung Tutor“ eigenständige Web Services sind, die nacheinander von einem Workflow angestoßen werden müssen, damit sie ausgeführt werden. Bei diesem Beispiel wurde der Code an einigen Stellen gekürzt oder nur andeutungsweise wiedergegeben. Wie bereits erklärt, ist nicht die Implementierung auf einer konkreten Plattform Ziel dieses Kapitels, sondern die Untersuchung der 6 Feasibility Study Workflow-Management 59 allgemeinen Machbarkeit von Workflow-Management an einem Beispiel aus dem Modul „Verwaltung von E-Learning Objekten“. Das folgende Beispiel entstand in Anlehnung an die Beispiele in [6]. Als erstes müssen die beteiligten Partner durch folgende Zeilen beschrieben werden: <partnerLinks> <partnerLink name="Client" partnerLink="http://WebClient" /> <partnerLink name="AbgabePrüfen" partnerLink= "http://WebService/" /> </partnerLinks> In diesem Beispiel werden durch die Zeilen der Client und der beteiligte Web Service bekanntgemacht. Danach müssen die Variablen für die Anfragen und Antworten der Web Methoden des Web Service festgelegt werden. <variables> <variable name="AbgabePrüfenRequest" messageType= "AbgabePrüfenRequestMessage" /> <variable name="AbgabePrüfenResponse" messageType= "AbgabePrüfenResponseMessage" /> <variable name="TutorBenachrichtigenRequest" messageType= "TutorBenachrichtigenRequestMessage" /> </variables> Abschließend muss der Prozess selbst beschrieben werden. Hier wird festgelegt, welche Web Methoden in welcher Reihenfolge und unter welcher Bedingung aufgerufen werden. <sequence> <receive partnerLink="Client" operation="HausaufgabeAbgeben" variable="AbgabePrüfenRequest" createInstance="yes" </receive> 6 Feasibility Study Workflow-Management 60 In diesem ersten Abschnitt, der mit „<receive>“ umschrieben ist, wird festgelegt durch welches Event der Prozess ausgelöst wird – in diesem Fall durch den Aufruf der Web Methode „HausaufgabeAbgeben“ – und welche Variablen übergeben werden müssen. Danach folgt die Beschreibung der Web Methoden der oben festgelegten Web Services, die in diesem Prozess gerufen werden. Diese werden mit ihren Ein- und Ausgabevariablen beschrieben. <flow> <invoke partnerLink="WebService" operation="AbgabePrüfen" inputVariable="AbgabePrüfenRequest" outputVariable="AbgabePrüfenResponse" </invoke> <invoke partnerLink="WebService" operation="TutorBenachrichtigen" inputVariable="TutorBenachrichtigenRequest" </invoke> </flow> </sequence> Nachdem die beteiligten Web Methoden festgelegt wurden, können die Bedingungen der Aufrufe bestimmt werden. Dies geschieht mit den Konstrukten „<switch>“, „<case>“ und „<otherwise>“. Desweiteren bietet BPEL noch mehr Möglichkeiten, um Bedingungen abzufragen und den Ablauf von Web Services zu steuern. Die hier beschriebenen Konstrukte stellen nur einige Grundbausteine von BPEL dar. Ein gesamter Überblick über BPEL und seine Möglichkeiten kann an dieser Stelle nicht gegeben werden. Es wurde aber gezeigt, dass der beschriebene Prozess in BPEL abgebildet werden kann. Dadurch ist die Machbarkeit von Workflow-Management durch BPEL bei diesem Prototyp gegeben. Ob eine Umsetzung mit BPEL am gegebenen Prototyp sinnvoll ist, liegt in der Komplexität der Prozesse. Der Prototyp implementiert einfache und kurze Prozesse, die leicht durch den Code selbst gesteuert werden können. Eine Umsetzung mit BPEL ist aus diesem Grunde nicht sinnvoll, da die Einsparungen im Code nicht den 6 Feasibility Study Workflow-Management Mehraufwand der Einrichtung 61 eines Workflow-Managements rechtfertigt. Bei Weiterentwicklung des Protoyps muss diese Entscheidung immer wieder von Neuem untersucht werden. 6.2 XML-Netze XML-Netze sind eine neue, höhere Variante von Petri-Netzen (vgl. Glossar). Eine Besonderheit von Petri-Netzen ist ihre eindeutige graphische Darstellung und die einfache Verhaltensbeschreibung. Alle Petri-Netze besitzen eine gemeinsame Grundstruktur. Auf dieser bauen XML-Netze auf. Ein Definition von XML-Netzen findet sich z.B. unter [9], dort heißt es: „XML-Netze integrieren strukturierte XML-Dokumente in eine Petri-Netzbasierte Ablaufmodellierungssprache. XML-Netze ermöglichen die Modellierung voneinander abhängiger, aber auch nebenläufiger und alternativer betrieblicher Abläufe, die auf XML-Dokumenten basieren.“ Um die graphische Modellierung bei XML-Netzen zu ermöglichen, müssen folgende XML-Erweiterungssprachen zum graphischen XML-basierten Dokumenten- management eingesetzt werden: • GXSL (Graphical XML Schema Definition Language) • XManiLa (XML Manipulation Language) Diese können direkt von Workflow-Engines ausgeführt werden wodurch XML-Netze formuliert werden können. Workflow-Engines, die XML-Netze unterstützen, sind z.B. folgende: • YAWL (Yet Another Workflow Engine) • Bossa • Microsofts BizzTalk 2004 Es gibt noch weitere Workflow-Engines, sowohl kommerzielle Engines als auch Open Source-Engines, die XML-Netze unterstützen. Im Gegensatz zu BPEL, das hauptsächlich von kommerziellen Engines unterstützt wird, werden XML-Netze stark 6 Feasibility Study Workflow-Management 62 durch Open Source-Engines unterstüzt. Bossa und YAWL sind z.B. beides Open Source-Engines. Ein Nachteil von XML-Netzen liegt darin, dass es – soweit feststellbar – noch keine Unterstützung durch Tools zur Modellierung solcher XML-Netze gibt. Ein weiterer Nachteil in Bezug auf den hier zu Grunde liegenden Prototypen ist die Tatsache, dass sich XML-Netze zur Modellierung von Abläufen auf die Verarbeitung von XML-Dokumenten stützen. Die Lernobjekte des Prototypen sind nicht- standardisierte Dokumente verschiedenster Formate. Diese müssten in XMLDokumente umgewandelt werden, um sie für XML-Netze nutzbar zu machen. Dies stellt eine grundlegende Änderung an der prototypischen Realisierung dar. Die Realisierung von XML-Netzen mit dem gegebenen Prototypen setzt dadurch weitere größere Implementierungen voraus. Die Realisierbarkeit von XML-Netzen mit den in dieser Arbeit eingesetzten Prototypen und Werkzeugen ist deshalb nicht gegeben. 7 Sicherheitsaspekte 7 Sicherheitsaspekte 7.1 Allgemeine Sicherheitsanforderungen 63 Sicherheit gilt als ein schwerwiegendes Problem von Web Services. In diesem Kapitel sollen zuerst die grundlegenden Sicherheitsanforderungen und potenziellen Lücken bei Web Services aufgezeigt werden, um dann im nächsten Abschnitt die möglichen Spezifikationen für Web Service-Sicherheit vorstellen zu können. Die Sicherheitsanforderungen sind im Einzelnen laut [3] folgende: • Authentifizierung: bezeichnet das Erkennen des Kommunika­ tionspartners. • Autorisierung: steht für die Überwachung der Rechte, die ein Kommunikationspartner besitzt. • Glaubwürdigkeit: bedeutet, dass eine Nachricht auch nachträglich noch einem Sender zugeordnet werden kann. • Vertraulichkeit: besagt, dass die Daten vor dem Zugriff Dritter von außen geschützt sind. • Verfügbarkeit: gewährleistet zu guter Letzt, dass der Web Service einsetzbar ist und nicht „gewaltsam“ in seiner Funktionalität ein­ geschränkt werden kann. Die Sicherheitsanforderungen zeigen nicht auf, an welchen Stellen Web Services für Angriffe verwundbar sind. Um potenzielle Sicherheitslücken zu erkennen, muss bekannt sein, wo Web Services verwundbar sind. Ein Web Service besteht meist aus drei beteiligten Systemen: Endbenutzer, Konsument und Anbieter. Angriffe auf Web Services sind an allen drei Stellen möglich. Web Services sind desweiteren für „man in the middle“ (MITM) Angriffe anfällig, da die Daten unverschlüsselt übertragen werden. Folgende Szenarien sollen zeigen, wie die Systeme beispielsweise angegriffen werden können: 7 Sicherheitsaspekte • 64 Direkter Angriff auf den Server des Web Service Anbieters: Dadurch ergibt sich eine Beeinträchtigung der Verfügbarkeit. • Angriff auf den Server des Konsumenten: Dabei erhält der Angreifer unter Umständen Daten über Authentifizierung und Autorisierung. • Angriff auf den Datenverkehr, um Passwörter oder ähnlich sensible Daten zu erlangen durch z.B. MITM-Angriffe. Diese Auswahl von Beispielen kann beliebig erweitert werden und ist weder vollständig noch repräsentativ. Folgende Abbildung soll nochmals die beteiligten Systeme und die Angriffsmöglichkeiten bei Web Services verdeutlichen. Abbildung 7.1: Beteiligte Systeme und Angriffsmöglichkeiten bei Web Services (Quelle: Hauser,M., Löwer,M.,U., Web Services Die Standards, 2004, S. 130) 7 Sicherheitsaspekte 7.2 65 Sicherheitslösungen für Web Services Sicherheitslösungen für Web Services unterscheiden sich in zwei Kategorien: in Lösungen ohne Standards und Lösungen mit Standards. Lösungen ohne Standards Dies sind Lösungen, die zur Sicherung von Web Services abseits der neuen Standards von großen Firmen und Standardisierungsorganisationen eingesetzt werden können. Folgende Liste soll einen kurzen Überblick über verfügbare Lösungen geben: • SSL (Secure Socket Layer) • IPSec (Internet Protocol Security) und VPNs (Virtual Private Network) • Firewalls • Vermeidung von SQL Injections durch Verwendung von Stored Procedures Der Vorteil dieser „unstandardisierten“ Lösungen besteht darin, dass sie unabhängig von den Web Services implementiert werden können. Sollte eine dieser Sicherheitslösungen schon auf einem System implementiert sein, kann sie von Web Services mitgenutzt werden. In diesem Vorteil liegt aber auch ein Nachteil: Da diese Lösungen nicht für Web Services entwickelt wurden, beeinträchtigen sie meist die Performance der Web Services. Lösungen mit Standards Die „unstandardisierten“ Lösungen des letzten Abschnitts sind nicht auf die Bedürfnisse von Web Services zugeschnitten und bringen einige Nachteile mit sich. Deshalb entwickelten einige große Firmen und Standardisierungsorganisationen neue Spezifikationen, um die Sicherheitsanforderungen für Web Services zu decken. Es wurden z.B. folgende neue Spezifkationen für Web Services entwickelt: • XML-Signaturen • XML-Encryption 7 Sicherheitsaspekte 66 • XKMS (XML Key Management Specification) • XACML (Extensible Access Control Markup Language) • SAML (Secure Assertion Markup Language) • WS-Security (Web Service-Security) Jede dieser Spezifikationen wurde entwickelt, um einen oder mehrere Aspekte der Sicherheitsanforderungen für Web Services abdecken zu können. Folgende Tabelle zeigt die Abdeckung der Anforderungen durch die hier genannten Sicherheitslösungen. Tabelle 7.1: Sicherheitsstandards für Web Services Anforderung/ Authentifi­ zierung Standard XML- Auto­ risierung Glaub­ würdigkeit Vertraulich­ Verfüg­ keit barkeit + - + - - - - - + - XKMS + - - + - XACML + + - - - SAML + + - - - WS-Security + + + + - Signaturen XMLEncryption (Quelle: Hauser,M., Löwer,M.,U., Web Services Die Standards, 2004, S. 136) Die prototypische Implementierung, die im Rahmen dieser Arbeit erstellt wurde, verwendet keine der hier vorgestellten Sicherheitslösungen. Sicherheit für Web Services kann zwar implementiert werden, doch viele Lösungen sind zu einigen Web Services-Implementierungen und untereinander noch inkompatibel. Die Realisierung von Sicherheit für Web Services ist weiterhin an größere Implementierungen, die weitere Planungen voraussetzen, gekoppelt. Die Web Services der prototypischen Realisierung sind deshalb anfällig gegenüber den beschriebenen Sicherheitslücken. 8 Zusammenfassung und Ausblick 8 67 Zusammenfassung und Ausblick In dieser Diplomarbeit wurden die bedeutsamen Aspekte einer prototypischen Realisierung zur Verwaltung von E-Learning Objekten erörtert. Dies geschah auf der Basis einer vorhergehenden Bachelorthesis automatischer Datenaustausch zwischen (Kim Matthäß: befreundeten Content „Kontrollierter Management Systemen“, HS Karlsruhe, Fak. WI, 2005) zum Thema des kontrollierten und automatischen Datenaustauschs. Im Bereich des E-Learning liegt dieser Datenaustausch in Form von Lern- und Administrationsobjekten vor. Neben einer kurzen Beschreibung der verschiedenen Formen des E-Learning und deren Verwendung wurde vor allem ein Konzept zur Verwaltung von E-Learning-Objekten entwickelt. Zur Bildung dieses Konzepts wurden eine Problembeschreibung und eine Funktionsbeschreibung ausgearbeitet. Die Beschreibung erfolgte durch Aktivitätsdiagramme, Sequenzdiagramme und Use-Cases. Um die Realisierbarkeit des Konzepts nachzuweisen, wurde eine Testumgebung aus zwei konkreten Content Management Systemen realisiert. Die prototypische Realisierung wurde auf Basis von Microsoft Web Services und ASP.NET Webseiten implementiert. Die Webseiten bilden hierbei den Client für die Web Services, welche als Server agieren. Als Basissoftware für die Content Management Systeme wurde Mambo aus einer Reihe von Open Source CMS ausgewählt und implementiert. Bei der Realisierung zeigten sich erste Schwierigkeiten bezüglich der Kombination eines PHP-gestützten Systems wie Mambo mit ASP.NET Webseiten. Der Webserver IIS (Internet Information Service) muss beide Sprachen verstehen und übersetzen können, bringt jedoch von Haus aus nur die Unterstützung für ASP.NET mit. Diese Hürde konnte durch die Installation von PHP und die Einbindung in den IIS überwunden werden. Ein weiteres Problem stellte die Verbindung der Web Services zur MySQL Datenbank dar. Die Sprache C#, in welcher die Web Services geschrieben werden sollten, kennt keine einfache Möglichkeit der Verbindung zu MySQL Datenbanken. Dies konnte behoben werden durch eine Programmbibliothek von MySQL, welche die Möglichkeit von einfachen Verbindungen von C# zu MySQL Datenbanken implementiert. Diese Schwierigkeiten sind bezeichnend für Web Services, da viele Web Service Implementierungen mit bestehenden Technologien nicht kompatibel sind und oft nur eine sehr begrenzte Auswahl an kompatiblen Technologien vorhanden ist. Properitäre Produkte wie Microsoft Web Services setzten meist nur auf Produkte aus dem eigenen Haus. 8 Zusammenfassung und Ausblick 68 Lösungen wie hier dargestellt sind anfällig dafür, nach einem Update einer oder mehrerer der Technologien, wie z.B. C#, eingeschränkt oder gar nicht mehr zu funktionieren. Nachdem eine funktionierende Testumgebung eingerichtet wurde, konnte mit der Realisierung des Prototyps begonnen werden. Zur Realisierung wurden im ersten Schritt Komponentendiagramme erstellt, mit deren Hilfe in der Folge Klassendiagramme erstellt werden konnten, auf denen die Implementierung basiert. Microsoft bietet – vorausgesetzt, es werden Technologien aus dem eigenen Hause verwendet – oft Tools an, um die Kommunikation zwischen diesen zu erleichtern. In diesem Fall zeigte sich, dass durch die Verwendung der „wsdl.exe“ und die Erzeugung von Stellvertreterklassen die Kommunikation zwischen Web Services und den ASP.NET Webseiten vereinfacht werden konnte. Der Programmierer muss sich durch dieses Tool nicht mehr um die im XML-Format gestaltete Kommunikation zu kümmern, sondern kann die Aufrufe und die Handhabung der Rückgabewerte von Web Services in den Webseiten in der von ihm gewünschten Programmiersprache erledigen. Die Realisierbarkeit von Workflow-Management bei Web Services wurde beispielhaft anhand von BPEL und XML-Netzen untersucht. Beide Möglichkeiten sind nicht ohne Weiteres realisierbar. BPEL setzt voraus, dass die Web Services auf einem Microsoft Server laufen und dass die Datenbank ein SQL Server von Microsoft ist. Beide Voraussetzungen sind bei dem entwickelten Prototypen nicht gegeben. Durch eine Untersuchung von Beispielen in BPEL konnte aber festgestellt werden, dass eine Unterstützung durch BPEL realisierbar wäre, wenn der Prototyp diese Anforderungen erfüllen würde. XML-Netze setzen als Grundlage XML-Dokumente zur Verwaltung voraus, was bei dem Prototypen jedoch nicht gegeben ist. Dementsprechend kann ein Workflow-Management durch XML-Netze nicht realisiert werden, da es nur durch grundlegende Änderungen am Prototypen erreicht werden könnte. Die Sicherheitsaspekte von Web Services wurden aufgrund von gültigen Sicherheitsanforderungen und möglichen Sicherheitslücken untersucht. Es konnte festgestellt werden, dass Web Services ohne zusätzliche Sicherheitslösungen anfällig für eine Vielzahl von Angriffen sind. Mögliche Sicherheitslösungen wurden kurz vorgestellt und deren Abdeckung der Sicherheitsanforderungen gezeigt. Der entwickelte Prototyp zeigt, dass die Unterstützung der Verwaltung von E-Learning Objekten durch Web Services umgesetzt werden kann. Eine Unterstützung durch 8 Zusammenfassung und Ausblick 69 Workflow-Management konnte unter den gegebenen Bedingungen nicht realisiert werden. Die Unterstützung durch BPEL könnte aber durch Veränderungen an dem Prototypen und der Entwicklungsplattform realisiert werden. Sicherheit kann für Web Services mit den aufgezeigten Lösungen erreicht werden. Hierfür sind aber weitere Untersuchungen und Planungen erforderlich. Abschließend kann gesagt werden, dass Web Services momentan noch unter der Vielfalt der in diesem Projekt verwendeten Standards und Technologien leiden. Sollte jedoch in Zukunft eine einheitliche Lösung implementiert werden, wären Web Services durchaus in der Lage, eine sinnvolle und realisierbare Technologie für die Verwaltung von E-Learning Objekten darzustellen. Anhang: Quelltexte Anhang: Quelltexte Die folgenden Quelltexte sind hier aufgeführt: • Tutor.asmx • TutorInfos.aspx.cs • wsdl.bat Die vollständigen Quelltexte befinden sich auf einer CD, die der Arbeit beigelegt ist. Tutor.asmx: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Web; using System.Web.Services; using System.Security.Cryptography; using System.Text; namespace WebServiceE_Learning.Tutor { [WebService(Namespace="http://localhost/WebServiceE-Learning/")] public class Tutor : System.Web.Services.WebService { public Tutor() { InitializeComponent(); } 70 Anhang: Quelltexte 71 [WebMethod(EnableSession=true) ] public bool IsUserLoggedIn() { object loggedIn = Session["LoggedIn"]; if (null != loggedIn) return (bool)loggedIn; return false; } [WebMethod(EnableSession=true) ] public bool Login(string username, string password) { if (username == "" || username == null) return false; string query = "select username, password from mos_users " + "where username = " + "'" + username + "'"; DataSet dataSet = new DataSet("dataSet"); DBHandler.SelectFromDatabase(dataSet, DBHandler.MY_CONN_STRING_TUT, query); DataTable dt = dataSet.Tables[0]; if (dt.Rows.Count == 0) return false; DataRow dr = dt.Rows[0]; string userDB = (dr.ItemArray)[0].ToString(); string pwDB = (dr.ItemArray)[1].ToString(); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] md5PassPhraseHash = md5.ComputeHash( Encoding.ASCII.GetBytes(password)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < md5PassPhraseHash.Length; i++) Anhang: Quelltexte { sb.Append(md5PassPhraseHash[i].ToString("X2")); } string encodedPassword = sb.ToString().ToLower(); if ( userDB == username && pwDB == encodedPassword) { Session["LoggedIn"] = true; Session["Username"] = userDB; return true; } else { Session["Username"] = ""; Session["LoggedIn"] = false; } return false; } [WebMethod(EnableSession=true)] public void Logout() { Session["LoggedIn"] = false; Session["Username"] = ""; } [WebMethod(EnableSession=true)] public string GetLoggedInUser() { object user = Session["Username"]; if (null != user) return (string)user; return ""; } 72 Anhang: Quelltexte [WebMethod(EnableSession=true)] public void KorrekturAbgeben(string tutor, int lid, string url, double punkte) { if ((bool)Session["LoggedIn"] == true) { if (DBHandler.IsNewKorrektur(lid)) DBHandler.InsertVorKor(tutor, lid, url, punkte); else DBHandler.UpdateVorKor(tutor, lid, url, punkte); } } [WebMethod(EnableSession=true)] public string GetVeranstaltungNameForTutor(string tutor) { if ((object)Session["LoggedIn"] == null) return ""; if ((bool)Session["LoggedIn"] == true) { return DBHandler.GetVeranstaltungNameForTutor(tutor); } else return "" } [WebMethod(EnableSession=true)] public DataSet GetAufgabenVorkorForTutor(string tutor) { if ((object)Session["LoggedIn"] == null) return null; if ((bool)Session["LoggedIn"] == true) 73 Anhang: Quelltexte 74 { int sid = DBHandler.GetAktiveSemesterID(); int vid = DBHandler.GetVeranstaltungForTutor(tutor); string query = "SELECT l.id as 'Loesungs Nr.', v.url" + " as 'Korrektur URL' , l.url as 'Loesung URL', " + " h.Beschreibung,v.Punkte as 'Vorkorrektur Punkte'," + " h.Punkte as 'Max. Punkte', l.Student, t.Name" + " from vorkorrektur v, tutor t, hausaufgabe h,loesung l + " where v.tutor = t.id " + " and v.hausaufgabe = h.id " + " and v.loesung = l.id " + " and h.Semester = " + sid + " and h.Veranstaltung = " + vid; DataSet dataSet = new DataSet("dataSet"); return DBHandler.SelectFromDatabase(dataSet, DBHandler.MY_CONN_STRING, query); } else return null; } [WebMethod(EnableSession=true)] public DataSet GetAufgabenForTutor(string tutor) { if ((object)Session["LoggedIn"] == null) return null; if ((bool)Session["LoggedIn"] == true) { int sid = DBHandler.GetAktiveSemesterID(); int vid = DBHandler.GetVeranstaltungForTutor(tutor); string query = "select l.id as 'Loesungs Nr.', " + " h.Beschreibung, " + " l.Student, l.url as 'Loesung URL', " + " h.URL as 'Aufgabe URL', Punkte as 'Max.Punkte' " " Anhang: Quelltexte 75 + " from loesung l, hausaufgabe h " + " where h.id = l.hausaufgabe " + " and h.veranstaltung = " + vid + " and h.semester = " + sid; DataSet dataSet = new DataSet("dataSet"); return DBHandler.SelectFromDatabase(dataSet, DBHandler.MY_CONN_STRING, query); } else return null; } [WebMethod(EnableSession=true)] public DataSet GetAufgabenToDoForTutor(string tutor) { if ((object)Session["LoggedIn"] == null) return null; if ((bool)Session["LoggedIn"] == true) { int sid = DBHandler.GetAktiveSemesterID(); int vid = DBHandler.GetVeranstaltungForTutor(tutor); string query = "select h.Beschreibung,l.Student,l.Id " + " from loesung l , hausaufgabe h where " + " l.Hausaufgabe = h.id and " + " h.Semester = " + sid +" and " + " h.Veranstaltung = " + vid + " and l.id not in (select v.loesung from + " vorkorrektur v )"; DataSet dataSet = new DataSet("dataSet"); return DBHandler.SelectFromDatabase(dataSet, DBHandler.MY_CONN_STRING, query); } else return null; Anhang: Quelltexte } } } TutorInfo.aspx.cs using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace WebZugriffE_Learning.Tutor { public class TutorInfo : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox UserTextBox; protected System.Web.UI.WebControls.TextBox PasswortTextBox; protected System.Web.UI.WebControls.Label UserLabel; protected System.Web.UI.WebControls.Label PasswortLabel; protected System.Web.UI.WebControls.Label HeaderLabel; protected System.Web.UI.WebControls.DataGrid VorDataGrid; protected System.Web.UI.WebControls.Label AbgegebeneHausaufgabenLabel; protected System.Web.UI.WebControls.Label VorLabel; protected System.Web.UI.WebControls.DataGrid AbgegebeneHausaufgabenDataGrid; protected System.Web.UI.WebControls.DropDownList HausaufgabeDropDownList; protected System.Web.UI.WebControls.TextBox URLTextBox; 76 Anhang: Quelltexte protected System.Web.UI.WebControls.Label URLLabel; protected System.Web.UI.WebControls.Label PunkteLabel; protected System.Web.UI.WebControls.Button VorKorButton; protected System.Web.UI.WebControls.Label StatusLabel; protected System.Web.UI.WebControls.Button LoginButton; protected System.Web.UI.WebControls.Label VorEinLabel; protected System.Web.UI.WebControls.TextBox PunkteTextBox; protected System.Web.UI.WebControls.Button Logout; private static proxyTutor.Tutor myService; private static System.Net.CookieContainer cookies; private void Page_Load(object sender, System.EventArgs e) { myService = new proxyTutor.Tutor(); if (cookies == null) { cookies = new System.Net.CookieContainer(); myService.CookieContainer = cookies; } else myService.CookieContainer = cookies; if (myService.IsUserLoggedIn()) { ShowLoggedIn(true); } else ShowLoggedIn(false); if (! IsPostBack) { FillHausaufgabenDropDown(); } 77 Anhang: Quelltexte 78 FillGrids(); } private void FillHausaufgabenDropDown() { HausaufgabeDropDownList.DataSource = myService.GetAufgabenToDoForTutor( myService.GetLoggedInUser()); HausaufgabeDropDownList.DataTextField = "Id"; HausaufgabeDropDownList.DataValueField = "Id"; HausaufgabeDropDownList.DataBind(); } private void ShowLoggedIn(bool trigger) { AbgegebeneHausaufgabenDataGrid.Visible = trigger; AbgegebeneHausaufgabenLabel.Visible = trigger; VorLabel.Visible = trigger; VorDataGrid.Visible = trigger; HausaufgabeDropDownList.Visible = trigger; URLTextBox.Visible = trigger; URLLabel.Visible = trigger; PunkteLabel.Visible = trigger; PunkteTextBox.Visible = trigger; VorEinLabel.Visible = trigger; VorKorButton.Visible= trigger; Logout.Visible = trigger; LoginButton.Visible = !trigger; UserLabel.Visible = !trigger; UserTextBox.Visible = !trigger; PasswortLabel.Visible = !trigger; PasswortTextBox.Visible = !trigger; } Anhang: Quelltexte 79 private void FillGrids() { AbgegebeneHausaufgabenDataGrid.DataSource = myService.GetAufgabenForTutor( myService.GetLoggedInUser()); AbgegebeneHausaufgabenDataGrid.DataBind(); VorDataGrid.DataSource = myService.GetAufgabenVorkorForTutor( myService.GetLoggedInUser()); VorDataGrid.DataBind(); } private void LoginButton_Click(object sender, System.EventArgs e) { bool status = myService.Login(UserTextBox.Text, PasswortTextBox.Text); ShowLoggedIn(status); FillHausaufgabenDropDown(); FillGrids(); if(status) StatusLabel.Text = "Sie sind eingeloggt als " + myService.GetLoggedInUser() + " sie sind Tutor für die Veranstaltung " + myService.GetVeranstaltungNameForTutor( myService.GetLoggedInUser()); else StatusLabel.Text = "Login gescheitert!"; } private void Logout_Click(object sender, System.EventArgs e) { myService.Logout(); ShowLoggedIn(false); Anhang: Quelltexte StatusLabel.Text = ""; } private void VorKorButton_Click(object sender, System.EventArgs e) { if (myService.IsUserLoggedIn()) { myService.KorrekturAbgeben(myService.GetLoggedInUser(), Int32.Parse(HausaufgabeDropDownList.SelectedItem.Text), URLTextBox.Text, Double.Parse(PunkteTextBox.Text)); FillGrids(); FillHausaufgabenDropDown(); } } } } wsdl.bat: d: cd D:\programmieren\csharp\VS\SDK\v1.1\Bin wsdl.exe /l:c# /n:proxyTutor /out:proxyTutor.cs http://localhost/WebServiceE-Learning/Tutor/Tutor.asmx move proxyTutor.cs C:\Inetpub\wwwroot\WebZugriffE-Learning\bin c: cd C:\Inetpub\wwwroot\WebZugriffE-Learning\bin csc.exe /target:library proxyTutor.cs 80 Glossar 81 Glossar Client: Ein Client ist eine Komponente, die in einem Netzwerk den Dienst eines Servers (siehe auch „Server“) in Anspruch nimmt. Man spricht dann vom Client-ServerPrinzip. Der Webbrowser ist ein Beispiel für einen Client, denn er sendet bei jedem Aufruf einer Webseite eine Anfrage an einen Webserver und erhält dann von diesem eine Antwort. Das Wort Client wird umgangssprachlich auch oft verwendet, um einen Computer in einem Netzwerk zu bezeichnen. Der Client (Rechner und Programm) ist bei einer Datenübertragung für die Kontaktaufnahme verantwortlich und bestimmt deren Zeitpunkt. Das hat für den Client-Rechner den Vorteil, dass er erst zum Zeitpunkt der Kontaktaufnahme eine Netzverbindung benötigt (Wikipedia, 05.01.2006). Namensraum: (englisch name space) ist ein Begriff aus der Informatik. Ein Name identifiziert ein Objekt. Zur eindeutigen Zuordnung ist jedoch der entsprechende Kontext – eben der Namensraum zu beachten. Die Beschreibung geschieht üblicherweise durch die "Punkt"-Notation. Neben der "Punkt"-Notation sind aber auch andere Zeichen gebräuchlich, z. B.: bei Dateinamen "\" oder "/". Einige Namensräume (z.B. Dateisysteme) sind hierarchisch aufgebaut; d.h. Namensräume können selbst wieder aus Namensräumen bestehen. Namensräume werden dazu verwendet, Konflikte bei der Namensvergabe zu verhindern. Graphisch sind Namensräume mit Bäumen äquivalent; d.h. Namensräume haben eine Wurzel (einen festen, definierten Ausgangspunkt), Knoten (Verzeichnisse) und Blätter (Objekte) (Wikipedia, 05.01.2006). Petri-Netz: ist ein mathematisches Modell von nebenläufigen Systemen. Die ursprüngliche Form der Petri-Netze nennt man auch Bedingungs- oder Ereignisnetz. Endliche Automaten und Bedingungs- oder Ereignisnetze sind gleichmächtig. PetriNetze wurden durch Carl Adam Petri in den 1960er Jahren definiert. Sie verallgemeinern wegen der Fähigkeit, nebenläufige Ereignisse darzustellen, die Automatentheorie (Wikipedia, 05.01.2006). Server: Ein Server ist in der Informatik ein Dienstleister, der in einem Computersystem Daten oder Ressourcen zur Verfügung stellt. Das Computersystem kann dabei aus einem einzelnen Computer oder einem Netzwerk mehrerer Computer bestehen. Es Glossar 82 wird zwischen dem Server-Programm (Computerprogramm, das einen Dienst (z.B. Netzwerkprotokoll) implementiert) und dem Server-Computer (Computer auf dem ein oder mehrere Server-Programme laufen, wobei die korrekte Bezeichnung für diesen physischen Rechner „Host“ ist) unterschieden (Wikipedia, 05.01.2006). Stored Procedure: (deutsch: Gespeicherte Prozedur, kurz: SP) ist eine Funktion bestimmter Datenbankmanagementsysteme. In einer Stored Procedure können ganze Abläufe von Anweisungen unter einem Namen gespeichert werden, die dann auf dem Datenbankserver zur Verfügung stehen und ausgeführt werden können. Mit anderen Worten: Eine SP ist ein eigenständiger Befehl, der eine Abfolge von gespeicherten Befehlen ausführt (Wikipedia, 05.01.2006). SQL-Injection: Bezeichnet das Ausnutzen einer Sicherheitslücke in Zusammenhang mit SQL-Datenbanken. Diese entsteht bei mangelnder Maskierung oder Überprüfung von Funktionszeichen. Der Angreifer versucht über die Anwendung, die den Zugriff auf die Datenbank bereitstellt, eigene Datenbankbefehle einzuschleusen. Sein Ziel ist es dabei, Kontrolle über die Datenbank oder den Server zu erhalten (Wikipedia, 05.01.2006). Workflow: Ein modellierter Workflow (deutsch: Arbeitsablauf) beschreibt möglichst genau und operativ die auszuführenden Arbeitsschritte. Das Ziel ist hierbei weniger eine Dokumentation für die Mitarbeiter als eine mögliche (Teil-)Automatisierbarkeit der Ausführung. Arbeitsablaufmodelle sollen dabei helfen, die optimale Einbindung verschiedenster Anwendungen (Textverarbeitungen, Tabellenkalkulationen, Datenbanken usw.) in die jeweiligen Arbeitsabläufe sicherzustellen (Wikipedia, 05.01.2006). Literaturverzeichnis 83 Literaturverzeichnis [1] Cover Pages (Hrsg.), BPEL, http://xml.coverpages.org/ [2] Hauser,T., Löwer,U.,M.: Web Services Die Standards, 2004, S. 12-20 [3] Hauser,T., Löwer,U.,M.: Web Services Die Standards, 2004, S. 128ff. [4] Hauser,T., Löwer,U.,M.: Web Services Die Standards, 2004, S. 164 [5] Hauser,T., Löwer,U.,M.: Web Services Die Standards, 2004, S. 172 [6] Juric,B.,M., Mathew,B., Sarang,P.: Business Process Execution Language for Web Services – An architect and developer´s guide to orchestrating web services using BPEL4WS, 2004, S. 51ff. [7] Masud,S.: BPEL4WS and RosettaNet, 2003, http://www.128.ibm.com/developerworks/webservices/library/ws-rose1/ [8] Matthäß,K.: Kontrollierter automatischer Datenaustausch zwischen befreundeten Content Management Systemen, HS Karlsruhe, Fak. WI, 2005 [9] Mevius,v.,M.: Modellierung von dokumentenbasierten Geschäftsprozessen mit XML-Netzen, http://lwi2.wiwi.uni-frankfurt.de/projekte/xmlnet/BTW01_mevius.pdf [10] Payette,S., Lagoze,C.: Value-Added Surrogates for Distributed Content, D-Lib Magazine, Volume 6 Number 6, June 2000, ISSN 1082-9873 [11] phpCMS (Hrsg.), CMS, http://docs.phpcms.de/index.php/The_definition_of_Content_Management_Systems Literaturverzeichnis [12] Schulmeister,R.: Lernplattformen für das virtuelle Lernen, 2003, S. 10 [13] Schuster,E., Wilhelm,S.: Content Management, Gesellschaft für Informatik (GI), 08/2005, http://www.gi-ev.de/service/informatiklexikon/informatiklexikondetailansicht/meldung/28/druckversion.html [14] Universität Hildesheim (Hrsg.), Definition E-Learning, 2003, http://www.uni-hildesheim.de/de/9808.htm [15] Wikipedia (Hrsg.), E-Learning, http://de.wikipedia.org/wiki/E-Learning [16] Wikipedia (Hrsg.), BPEL, http://de.wikipedia.org/wiki/BPEL 84 Stichwortverzeichnis 85 Stichwortverzeichnis ACID............................................ 13f., 17 Petri-Netz...................................... 61, 81 Aktivitätsdiagramm............ 24, 26, 32, 34 Portal....... 3, 22f., 27ff., 31, 36ff., 45f., 48 Architektur............................... 20, 41, 43 Prozess................... 1, 7f., 10, 14ff., 58ff. ASP......................... VII, 20f., 41, 44, 50f. Sequenzdiagramm..................... 28, 37ff. BPEL........2, VII, 15ff., 21, 57f., 60f., 83f. Server. VII, 19f., 24, 28ff., 37ff., 43ff., 49, 51, 57, 64, 81f. CAE.................................................VII, 9 Client 28f., 37, 39ff., 43f., 49f., 54, 59, 81 Client .................................................. 29 CMS............................ 1ff., 10f., 17ff., 83 Code-Behind........................... 41, 44, 50 Content Management Systeme...1ff., 11, 17, 67, 83 DataSet....................................... 51, 54f. Datenbank. 14, 21, 24, 28, 40ff., 45f., 48, 51, 53ff., 82 DBHandler..........40ff., 44ff., 48, 52, 54ff. DISCO...........................................VII, 12 Dozent.... 17, 22f., 26, 28, 30f., 34f., 37f., 40, 44ff. DozentWeb.....2, 19, 22f., 27ff., 31, 36ff., 40, 45f. Session..............................................54f. Sicherheit...................................... 63, 66 SOAP................................ VII, 12, 15, 50 Stellvertreterklasse............................ 49f. Student.. 22ff., 27, 31f., 36f., 40, 44, 46f., 51, 54 TutorClient....2, 19, 22f., 27, 29, 31, 36f., 39f., 48 UDDI............................................ VIII, 13 UML........................................... VIII, 20f. Use-Case................................ 26ff., 35ff. Verwaltung von E-Learning Objekten.22, 30, 32, 34ff., 39f., 43ff., 48 W3C..................................... VIII, 12f., 15 Web Methode............................. 51, 53ff. E-Learning1f., 7ff., 22, 30, 32, 34ff., 39f., 43ff., 48, 51, 84 Web Service.VIII, 11f., 14ff., 29, 38f., 42, 44ff., 48ff., 54, 58f., 63f., 66 Klassendiagramm.................42, 44ff., 48 Web Services.......2, VIIf., 11ff., 17, 20ff., 28ff., 37, 39ff., 45, 50ff., 55, 57, 83 Komponentendiagramm...................... 41 Mambo........................................ 18f., 67 Management..... 1ff., 10f., 15, 17, 21, 57, 59f., 66f., 83f. Methode...................... 42, 45ff., 50ff., 60 Microsoft............................ 15, 20, 49, 57 Modell...................................... 23, 31, 81 Modellbeschreibung...................... 23, 31 OASIS..................................... VII, 13, 15 Open Source......................... 18, 61f., 67 Webseite....... 3, 9, 17, 21, 28f., 39ff., 44, 50ff. Workflow............................1f., 15, 57, 82 Workflow-Management................. 1f., 57 XML......2, VIIf., 12, 15, 50, 53f., 57, 61f., 65f., 83 XML-Netze.............................. 2, 57, 61f. Zeiterfassung22ff., 26ff., 41ff., 48, 50, 52 .NET...................................... 21, 49, 51f.