FACHHOCHSCHULE WEDEL Fachbereich Wirtschaftsinformatik Diplomarbeit Umsetzung und Einführung einer abteilungsspezifischen Struktur zum Datenaustausch in der Unternehmung Olympus Deutschland GmbH im Fachbereich Mikroskopie Eingereicht von: Sebastian Conrad Dörnbergstr. 1a 21339 Lüneburg Tel.: (04131) 99 88 73 Abgegeben am: 31. August 2008 Erarbeitet im: 12. Semester Referent: Prof. Dr. Hans-Detlef Gerhardt Fachhochschule Wedel Feldstraße 143 22880 Wedel Tel.: (04103) 80 48 38 Betreuerin: Carola Buchner Olympus Deutschland GmbH Mikroskopie Deutschland Wendenstraße 14-18 20097 Hamburg Tel.: (040) 23 773 54 39 I Vorwort Ich möchte die Ausarbeitung mit einem Zitat einleiten: „Früher war der Mensch Herr seines Wissens. Jetzt ist das Wissen sein Herr.“ (John Steinbeck) Hiermit möchte ich mich bei allen Mitarbeitern von Olympus für Ihre Unterstützung und Mitarbeit bedanken, speziell bei meiner Betreuerin Frau Carola Buchner, die mir mit Rat und Tat jederzeit zur Seite stand. Ebenfalls möchte ich mich bei meinem Referent der Fachhochschule Wedel Herrn Prof. Dr. Gerhardt bedanken, der meine Diplomarbeit betreut hat. Und natürlich gilt auch mein Dank meiner Verlobten Marie, die mich immer unterstützt hat. In dieser Ausarbeitung wird lediglich die männliche Form des Mitarbeiters verwendet, soll inhaltlich aber genauso für alle Mitarbeiterinnen gelten. 1 / 112 II Zusammenfassung Die Aufgabe der Diplomarbeit war die Umsetzung und Einführung einer abteilungsspezifischen Struktur in dem bestehenden Informationssystem MicroNet. Die Struktur soll zum Austausch von kontextgebundenen Wissen in Form von Dateien innerhalb einer bestimmten Benutzergruppe dienen. MicroNet ist ein Dokumentenmanagementsystem, was einen abteilungsübergreifenden Austausch von Dokumenten möglich macht, aber noch nicht auf die Bedürfnisse einzelner Abteilungen eingeht. Bei der technischen Umsetzung ist man auf das Lotus Notes Team angewiesen. Aufgrund anderer Projekte und Prioritäten wäre es der Abteilung nicht möglich gewesen, eine Unterstützung in der festgelegten Diplomarbeitsphase (März bis August) anzubieten. Es wurde von Olympus betont, dass die Umsetzung der Struktur auch erfolgreich von den Endbenutzern angenommen werden soll, da vorher gegangene Projekte nicht akzeptiert wurden oder schwer bedienbar waren. Aufgrund dessen sind Anforderungen aus dem Wissensmanagement in die Software mit integriert, um die Wahrscheinlichkeit einer erfolgreichen Einführung bzw. Akzeptanz der Benutzer zu erhöhen. Aufgrund dieser Tatsachen wurde meinerseits vorgeschlagen, die Struktur nicht durch das Informationssystem MicroNet abzubilden, sondern durch einen selbst entwickelten Prototypen namens Wissi vorzunehmen, da andere bestehende Softwarelösungen die Anforderung an die Umsetzung nicht bieten können. Dieser Vorschlag wurde angenommen. Wissi ist ein Dokumentenmanagementsystem und wurde mit PHP, HTML, CSS, JavaScript und MySQL entwickelt. Wissi ist lediglich ein Prototyp und soll ein Vergleich zum bestehenden MicroNet schaffen. 2 / 112 III Inhaltsverzeichnis I Vorwort............................................................................................................... 1 II Zusammenfassung............................................................................................. 2 III Inhaltsverzeichnis.............................................................................................. 3 IV Darstellungsverzeichnis..................................................................................... 6 V Abkürzungsverzeichnis...................................................................................... 7 1. Vorgehen 1.1 Allgemeines.............................................................................................. 10 1.2 Abteilungsspezifische Struktur................................................................. 10 2. Wissensmanagement 2.1 Grundlagen................................................................................................ 2.1.1 Information.................................................................................... 2.1.2 Wissen............................................................................................ 2.2 Allgemeines............................................................................................... 2.3 Anforderungen........................................................................................... 2.3.1 Barrieren........................................................................................ 2.3.2 Erfolgsfaktoren.............................................................................. 2.4 Softwaretechnische Unterstützung............................................................ 2.5 Einführung................................................................................................. 2.5.1 Initiierung....................................................................................... 2.5.1.1 Motivation.......................................................................... 2.5.1.2 Organisatorische Vorbereitung........................................... 2.5.2 Umsetzung..................................................................................... 2.5.3 Evaluation...................................................................................... 3. 12 12 14 15 16 17 18 19 22 25 25 26 27 28 Unternehmen Olympus 3.1 Allgemeines............................................................................................... 30 3.2 Aufbau....................................................................................................... 30 3.3 Grundlagen Informationssystem............................................................... 32 3 / 112 4. 5. 6. MicroNet 4.1 Grundlagen DMS...................................................................................... 4.2 Grundlagen Lotus Notes........................................................................... 4.2.1 Allgemeines................................................................................... 4.2.2 Funktionalitäten............................................................................ 4.2.3 Architektur von Domino............................................................... 4.2.4 Grundlagen der Applikationsentwicklung..................................... 4.2.4.1 Programmierkonzepte von Notes...................................... 4.2.4.2 Domino Designer............................................................... 4.2.4.3 Seiten................................................................................. 4.2.4.4 Masken und Dokumenten.................................................. 4.2.4.5 Ansichten und Ordner........................................................ 4.2.4.6 Interaktive Elemente und Agenten..................................... 4.2.4.7 Formeln in Notes Domino................................................. 4.2.5 Volltextsuche.................................................................................. 4.2.5.1 Volltextindex...................................................................... 4.2.5.2 Erstellung eines Volltextindex............................................ 4.2.5.3 Syntax einer Abfrage......................................................... 4.2.5.4 Datenbankübergreifende Volltextsuche............................. 4.2.6 Datenbanken in Lotus Notes......................................................... 4.3 Grundlagen MicroNet................................................................................ 4.4 Systembewertung...................................................................................... 33 37 37 38 39 40 40 40 41 41 42 42 43 43 44 44 45 45 46 47 52 Entwicklung Wissi 5.1 Einführung................................................................................................. 5.2 Anforderungen.......................................................................................... 5.3 Systemanforderungen................................................................................ 5.4 Übersicht................................................................................................... 5.4.1 Startseite........................................................................................ 5.4.2 Suchen........................................................................................... 5.4.3 Hochladen...................................................................................... 5.4.4 Einstellungen................................................................................. 5.5 Einführung................................................................................................. 56 57 58 59 60 61 62 62 63 HTML 6.1 Grundlagen................................................................................................ 6.2 Anforderungen.......................................................................................... 6.3 JavaScript.................................................................................................. 6.4 CSS........................................................................................................... 64 68 68 70 4 / 112 7. PHP 7.1 7.2 7.3 7.4 7.5 7.6 8. Gründe für PHP....................................................................................... Grundlagen............................................................................................. Anforderungen....................................................................................... Übertragungsmethoden GET und POST................................................ 7.4.1 POST........................................................................................... 7.4.2 GET............................................................................................. Persistente Datenablage.......................................................................... 7.5.1 Cookies....................................................................................... 7.5.2 Sessionverwaltung...................................................................... 7.5.3 sonstige....................................................................................... Zugriff auf Dateisystem.......................................................................... 75 77 81 83 85 87 90 91 95 98 99 MySQL 8.1 Grundlagen.............................................................................................. 8.2 Aufbau der Datenbank............................................................................ 101 104 9. Schlussfolgerung............................................................................................... 108 10. Literaturverzeichnis.......................................................................................... 109 11. Anhang 12.1 CD............................................................................................................ 12.x Eidesstattliche Erklärung......................................................................... 112 112 5 / 112 IV Darstellungsverzeichnis Nr Beschreibung Seite Abb. 1 Abteilungsspezifische Struktur 11 Abb. 2 Wissenstreppe 14 Abb. 3 Die sechs Einführungs-Phasen des Wissensmanagement 22 Abb. 4 Einführung und Arten von Multiplikatoren 26 Abb. 5 Verstetigung und Weiterentwicklung der technisch-organisatorischen WM-Lösung 28 Abb. 6 Kontinuierliche Evaluation und ggf. Gegensteuerung 29 Abb. 7 Startseite MicroNet 47 Abb. 8 Elternordner und Kindsordner 48 Abb. 9 Dialog Suchfunktion 49 Abb. 10 Suchergebnisse 49 Abb. 11 Hochladen: Basic 50 Abb. 12 Hochladen: Access 51 Abb. 13 Hochladen: Basic mit Anhang 51 Abb. 14 Startseite Wissi 59 Abb. 15 Wissi: Suchen 61 Abb. 16 Verbreitung von PHP im Internet, November 2007 76 Abb. 17 Datenbank: Tabellen für Benutzer 104 Abb. 18 Datenbank: Tabellen für Dokument 106 Abb. 19 Datenbank: Tabellen für Kategorie 107 6 / 112 V Abkürzungsverzeichnis A Abb. Abbildung AD Außendienstler AP Ansprechpartner ASP Active Server Page B B Byte BMWi Bundesministerium für Wirtschaft und Technologie BSI Bundesamt für Sicherheit in der Informationstechnik bzw. beziehungsweise bzgl. bezüglich C CLI Command Line Interface CoP Communities of Practice CSS Cascading Style Sheets D DFD Datenflussdiagramm DB Datenbank DBS Datenbanksystem DMS Dokumentenmanagementsystem DTD Dokumententypdefinition E ERD Entity-Relationship-Diagramm 7 / 112 F FTP File Transfer Protocol G GB Gigabyte H HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol I IETF Internet Engineering Task Force IIS Internet Information Services IM Informationsmanagement IS Informationssystem IT Informations- und Kommunikationstechnik / Informationstechnik K Kap. Kapitel KB Kilobyte M MB Megabyte MIME Multipurpose Internet Mail Extensions 8 / 112 N NNTP Network News Transfer Protocol O o.a. oder ähnliches OIS Open Source Initiative P PHP Hypertext Preprocessor R RFC Request for Comments S SMTP Simple Mail Transfer Protocol sog. so genannte T TCP/IP Transmission Control Protocol/Internet Protocol U u.a. unter anderem URI Uniform Resource Identifier URL Uniform Resource Locator URN Uniform Resource Name W WaSP Web Standards Project WM Wissensmanagement WMS Wissensmanagementsystem WWW World Wide Web 9 / 112 1. Vorgehen 1.1 Allgemeines Zunächst werden die grundlegenden Begriffe wie Information und Wissen erläutert. Dann wird geprüft, ob die abteilungsspezifische Struktur in MicroNet umsetzbar ist bzw. ob MicroNet geeignet ist als Dokumentenmanagementsystem. Die Überprüfung ist verbunden mit einer Bewertung, die letztendlich ergibt, dass eine eigene Entwicklung geeigneter wäre. Es wurde an alle Innen- und Außendienstmitarbeiter ein Fragebogen (Rücklaufquote von 44%) verschickt. Dieser sollte Aufschluss über die folgenden Tatsachen einbringen: − soll eine neue Software in Lotus Notes integriert sein? − welche Schulungen benötigen die Mitarbeiter für eine neue Software? − Wie oft wird das MicroNet benutzt? − Welche Kenntnisse haben die Mitarbeiter unter Lotus Notes? Es wird in der Ausarbeitung Bezug auf den Fragebogen genommen bzw. es werden Ergebnisse daraus vorgestellt. Den Fragebogen findet man auf der CD in dem Ordner Fragebogen. In der Ausarbeitung werden diverse Code-Beispiele zur Verdeutlichung angegeben. Der Code wird wie in der folgenden Abbildung dargestellt: <Code-Beispiel> 1.2 Abteilungsspezifische Struktur Diese Struktur wurde von Olympus vorgegeben und soll wie in Abb. 1 dargestellt werden. Im MicroNet sollte diese Struktur unter dem Navigationspunkt Teamroom und dem Unterordner DACH liegen. Die Struktur besteht aus einzelnen Ebenen. Eine Kategorie (z.B. Service) in einer Ebene kann durch einen Ordner dargestellt werden. Es soll außerdem möglich sein, in einem Ordner beliebig viele Dateien bzw. Dokumente zu hinterlegen. Diese sind hier nicht angegeben. 10 / 112 Ebene 1 Ebene 2 Ebene 3 Marketing Veranstaltungen Presse Office Administration Mikroskopie Artikel Nutzungskalender Organisation Adresslisten Anfahrtsbeschreibungen Reisekosten Urlaub Sales ACCA Deutschland Österreich Schweiz Kooperationspartner OEM Kunden und Ansprechpartner Umsatzübersicht OSIS Funktionsübersicht Rechnerkonfiguration Produkte Wettbewerb Keyence La Vision Leica Nikkon Sonstige Zeiss Service Glühlampen Sonderbauten Forum Abb. 1: Abteilungsspezifische Struktur 11 / 112 2. Wissensmanagement Projekte wie z.B. MicroProject Database, die im Vorfelde entwickelt wurden, um Informationen und Wissen auszutauschen, sind aufgrund der unausgereiften technischen Umsetzung vom Benutzer nicht akzeptiert worden. Auch das Informationssystem MicroNet ist aufgrund diverser Faktoren nicht erfolgreich angenommen worden. Im Wissensmanagement wurden Anforderungen erarbeitet, die die Wahrscheinlichkeit einer erfolgreichen Einführung und Nutzung einer wissensbezogenen Methode oder Software erhöhen. Aufgrund dessen werden die relevanten Teile des WM hier erläutert. 2.1 Grundlagen Für die Behandlung des Wissensmanagement sind die grundlegenden Begriffe und Unterschiede von Wissen und Information zu verdeutlichen. 2.1.1 Information Information lässt sich nicht allgemein definieren, da jeder Bereich wie z.B. die Physik oder die Biologie den Informationsbegriff spezifisch prägt.1 Daher wird im folgenden der Informationsbegriff aus dem Standpunkt der Informatik erläutert. Information wird u.a. dargestellt durch Sprache, Zeichen, Signale und wird u.a. verarbeitet durch Eingabe, Ausgabe, Übermittlung und Kombination.2 Eine Information lässt sich nach Claus et al. (2006, S. 303), nach Krcmar (2005, S. 16ff) und nach Abts et al. (2004, S. 8) in die drei Teile gliedern: − syntaktischer Teil (Beschreibung der Struktur der einzelnen Bausteine) − semantischer Teil (Bedeutung der Information) − pragmatischen Teil (Zweck der Information) 1 Siehe dazu Heinrich et al. (2007), S.132ff 2 Vgl. Claus et al. (2006), S. 303 12 / 112 Information kann durch eine Vielzahl von Eigenschaften charakterisiert werden. Krcmar (2005, S. 18ff) listet u.a. folgende Eigenschaften von Informationen auf: − Informationen sind immaterielle Güter, die auch bei mehrfacher Nutzung nicht verbraucht werden. − Informationen sind keine freien Güter, sie können daher einen kostenadäquaten Wert haben. − Der Wert der Information hängt von der kontextspezifischen und von der zeitlichen Verwendung ab. − Es gibt unterschiedliche Qualitäten von Informationen, wie z.B. Genauigkeit, Vollständigkeit, Zeitgenauigkeit und Zuverlässigkeit. − Informationen werden kodiert übertragen, daher sind für Ihren Austausch gemeinsame Standards notwendig. Und Lehner et al. (1995, S. 175ff) listet noch auf: − Information durchläuft einen Art Lebenszyklus. − Empfänger von Informationen erhalten nie das Original, sondern lediglich eine Kopie der Information Claus et al. (2006, S. 303) führt die weiteren Eigenschaften an: − Information benötigt keinen fixen Träger, d.h. sie ist beliebig oft kopierbar und kennt keine Originale. − Information ist fast beliebig kombinierbar. Man kann daher einer Information nicht ansehen, ob ihre Teile zueinander gehören. − Information kann sich stark komprimieren − Information dient dazu, Information zu verarbeiten, insbesondere sich selbst (Halteproblem) − Auch Bruchstücke und Verfälschungen einer Information gelten als Information. Information ist also ein Wirtschaftsgut, welches nicht abnutzbar ist. Der Wert einer Information kann nach der Aktualität und Qualität bestimmt werden. 13 / 112 2.1.2 Wissen Es werden drei zentrale Unterscheidungen vorgenommen:3 − Unterscheidung von Daten, Information und Wissen − Unterscheidung von expliziten und impliziten Wissen − relevantes und nicht-relevantes Wissen Implizites Wissen ist an die Mitarbeiter gebunden, nicht sichtbar und schwer übertragbar, beinhaltet Erfahrungen und Intuitionen. Explizites Wissen ist nur bedingt kontextgebunden, kann als Dokument gespeichert werden und ist einfach zu imitieren. Relevantes Wissen hängt vom Inhalt sowie den Kontexten und den Zusammenhängen ab. Abb. 2: Wissenstreppe4 Anhand dieser Darstellung ist nun der Unterschied von Information und Wissen gut sichtbar. 3 Vgl. BMWi (2007), S. 14ff und Vgl. Falk (2007), S. 21ff 4 Falk (2007), S. 20 14 / 112 Es werden grundsätzlich die vier folgenden Wissensarten unterschieden:5 − Situationales Wissen (Wissen über typische, domänenspezifische Situationen) − Konzeptuelles Wissen (Statistisches Wissen über Fakten, Begriffe und Prinzipien) − Prozedurales Wissen (Wissen über mögliche Handlungen in einer Domäne) − Strategisches Wissen (Metakognitiven Wissen über eine optimale Strukturierung des Problemlöseverhaltens) 2.2 Allgemeines Es existiert keine einheitliche Definition des Begriffs Wissensmanagement. Diesbezüglich werden einige Definitionen und Erklärungsversuche im folgenden vorgestellt, so dass man ein Verständnis vom WM erhält. „Das Wissensmanagement stellt sicher, dass insbesondere internes Wissen einer Organisation, etwa technische Details [...] für eine zukünftige Nutzung explizit erschlossen und verfügbar gemacht wird. Dies beinhaltet auch Kontextinformationen und persönliche Erfahrungen. [...]“ Lehner (2006, S. 33ff) nach Faisst „Wissensmanagement beschäftigt sich mit den Möglichkeiten, auf die Wissensbasis eines Unternehmens Einfluss zu nehmen. Unter der Wissensbasis eines Unternehmens werden alle Daten und Informationen, alles Wissen und alle Fähigkeiten verstanden, die diese Organisation zur Lösung ihrer vielfältigen Aufgaben benötigt.“6 Die Wissensbasis bei Olympus (Abteilung Mikroskopie) sind die Handbücher und Beschreibungen zu einem Mikroskop o.ä. sowie Kundenlisten oder Marketingmaterialien. Diese Wissensbasis muss kontrolliert und verwaltet werden. Momentan übernimmt das MicroNet bzw. das MicroNet Team und das Lotus Notes Team diese Aufgabe. 5 Vgl. Lehner (2006), S. 77ff 6 Wikipedia, http://de.wikipedia.org/wiki/Wissensmanagement , Stand: 26.08.2008 15 / 112 2.3 Anforderungen Für die erfolgreiche Einführung und Umsetzung des WM sind diverse Barrieren zu vermeiden und für den Erfolg diverse Faktoren zu berücksichtigen. Vor der Einführung müssen Soll-Werte über die Nutzung und Akzeptanz der Software erarbeitet werden. Die Soll-Werte sollten dann mit den Ist-Werten der Einführungsphase als auch der kommenden Phasen verglichen werden. Die Differenz ist ein Indikator für den Erfolg der Software. Die folgenden Barrieren und Erfolgsfaktoren, die vorgestellt werden, sind Faktoren, die eingehalten werden sollten, damit ein wissen bezogenes Projekt überhaupt die Einführungsphase „überlebt“, d.h. dass eine Mehrheit der Benutzer es akzeptiert. 16 / 112 2.3.1 Barrieren Eine Barriere ist ein Hindernis, welches die Einführung bzw. Umsetzung des WM verhindert oder beschwert. Das Hindernis kann in den Bereichen Mensch, Organisation oder Technik liegen. In Anlehnung an Fröschle (2005, S. 23), an BMWi (2007, S. 23ff) und an Gerhards et al. (2007, S. 23) werden die Barrieren in die drei Bereiche Mensch, Organisation und Technik unterteilt: Barrieren im menschlichen Bereich ► Wissen aus niedrigeren Hierarchiestufen wird nicht ausreichend akzeptiert ► Es existieren sprachliche Barrieren ► Es herrscht eine „Wissen-ist-Macht“ Einstellung ► Über Risiken und Tabus wird nicht offiziell gesprochen ► Mitarbeiter scheuen sich davor, ihre Tätigkeiten transparent zu machen bzw. es existiert kein Anreiz zur Wissensteilung ► Es fehlt ein Mindestmaß an Fehlerkultur und Lernbereitschaft Barrieren im organisatorischen Bereich ► Es werden zu wenige/keine Schulungen, Dokumentationen o.ä. angeboten ► Die Zeit und Konfliktfähigkeit für die Wissensmanagementaktivitäten ist zu knapp bemessen ► Es gibt keine ausreichenden finanziellen Mittel ► Unternehmensabteilungen konkurrieren miteinander ► Aufgaben, Verantwortung, Kompetenz und vor allem Ziele sind nicht klar definiert ► Es fehlt an Experten-Unterstützung ► Das bereitgestellte Wissen ist nicht aktuell genug und hat nicht die erforderliche Qualität ► Ex existieren eingefahrene und starre Strukturen Barrieren im technischen Bereich ► Die technische Ausstattung ist ungenügend ► Die eingesetzten technischen Systeme werden nicht ausreichend in die vorhandene ITInfrastruktur integriert ► Die eingesetzten technischen Systeme besitzen eine geringe Benutzerfreundlichkeit (Stichwort Usability) 17 / 112 2.3.2 Erfolgsfaktoren In Anlehnung an Fröschle (2005, S. 25), an BMWi (2007, S. 28ff) und an Gerhards et al. (2007, S. 22ff) werden die Erfolgsfaktoren ebenso in die drei Bereiche Mensch, Organisation und Technik unterteilt. Ein Erfolgsfaktor ist hierbei ein Faktor, der die Wahrscheinlichkeit einer mehrheitlichen Benutzerakzeptanz erhöht. Erfolgsfaktoren im menschlichen Bereich ► Akzeptanz für das WM von dem Mitarbeitern/Verantwortlichen ► Unterstützung bzw. aktives Engagement durch das Management ► Nutzer des WM müssen die Möglichkeit zum persönlichen Kontakt haben ► Motivation der Mitarbeiter durch ein Anreizsystem ► Wissen muss einen hohen Stellenwert haben ► Existenz und Förderung innerbetrieblicher Weiterbildung Erfolgsfaktoren im organisatorischen Bereich ► Wissensziele müssen in Verknüpfung mit den Unternehmenszielen stehen ► Schaffung von zeitlichen Freiräumen für die beteiligten Mitarbeiter ► Festlegung von gemeinsamen Begrifflichkeiten/Sprachstandards ► Sicherung von Qualität und Aktualität der Inhalte ► Festlegung eines dedizierten Verantwortlichen ► Möglichkeit zur Bewertung der Qualität des Wissens bzw. des Inhalts ► Dezentrale Verankerung ► Zentrale Koordination Erfolgsfaktoren im technischen Bereich ► Schaffung einer vertrauten Benutzeroberfläche und eines einfachen Zugriffs ► Existenz geeigneter Kommunikationsmöglichkeiten 18 / 112 2.4 Softwaretechnische Unterstützung Im Folgenden ist in Anlehnung an Lehner (2006, S. 223, Abb. 4-20: Übersicht der Technologien und Systeme für das WM) eine Auflistung über die Systeme und die Technologien für das WM gegeben: System Technologie Beschreibung Groupwaresystem Kommunikationssystem E-mail System, Newsgroups, Chat, Instant Messenger Kollaborationssystem bzw. Planungssystem, Annotationssystem, Kooperationssystem gruppenorientierte Bearbeitungssystem, elektronisches MeetingSystem Koordinationssystem bzw. Workflowmanagementsystem Inhaltsorientiertes System Dokumentenmanagementsystem (DMS) Planung, Steuerung und Überwachung von Arbeitsabläufen Unterstützung des DokumentenLebenszyklus Contentmanagementsystem Web-Contentmanagementsystem wie Wikis Portalsystem Unternehmensportal, SAP Lernmanagementsystem Learning Objects wie E-Books, Autorensystem 19 / 112 System Technologie Beschreibung System der künstlichen Intelligenz Expertensystem Diagnosesystem, Beratungssystem, Vorhersagesystem, Planungssystem, Ausbildungssystem Agentensystem Informationsagent wie WebCrawler, Transaktionsagent wie Biet-Agenten Text Mining System Automatische Erkennung von relevante Informationen in Textmengen Data Warehouse System Strategische Datenbanken OLAP-System Analysekomponente des Data Warehouse System Data Mining System Prognose und Analyse System Suchdienst Pullsystem wie Suchmaschinen und Pushsystem wie Suchagenten Visualisierungssystem Abbildung von Metadaten durch z.B. Karten, Netze oder Verzeichnisse Führungsinformationssystem Sonstige Systeme Der Prototyp Wissi ist in die inhaltsorientierten Systeme (genauer: Dokumentenmanagementsystem) einzuordnen. Auf die Eigenschaften eines DMS wird näher in Kap. 4.1 eingegangen. 20 / 112 Die Wissensaktivitäten können in die folgenden Funktionen unterteilt werden. Diese Einteilung ist ein guter Anhaltspunkt für die eigentliche Einführung der technischen Komponente im WM. Wissensaktivität Technische Komponente Wissen suchen, finden und abrufen Volltextsuche, semantische Suche, Datenbanktechnologie, Agenten Wissen strukturieren und ablegen Datenbanken, Ordnerstrukturen, Medadaten, Hyperlinks, Ontologien und Thesauri, Versionierung Wissen verteilen und kommunizieren Gemeinsame Arbeitsbereiche, OnlineDiskussionsforen, Benachrichtigungsdienste, Prozesssteuerung (Workflow) Wissen darstellen Skill-Datenbanken, Personalisierung, Portale, multimediale Darstellung, WebDesign Wissen evaluieren, Lücken identifizieren Bewertungsfunktionen, Protokollierungsmechanismen Neues Wissen gewinnen und explizieren Autorenwerkzeuge, gemeinsame Arbeitsbereiche, Data-Mining-Systeme Wissen austauschen Community-Unterstützung (Social Software), SkillManagement Wissensaktivitäten bei Olympus konzentrieren sich auf Wissen strukturieren und ablegen. Daraus ersichtlich ist die Nutzungsempfehlung einer Datenbank, Ordnerstrukturen und den Metadaten (oder auch Attribute oder Merkmale genannt). Diese vorgeschlagenen technischen Komponenten wurden in Wissi integriert. 21 / 112 2.5 Einführung Die Einführung des WM kann nach BMWi (2007, S. 39) in sechs Phasen aufgeteilt werden. Abb. 3: Die sechs Einführungs-Phasen des Wissensmanagement7 7 BMWi (2007), S. 39 22 / 112 Der Erfolg hängt von dem Zusammenspiel der Faktoren Mensch, Technik und Organisation ab. Die Erfolgschancen erhöhen sich bei der Einführung, wenn sich das Management mit den folgenden Fragen beschäftigt und sich dafür Lösungen erarbeitet:8 − Wie reagiert das Umfeld auf die Projektergebnisse? − Welche wirtschaftlichen, technischen oder fachlichen Entwicklungen können das WM weiter bringen? − Wie kann im Projektteam die Selbständigkeit und Durchsetzungskraft gefördert werden? − Was kann das Projektteam selbst unternehmen, um Rückhalt bei den Entscheidungsträgern und relevanten Mitarbeitern zu erhalten? − Wie kann und soll das Projekt im Unternehmen für sich werben? Dieser WM-Kreislauf wird dargestellt, weil die Phasen vier bis sechs für die Einführung des DMS genutzt werden können. 8 Vgl. BMWi (2007), S. 39ff 23 / 112 Die Implementierung der WMS kann zentral oder dezentral erfolgen. Es werden im Folgenden die Unterschiede zwischen den beiden Implementierungen vorgestellt werden:9 Merkmal Zentrale Architektur Dezentrale Architektur Wissenstypus Stabil, objektiv, allgemeines Wissen Ad-hoc, subjektiv, spezielles Wissen Wissensspeicher Zentraler Wissensspeicher mit organisationsweiter Ontologie Dezentraler Wissensspeicher mit gruppenweiten oder individuellen Ontologien Inhalt Best Practices, gesichertes Wissen, Individuelle Inhalte, Ideen, Ideen, Erfahrungen Ergebnisse von Gruppensitzungen, Good Practices Steuerung Zentral Ziele Sichern und Wiederverwenden von Verwalten von an den organisatorischem Wissen individuellen Anforderungen ausgerichtetem Wissen WM-Ansatz Technologieorientiert Humanorientiert Organisatorische Struktur Hierarchie, Abteilungen Projektteams, Communities Dezentral 9 Maier et al. (2005), S. 368 24 / 112 2.5.1 Initiierung Vor der eigentlichen Umsetzung sind diverse Vorbereitungen und Maßnahmen zu treffen. Dazu gehören organisatorische Aufgaben wie die Besetzung und Einführung von Multiplikatoren sowie die Motivation für die Einführung und Vorantreibung des WM, wobei hier WM für das wissensbezogene DMS steht. 2.5.1.1 Motivation Vor der eigentlichen Einführung sollte man die folgenden zwei Phasen der Motivation durchführen:10 Phase 1: Entscheidungsträger und Multiplikatoren einbinden und motivieren Für eine erfolgreiche Durchführung ist die Unterstützung der Entscheidungsträger von großer Bedeutung. Bedenken oder motivationale Barrieren können durch diverse Instrumente bereinigt werden. Dazu gehören z.B. Planspiele (1 bis 2 Tagesworkshop), die andere Sichtweisen deutlichen machen und Störfaktoren im Vorhinein beheben sollen. Phase 2: Mitarbeiter integrieren und motivieren Vorbildfunktion sollen hier die Entscheidungsträger und Multiplikatoren aus der ersten Phase sein. Die Bereitschaft das WM zu praktizieren, kann in Form von ► innerer (intrinsischer) Motivation, d.h. von innen heraus ► externen Anreizen, d.h. von außen gefördert durchgeführt werden. 10 Vgl. BMWi (2007), S. 23ff 25 / 112 Diese beiden Phasen der Motivation wurde bei Olympus durch eine Vorstellung der Zwischenergebnisse sowie Vorstellung der zukünftigen Realisierung durchgeführt. Es wurde erläutert, dass die Umsetzung der geforderten Struktur nicht in Lotus Notes, sondern in einer eigenen Entwicklung geschehen wird. Die entscheidenden Mitarbeiter waren zu der Präsentation eingeladen und wurden aufgefordert die Ergebnisse zu bewerten sowie eigene Vorschläge einfließen zu lassen. Die Ergebnisse wurden positiv aufgenommen und es wurde signalisiert, dass das geplante Vorgehen bestehen bleiben soll. 2.5.1.2 Organisatorische Vorbereitung Der Multiplikator besetzt verschiedene, wichtige Rollen, die die Einführung des WM beschleunigen und koordinieren bzw. die relevanten Mitarbeiter informieren und auf das WM vorbereiten. Abb. 4: Einführung und Arten von Multiplikatoren11 11 BMWi (2007), S. 42 26 / 112 Es sind die folgenden Maßnahmen zu treffen, um zu einem erfolgreichen Projektstart zu kommen:12 − Einrichtung eines Projektteams − Verantwortlichkeiten, Befugnisse, Anforderungen und Aufgabenbereich festlegen − Festlegung einer Abteilung oder Teile einer Abteilung für einen Pilotdurchgang − frühzeitiger Beginn der internen Kommunikation − Planung von Aufgaben, Personal und Terminen 2.5.2 Umsetzung Spätestens bei der Umsetzung ist eine Schulung bzw. eine Vorbereitung für die relevanten Mitarbeiter durchzuführen. Das beinhaltet:13 − Schulung technisches System − Beachtung der organisatorischen Regeln, Standards − Überzeugung der Nützlichkeit und Effektivität − Auslieferung der Dokumentation − Einrichtung einer Beratungsstelle oder eines Ansprechpartners Aufgrund der späteren Einführung von Wissi, siehe dazu Kap. 5.5, werden die Schulungen und die Dokumentationen erst kurz vor dem Einführungstermin an die relevanten Mitarbeiter ausgeliefert bzw. angewendet. Folgende Hilfestellung wurden für den Prototypen Wissi erstellt: − Dokumentation für die Benutzer − Diplomarbeit mit technischen Implementierungsdetails − Ansprechpartnerin und Multiplikatorin ist Frau Buchner 12 Vgl. BMWi (2007), S. 42ff und Vgl. Olfert (2007), S. 85ff 13 Vgl. BMWi (2007), 46ff 27 / 112 2.5.3 Evaluation Die Evaluation dient neben der Erfolgseinschätzung auch zur Grundlage zur Weiterentwicklung und Verstetigung. Möglicherweise werden jetzt erst Probleme sichtbar, die in der Planungsphase nicht abzusehen waren und nun zur Umstrukturierung zwingen. Der Erfolg bzw. das Erreichen des Projektziels kann durch eine systematische Befragung der relevanten Mitarbeiter herausgefunden werden. Dies sollte in regelmäßigen Abständen erfolgen, da sich ein Anfangserfolg nach einiger Zeit abschwächen kann. Abb. 5: Verstetigung und Weiterentwicklung der technisch-organisatorischen WM-Lösung14 14 BMWi (2007), S. 49 28 / 112 Abb. 6: Kontinuierliche Evaluation und ggf. Gegensteuerung15 15 BMWi (2007), S. 49 29 / 112 3. Unternehmen Olympus 3.1 Allgemeines Die folgenden Fakten und Zahlen wurden entnommen von der Präsentation Unternehmensbericht2007.ppt. Die Datei ist auf der beigelegten CD im Ordner Olympus enthalten. Takeshi Yamashita gründete 1919 das Unternehmen Takachiho Seisakusho. Im darauf folgenden Jahr wurde das Mikroskop Asahi produziert und vertrieben. Seit 1936 ist Olympus in dem Kameramarkt erfolgreich aktiv. Ab 1949 trug das Unternehmen stets Olympus im Firmennamen. Im Folgenden wird das Unternehmen einfachheitshalber nur noch mit Olympus tituliert. 1963 gründete Olympus in Hamburg die Olympus Optical Co. (Europa) GmbH. In den Folgejahren wurden in den europäischen Ländern jeweils Niederlassungen gegründet. Olympus entwickelt und produziert u.a. Mikroskope, medizische Produkte wie Endoskope und Fotokameras. Olympus beschäftigt in Deutschland ca. 1.800 Mitarbeiter16. 3.2 Aufbau Im Jahre 2005 wurde die Olympus Europa unter dem Dach der Olympus Europa Holding in die folgenden Bereiche neuorganisiert: − Olympus Imaging Europa GmbH (OIME), − Olympus Medical Systems Europa GmbH (OMSE), − Olympus Life and Material Science Europa GmbH (OLSE) und − Olympus Europa GmbH − Olmypus Winter & Ibe GmbH (OWI) 16 Stand: 31. März 2007 30 / 112 Im Folgenden sind ein paar Eckdaten der einzelnen Bereiche aufgelistet: Bereich Produkte Olympus Imaging Europa GmbH Analoge und digitale Kameras, Diktier- und Audiogeräte, Ferngläser Olympus Medical Systems Flexible Endoskopie, Starre Endoskopie, Videoskope Europa GmbH Olympus Life and Material Mikroskopie, Diagnostik, Advalytix Produkte (zellulare und Science Europa GmbH molekulare Forschung u. Diagnostik), Analytische Technologie Olympus Life Science Research Entwicklung und Hestellung von Reagenzien Europa GmbH (OLRE) Olmypus Winter & Ibe GmbH Olympus Winter & Ibe bietet Ärzten weltweit (OWI) Dienstleistungen und Produkte für die „innovativen, hochwertigen, endoskopischen Systemen für minimal invasive Eingriffe“.17 Die aktuellen Organigramme (Dateien: organigramm I.pdf, organigramm II.pdf und organigramm III.pdf) von der Abteilung Mikroskopie findet man auf der beigelegten CD im Ordner Olympus. Diese sind in der Ausarbeitung nicht relevant. Sie dienen lediglich zur Information. 17 Olympus OWI, http://www.olympus-owi.de, Stand: 31.08.2008 31 / 112 3.3 Grundlage Informationssystem „Informationssysteme sind zweck- und zielorientiert, weil sie bewusst von Menschen zur Informationsproduktion geschaffen werden und ganz bestimmte Qualitätseigenschaften haben sollen.“18 Informationssysteme (IS) können durch die folgenden Eigenschaften charakterisiert werden:19 − Informationssysteme sind künstlich geschaffene Mensch/Aufgabe/Technik-Systeme; sie vereinigen in sich personelle, organisatorische und technische Komponenten, durch die ihre Struktur bestimmt wird. − Informationssysteme bilden Objekte der Wirklichkeit mit den Merkmalen ab, die für die Zwecke, denen sie dienen, und für die Ziele, die mit ihnen verfolgt werden, von Bedeutung sind. − Informationssysteme bestehen im Einzelfall aus ganz bestimmten Ausprägungen von Menschen, Aufgaben und Informations- und Kommunikationstechnik; kein Informationssystem in der Wirklichkeit ist mit einem zweiten völlig identisch. − Informationssysteme werden von Menschen geschaffen, benutzt, verändert und letztlich auch entsorgt oder weggeworfen; sie haben einen Lebenszyklus (etwa mit den Phasen Einführung, Wachstum, Reife oder Sättigung und Rückgang). − Informationssysteme umfassen alle Funktionen, mit denen Informationen produziert werden, nämlich Erfassen, Bearbeiten, Verarbeiten, Speichern, Transportieren und Ausgeben. In der Abteilung Mikroskopie existieren die folgenden Informationssysteme: − Email (integriert in Lotus Notes) − Kalendar (integriert in Lotus Notes) − Telefon und Fax − MicroNet (integriert in Lotus Notes) − Intranet und Internet 18 Wikipedia, http://de.wikipedia.org/wiki/Informationssystem_(Informatik), Stand: 27.07.2008 19 Wikipedia, http://de.wikipedia.org/wiki/Informationssystem_(Informatik), Stand: 27.07.2008 32 / 112 4. MicroNet 4.1 Grundlagen Dokumentenmanagementsystem Das MicroNet ist über Lotus Notes erreichbar. Es ist letztendlich eine Datenbank im Lotus Notes System mit selbst entwickelten Masken und Ansichten. MicroNet ist ein Dokumentenmanagementsystem (DMS). „Dokumentenmanagement dient der datenbankgestützten Verwaltung elektronischer Dokumente. Man versteht darunter in Deutschland die Verwaltung ursprünglich meist papiergebundener Dokumente in elektronischen Systemen. Bei der Verwaltung von Papierdokumenten spricht man dagegen von Schriftgutverwaltung. Zur besseren Unterscheidung wird häufig auch der Begriff EDM Elektronisches Dokumentenmanagement (Electronic Document Management) verwendet.“20 Ein elektronisches Dokument ist hierbei eine Art von schwachstrukturierten oder unstrukturierten Informationen, die als geschlossene Einheit ein einem Informationssystem als Datei vorliegen. Welche Form das Dokument besitzt, ist in der Ausarbeitung irrelevant. Die Dokumente sind alle vorhanden und sollen nach Olympus so bestehen bleiben. Unter Form wird verstanden, aus welchen Einzelobjekten (Bilder, Formulare, etc.) das Dokument aufgebaut ist und aus welcher Komplexität das Dokument besteht. 20 Wikipedia, http://de.wikipedia.org/wiki/Dokumentenmanagement, Stand: 01.07.2008 33 / 112 Ein Dokument kann die folgenden Merkmale, die im Folgenden auch Attribute oder Metadaten genannt werden, besitzen:21 Merkmal Beispiel physische Eigenschaften Papier, Datei formale Eigenschaften Aufbau, Gestaltung Ordnung fachliche Zugehörigkeit, Reihenfolge, Version Inhalt Inhaltlicher Bezug Charakter Archivierungswürdigkeit, Rechtscharakter Zeit Erstellungsdatum, Verfallsdatum Erzeuger Ersteller, Autor Nutzer berechtigter Bearbeiter, Leser Schlüsselwort Inhaltsbeschreibung Der Nutzer kann noch weiter unterteilt werden. Es können Nutzer- bzw. Benutzergruppen eingerichtet werden, die unterschiedliche Rechte besitzen. Es ist sinnvoll die folgenden Benutzergruppen einzurichten: Benutzergruppe Rechte Administration kann das Dokument löschen und neu registrieren Verantwortlicher kann das Dokument modifizieren und verschieben Leser kann das Dokument nur zum Lesen öffnen Durch diese Regelung ist gesichert, das nur ein bestimmter Benutzerkreis das Dokument modifizieren sowie löschen kann. Diese Regelung ist nicht zwingend notwendig und kann vereinfacht werden, in dem die Rechte von der Administration, dem Verantwortlichen übertragen werden. Ein Schlüsselwort bzw. Schlagwort kann wie folgt definiert werden: „Als Deskriptor (Plural Deskriptoren) oder Schlagwort (Plural Schlagwörter) bezeichnet man meist vorgegebene Bezeichnungen, die zur inhaltlichen Beschreibung eines Objektes ausgewählt werden können. Die Vergabe von Deskriptoren wird auch als Verschlagwortung [...] oder Indexierung bezeichnet.“22 21 Vgl. Wikipedia, http://de.wikipedia.org/wiki/Dokumentenmanagement, Stand: 01.07.2008 22 Wikipedia, http://de.wikipedia.org/wiki/Deskriptor, Stand: 28.08.2008 34 / 112 Die Schlüsselwörter beschreiben also den Inhalt des Dokumentes. Je mehr Schlüsselwörter für ein Dokument angegeben werden, desto größer ist die Wahrscheinlichkeit, dass die Suchergebnisse der Suchanfrage gleichen bzw. stark ähneln. Dabei wird vorausgesetzt, dass das Suchverfahren die Schlüsselwörter in die Suche miteinbezieht. Die Anzahl der Schlüsselwörter sollten proportional zum Umfang des Dokumenteninhaltes stehen. Ein Dokument mit wenig Inhalt benötigt zur Beschreibung nur wenige Schlüsselwörter. Ein DMS sollte zwingend eine Suchfunktion bereit stellen. Bei einer großen Anzahl von Daten bzw. Dokumenten, kann das Wiederfinden, auch in einer geordneten Struktur, sehr schwierig werden. Außerdem ist eine Suchfunktion bzw. die Darstellung der Ergebnisse eine Art Wissenskarte. Der Benutzer hat (angenommen) oft keine Vorstellung von der Dokumentenvielfalt, so dass eine Ergebnisauflistung zu einer Suchanfrage das Benutzerwissen erweitert und vielleicht eine Hilfestellung für die nächste Suchanfrage liefert. Es wird hierbei unterschieden in Suchanfrage, Suchverfahren und Suchergebnisse. Die Suchanfrage: - wird vom System selbst oder explizit vom Benutzer ausgelöst. - wird in einer definierten Abfragesprache formuliert Eine Abfragesprache ist beispielsweise SQL oder auch reguläre Ausdrücke. Das implementierte Suchverfahren spielt ebenfalls eine wichtige für die Qualität der Suchergebnisse. „Suchverfahren oder Suchalgorithmus einen Algorithmus, der in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Man unterscheidet einfache und heuristische Suchalgorithmen. Einfache Suchalgorithmen benutzen intuitive Methoden für das Durchsuchen des Suchraumes, während heuristische Suchalgorithmen Wissen über den Suchraum (beispielsweise die Datenverteilung) mit einbeziehen um die benötigte Suchzeit zu reduzieren.“ Das Suchverfahren im MicroNet bezieht lediglich den Dateinamen mit ein. Das Suchverfahren in Wissi integriert außerdem noch die Dokumentenmerkmale mit ein. Eine nähere Erläuterung zu diesem Suchverfahren findet man in Kap. 5.4.2. 35 / 112 Die Merkmale dienen dem DMS für die Verwaltung, den Zugriff und die Bereitstellung der Dokumente. Insbesondere spielen diese eine wichtige Rolle bei der Identifikation von Dokumenten, durch z.B. Suchalgorithmen. Die Verwaltung besteht aus den folgenden Funktionalitäten: − Erfassen − Bearbeiten − Verarbeiten − Speichern − Transportieren − Ausgeben Damit ein Dokument und deren Merkmale von dem DMS verwaltet werden kann, muss das jeweilige Dokument in dem DMS registriert werden. Die Registrierung umfasst die folgenden Funktionen: − das Dokument oder der Dokumentenpfad bzw. Link wird in der Datenbank bzw. dem Dateisystem des DMS gespeichert − die Merkmale des Dokumentes werden z.B. durch Formulare ermittelt und in einer DB des DMS gespeichert Die Registrierung kann automatisch, gesteuert durch Filter und Regeln oder durch explizite Aufforderung des Benutzers geschehen. In der weiteren Ausarbeitung wird für die Registrierung auch die Aktion Hochladen oder Upload verwendet. 36 / 112 4.2 Grundlagen Lotus Notes MicroNet ist in Lotus Notes integriert, bzw. eine eigene Anwendung im Lotus Notes System. Aufgrund dessen müssen die Grundlagen von Lotus Notes erläutert werden, damit ein allgemeines Verständnis für die Systemoberfläche, mögliche Suchverfahren und Entwicklungsmöglichkeiten entsteht. 4.2.1 Allgemeines Bei Lotus Notes handelt es sich um „eine Ansammlung von (Infrastruktur-) Diensten und Programmen zur Unterstützung der Verteilung und Auffindung von Informationen (z.B. via EMail oder im firmeninternen Intranet) und der Zusammenarbeit (collaboration), z.B. in Form von elektronischen Diskussionsforen und Workflows.“23 „Lotus Notes gehört in die Kategorie Groupware und wird von ca. 128 Mio. Anwendern (Stand 2006, Angaben von IBM Lotusphere 01/2006) weltweit genutzt.“24 Unter Domino versteht man seit 1996 das angebotene Server-Bundle, der Client trägt weiterhin den Namen Notes. Der Client Notes nutzt die Funktionalitäten vom Server Domino.25 Weitere Informationen und Markteing-Floskeln finden Sie für Lotus Domino unter http://www-142.ibm.com/software/dre/ecatalog/detail.wss? locale=de_DE&synkey=P105893S13390H40 (Stand: 31.08.2008) und für Lotus Notes unter http://www-01.ibm.com/software/de/lotus/wdocs/notes-domino8/hannover.html (Stand: 31.08.2008). 23 Donskoj et al. (2004), S. 23 24 Wikipedia, http://de.wikipedia.org/wiki/Lotus_Notes, Stand: 02.04.2008 25 Vgl. Donskoj et al. (2004), S. 22 37 / 112 4.2.2 Funktionalitäten Die wichtigsten Dienste bzw. Eigenschaften von Domino nach Donskoj et al. (2004, S. 23ff) sind: − Datenbank-Managementsystem (Verwaltung unstrukturierter Informationen) − Replikation (Synchronisation von verteilten Datenbanken) − Mail-Routing (E-Mail System) − Information-Retrieval (Ansichten, Volltextsuche, Agenten) − Integration mit anderen Systemen (Datenaustausch mit anderen Systemen) − Internet-Kompatibilität (Nutzung von Diensten wie z.B. Internetmail und News-Client aus einem Internet-Client) − Sicherheit (Bidirektionale Authentifizierung, Digitale Unterschriften, Zugriffskontrolle, Verschlüsselung) − unterschiedliche Möglichkeiten des Informationszugriffs 38 / 112 4.2.3 Architektur von Domino Notes Domino ist ein verteiltes System und basiert auf dem Client/Server-Prinzip. Eine Anwendung wird nach Donskoj et al. (2004, S. 30) in die drei Schichten (3-Tier-Architektur) unterteilt: − Datenschicht (umfasst alle Funktionen, welche auf die Datenhaltung ausgerichtet sind) − Anwendungsschicht (umfasst die eigentlichen Regeln zur Verarbeitung von Daten) − Präsentationsschicht (stellt dem Benutzer die Ergebnisse der Verarbeitung vor) Jeder dieser Schichten kann situationsbedingt sowohl als Client als auch als Server agieren. Der Client Notes muss nicht zwingend mit einem Server Domino eingesetzt, sondern kann auch als eigenständige Anwendung mit den folgenden Funktionalitäten betrieben werden:26 − Volltextsuche − Replikation − Komprimierung von Datenbanken − Agenten Für die Entwicklung von Domino-Anwendungen liegt der Domino-Designer vor. Im Kap. 4.4 wird näher darauf eingegangen. 26 Vgl. Donskoj et al. (2004), S. 30ff 39 / 112 4.2.4 Grundlagen der Applikationsentwicklung Im folgenden werden die Grundzüge der Applikationsentwicklung unter Lotus Notes bzw. Domino vorgestellt. Dies ist für die spätere Umsetzung in Lotus notwendig. 4.2.4.1 Programmierkonzepte von Notes Es gibt mehrere Möglichkeiten Domino-Anwendungen zu entwickeln. Die Konzepte werden im folgenden kurz vorgestellt:27 − Einfache Aktionen (vordefinierte Bausteine, die sich zu Befehlssequenzen „zusammenklicken“ lassen) − Notes-Formeln (Auswertung einfacher bis komplexer Ausdrücke sowie Ausführung spezifischer Notes-Befehle wie z.B. Wenn-Dann-Bedingung) − LotusScript (objektorientierte Programmiersprache) − JavaScript (Scripting-Sprache aus dem Web) − Java (plattformunabhängige objektorientierte Sprache) − Notes-APIs (plattformübergreifende und versionsunabhängige Zugriffsmethode) 4.2.4.2 Domino Designer Der Domino-Designer ist ein Werkzeug zur Entwicklung von Internet-bzw. Intranetanwendungen. Die folgenden Punkte stehen beim Domino-Designer im Mittelpunkt:28 − Zentrale Entwicklungsumgebung für komplexe Applikationen − Integration von externen Werkzeugen − Kollaborative Anwendungsentwicklung − Wiederverwendbarkeit − Berücksichtigung unterschiedlicher Zielplattformen − Implementierung von Industriestandards 27 Vgl. Donskoj et al. (2004), S. 39ff 28 Vgl. Donskoj et al. (2004), S. 43ff 40 / 112 4.2.4.3 Seiten Eine Seite kann die folgenden Seitenelemente beinhalten:29 − Text − Bilder − Tabellen − Dateianhänge − Hotspots (definierter Bereich mit definierten Methoden) − Java-Applets Die Seite wird nicht wie üblich in einem Dateisystem hinterlegt, sondern in einer DominoDatenbank. Eine Seite kann leer sein und diverse Eigenschaften (Name, Kommentar, Farben) besitzen. Eine Seite muss aufgrund der Referenzierung einen Namen haben.30 4.2.4.4 Masken und Dokumenten Eine Maske ist ein elektronisches Formular, bestehend aus verschiedenen Felddefinitionen, die die eigentliche Datenstruktur eines bestimmten Dokumententyps in der Datenbank festlegen. Darüber hinaus kann eine Maske verschiedene Formatierungsmerkmale enthalten. Intern erstellt Domino eine Verknüpfung zwischen dem Dokument und der jeweiligen Maske. Ein Maske definiert sowohl die Strukturierung und Formatierung eines Dokuments als auch das Verhalten eines Dokumentes. Eine Maske stellt demnach Methoden bereit, die Operationen an den Dokumentdaten vornehmen.31 29 Vgl. Donskoj et al. (2004), S. 76ff 30 Vgl. Donskoj et al. (2004), S. 78ff 31 Vgl. Donskoj et al. (2004), S. 101ff 41 / 112 4.2.4.5 Ansichten und Ordner Ansichten und Ordner sind eine listenartige Darstellung der Inhalte einer Domino-Datenbank. Der Benutzer hat nach Donskoj et al. (2004, S. 171) durch Ansichten die folgenden Möglichkeiten: − Teilmengen von Dokumenten − Ansicht von Dokumenten anhand beliebiger Attribute − Darstellung in sortierter und/oder kategorisierter Form Eine Datenbank kann mehrere gemeinsame Ansichten (für alle Nutzer mit jeweiliger Berechtigung) enthalten oder jeder Benutzer kann persönliche Ansichten auf seiner Workstation entwerfen.32 4.2.4.6 Interaktive Elemente und Agenten Es können Programmabläufe durch die Ausführung bzw. Auftreten eines Ereignisses gestartet werden. Dabei wird in zwei Kategorien unterschieden:33 − Ereignisse, die direkt vom Benutzer durch die Benutzung eines interaktiven Elementes ausgelöst werden (z.B. Anklicken einer Schaltfläche) − Ereignisse, die als Reaktion auf einen Vorgang vom Notes-Client oder Domino-Server ausgelöst werden (z.B. Eintreffen einer neuen E-Mail) Die direkte Ereignisauslösung durch den Benutzer setzt bestimmte interaktive Elemente voraus. Dazu gehören nach Donskoj et al. (2004, S. 306): − Aktions-Hotspots (interaktive Text- oder Grafikelemente in einer Maske, Seite oder Dokument) − Schaltfläche (identische Funktionalität wie Hotspots; die Verknüpfung ist nicht mit einem Text oder einer Grafik verbunden, sondern mit einer Schaltfläche) − Aktions-Schaltfläche (Schaltfläche mit einer standardisierten Ausgestaltung der Benutzeroberfläche) 32 Vgl. Donskoj et al. (2004), S. 172 33 Vgl. Donskoj et al. (2004), S. 305 42 / 112 „Bei Agenten handelt es sich um [...] ausführbare Programme, die zur Automatisierung von häufig durchgeführten Aufgaben eingesetzt werden.“34 4.2.4.7 Formeln in Notes Domino Die Formeln in Notes sind einfach gehalten, so dass Benutzer ohne Programmiererfahrung diese nutzen können. Formel können auch für Ereignisse hinterlegt werden. Zu den Formel zählt auch der @Command-Befehl. Dieser Befehl ermöglicht es, Formeln zu beliebig langen Sequenzen zu verknüpfen. 4.2.5 Volltextsuche In Notes ist eine Volltextsuchmaschine (Verity Search Engine) und seit der Version 3 integriert. In die Suche werden vollständige Texte miteinbezogen. Die Durchführung einer Suchabfrage unterteilt sich in die Prozesse:35 − Der Benutzer oder ein System stellt eine Suchabfrage (Query), die eine Ansammlung von Begriffen enthält. Die Begriffe können mittels einer Query-Sprache (Abfragesprache) verknüpft werden. − Die Suchabfrage wird mittels einem Volltextindex durchgeführt. − Die Ergebnisse der Suchabfrage werden dem Benutzer oder dem System nach einem Sortierkriterium ausgegeben. 34 Donskoj et al. (2004), S. 337 35 Vgl. Donskoj et al. (2004), S. 740 43 / 112 4.2.5.1 Volltextindex Ein Volltextindex enthält lediglich den textuellen Teil einer Information. Dieser Textteil wird auf Suchabfragen optimiert. Bei der Erstellung können diverse Optionen mitangegeben werden. Die Erstellung selbst ist mit einem hohen Rechen- bzw. Ressourcenaufwand verbunden. Die Erstellung wird nicht bei jeder Modifizierung eines Inhaltes vorgenommen, sondern lediglich in periodischen Abständen. Das hat zur Folge, dass ein Volltextindex oft nie den aktuellen Zustand der Inhalte repräsentiert. Dieser Nachteil fällt allerdings nicht ins Gewicht, da ein Echtzeit-Zugriff auf Dokumente direkt nach der Erstellung oft nicht benötigt wird.36 Die erstellte Volltextindexdatei befindet sich in einem Unterverzeichnis im gleichen Verzeichnis der DB. Die Datei ist nicht verschlüsselt. Falls verschlüsselte Felder mit indiziert wurden, so hat nun jeder Benutzer vollen Zugriff darauf.37 4.2.5.2 Erstellung eines Volltextindex Jede beliebige DB kann volltextindiziert werden. Auf dem Client sind keine besonderen Rechte notwendig und der Benutzer muss die Volltextindizierung manuell vornehmen. Auf dem Server sind Entwickler-Rechte bzw. eine Zugriffskontrolle über die Funktion [SearchSiteAdmin] notwendig. Ein Server-Task übernimmt die automatische Indizierung. Bei der Erstellung kann man folgende Optionen einstellen, die sich auf die Genauigkeit und Größe der Indexdatei auswirken:38 − Groß- und Kleinschreibung (Beachtung der Groß- und Kleinschreibung) − Satz- und Absatzweise (kleinste Sucheinheit ist nicht nur ein einzelnes Wort, sondern evtl. ein Satz oder auch Absatz) − Anhänge (Anhänge werden mitindiziert) − verschlüsselte Felder (verschlüsselte Felder wie Passwort-Felder werden mitindiziert) 36 Vgl. Donskoj et al. (2004), S. 740 37 Vgl. Donskoj et al. (2004), S. 743 38 Vgl. Donskoj et al. (2004), S. 742 44 / 112 Die Aktualisierungsfrequenz des Server-Task lässt sich einstellen in: − sofort − stündlich − periodisch (nach einem vordefinierten Zeitplan) − täglich 4.2.5.3 Syntax einer Abfrage Die Abfrage beinhaltet die folgenden syntaktischen Regeln:39 − einfacher Text (gesetzt in einfachen Anführungszeichen) − Wildcard-Zeichen (u.a. ?, *) − logische Operatoren (AND, OR, NOT) − Kontext-Operatoren (NEAR, SENTENCE, PARAGRAPH) − FIELD-Operator − Verwendung von Klammern (Priorisierung der Such-Operatoren) Ebenfalls besteht die Möglichkeit, einen Art Wizard mit Abfragefunktionen zu nutzen. 4.2.5.4 Datenbankübergreifende Volltextsuche Es besteht seit der Domino-Version 4.5 die Möglichkeit, mehrere Datenbanken zu indizieren. Es existieren zwei Mechanismen, die eine datenbankübergreifende Suche ermöglicht:40 − Site-Abfrage-Datenbank (eine spezielle DB erstellt für ausgesuchte DB eine Volltextindizierung) und Multi-Database Indexing () − Domänen-Suche (domänenübergreifende Volltextsuche, auch mind. Lesezugriff auf ein beliebiges Dateisystem) 39 Vgl. Donskoj et al. (2004), S. 744 40 Vgl. Donskoj et al. (2004), S. 746ff 45 / 112 4.2.6 Datenbanken in Lotus Notes Lotus-Notes-Datenbanken sind dokumentenbasierte Datenbanken. Das heißt, dass Daten und Gestaltungselemente werden in Form von Dokumenten abgelegt.Jedes Dokument trägt eine eindeutige ID und kann mehrere Felder unterschiedlicher Typen enthalten. Der gesamte Inhalt einer Datenbank inklusive Dateianhänge lassen sich über die integrierte Volltextsuche durchsuchen. „Dies gilt nicht nur für lokale Datenbanken auf einem Lotus Notes Client sondern auch für Datenbanken, die auf mehrere Dominoserver einer Domino Domain verteilt sind (Domino Domain Search). Dateinamen von Lotus-Notes-Datenbanken enden mit dem Suffix .NSF: „Notes storage facility“. Datenbankvorlagen (Schablonen) enden mit dem Suffix .NTF: „Notes template file“.“41 Notes-Datenbanken können wie folgt charakterisiert werden: − sind nichtrelationale Datenbanken − diese folgen einem Dokument- und nicht einem Datensatzmodell − Dokumente können eine hierarchische Beziehung zueinander haben (Main – Response – ResponseToResponse). 41 Wikipedia, http://de.wikipedia.org/wiki/Lotus_Notes , Stand: 28.08.2008 46 / 112 4.3 Grundlagen MicroNet MicroNet ist ein Dokumentenmanagementsystem, was einen geschäftsinternen Austausch von Dokumenten möglich macht, aber nicht auf die länderspezifischen Bedürfnisse eingeht. Die Struktur sowie die Inhalte, mit Ausnahme der Foren, wird vom Marketing der internationalen Abteilung vorgegeben und festgelegt. Die technische Betreuung wie auch die Umsetzung der Struktur übernimmt das Lotus Notes Team der Olympus IT-Abteilung. Die Struktur, in der die Dokumente bereit gestellt werden, ist unterteilt in Ebenen. Die erste Ebene, der so genannte Einstiegspunkt ist in der Navigation (auf der Seite links) zu finden. Durch einen Klick auf einen Punkt, öffnet sich die darunter liegende Ebene in der rechten Seite. Abb. 7: Startseite MicroNet Auf der Startseite vom MicroNet befindet sich links die Navigation mit der Ebene 1 und rechts werden News (Nachrichten) sowie latest Upload (aktuelle Dokumente, die hochgeladen wurden) angezeigt. Ebenfalls ist die Möglichkeit einer Suche gegeben. Es kann ausgewählt werden, ob der Suchbegriff in allen Ebenen (All) oder nur in einer bestimmten Ebene gesucht werden soll. 47 / 112 Falls die folgenden Abbildungen aufgrund des Drucks schwer erkennbar sein sollten, gibt es die Möglichkeit, die Originalbilder auf der beigelegten CD in dem Ordner Abbildungen aufzurufen. Die Navigationspunkte besitzen diverse Kindsordner. Die Kindsordner werden entweder direkt unter dem Navigationspunkt (d.h. dem Elternordner) angezeigt oder in der Ansicht auf der rechten Seite. Es gibt hier kein einheitliches Muster. Diese Ansicht bzw. Struktur wurde so gewollt implementiert. Abb. 8: Elternordner und Kindsordner 48 / 112 MicroNet bietet eine mächtige Abfragesprache. Es können reguläre Ausdrücke verwendet werden. Deshalb ist die Formulierung des Suchbegriffs nicht für jeden Mitarbeiter intuitiv zu benutzen. Abb. 9: Dialog Suchfunktion Die Ergebnisse einer Suche werden wie in der Abb. 10 aufgelistet. Diese Auflistung ist nicht sehr aufschlussreich, da nur wenige Dokumentenmerkmale mit angezeigt werden. Ein Benutzer kann so keinen näheren Eindruck von dem Dokument bekommen, erst recht nicht, wenn der Title nicht präzise gewählt wurde. Abb. 10: Suchergebnisse 49 / 112 Das Hochladen bzw. die Registrierung eines neuen Dokumentes wird durch eine neue Maske realisiert. Diese ist unterteilt in die Bereiche Basics, Access und History. Unter Basics werden u.a. die folgenden Parameter angegeben: Elternordner (Country), Ordnername (Title) oder Bemerkungen (Remarks). Außer dem Parameter Country, Product, Category und Title sind die anderen Angaben optional. Abb. 11: Hochladen: Basic Ebenfalls in der Abbildung ist die Tatsache erkennbar, dass das Schlüsselwort (hier bei Product) nicht frei wählbar, sondern aus einer Liste auszuwählen ist. 50 / 112 Im Bereich Access können die Leser-(Reader access) und Bearbeitungsrechte (Editor access) geregelt werden. Abb. 12: Hochladen: Access Durch die bisherigen Parameterangaben hat man lediglich einen neuen Ordner bzw. Ebene erstellt. Man kann nun der Ebene ein Dokument anhängen. Eingaben von Dokumentenmerkmalen sind bis auf eine Beschreibung (Description) nicht vorhanden und nicht vorgeschrieben. Abb. 13: Hochladen: Basic mit Anhang 51 / 112 4.4 Systembewertung MicroNet Die Bewertung wird durchgenommen aufgrund von Fakten und Eindrücken, die gewonnen worden durch: − gezielte Beobachtung am Arbeitsplatz − Gespräche bzw. Einzelinterviews − Fragebogen (siehe dazu CD, Ordner Fragebogen) kein Anreiz zur Nutzung Es besteht kein Anreiz für die Nutzung des vorhandenen Systems MicroNet. Es wird kein Vorteil daran erkannt, dass System zu nutzen. Andere Informationssysteme liefern Information, die qualitativ hochwertiger ist. Wobei hier die Qualität durch die Aktualität bestimmt wird. Ebenfalls fehlen landesspezifische Informationen wie z.B. Handbücher in deutscher Version. Der Nebeneffekt ist, dass aktuelle Dokumente nicht im MicroNet hochgeladen werden, sondern dass Dokumente per Email-Verteiler an einen bestimmten Personenkreis versendet werden. Es kennen laut dem Fragebogen zwar alle das MicroNet (Frage 3, Antwort 1: 100%), aber nur 32% der Mitarbeiter nutzen es. ungewohnte Ordner- und Ebenenstruktur Die vorhandene Ordnerstruktur im MicroNet wurde als unvorteilhaft bewertet. Diese ist nicht angelehnt an die bekannten Baumstrukturen aus Windows oder Unix. Hier kann ein Ordner als „Inhalt“ (bzw. Kind oder Verweis) nur Ordner oder Dateien besitzen. In den Baumstrukturen ist beides möglich, siehe dazu Kap. 5.4.1. benutzerunfreundliche bzw. ungewohnte Menuführung Die Benutzeroberfläche ist nicht ergonomisch entwickelt. Objekte sowie die Navigation sind nicht nach den Gestaltungsgesetzen positioniert. Auch erfahrene Anwender müssen sich erst an die Oberflächegestaltung einfinden bzw. benötigen eine Schulung dafür. Ein Beispiel dafür ist das Hochladen einer Datei. Aus der Eingabemaske (siehe dazu Abb. 11) ist nicht ersichtlich, welche Angaben optional oder Pflicht sind. Und man sucht vergeblich eine Schaltfläche zur Bestätigung der Eingaben. 52 / 112 ineffektive Sucheergebnisse Die Suchergebnisse sind insofern ineffektiv, da auch Verweise gefunden und aufgelistet werden. Dadurch kann es sein, dass mehrere Verweise aufgeführt werden, die zum selben Dokument führen. Dabei macht Lotus Notes nicht kenntlich, ob es sich um den Verweis oder das eigentliche Dokument handelt. Das Suchen und Auflisten der Verweise verbraucht zusätzliche Ressourcen, was das Suchverfahren verlangsamt. Keine Angabe von Attributen, keine Vorgabe von Dateinamenszusammensetzung Es müssen beim Hochladen der Dokumente keine Attribute mit angegeben werden. Ebenfalls wird keine Hilfestellung oder Vorgaben bei der Dateibenennung gegeben. Das Suchverfahren im MicroNet nutzt vorwiegend den Dateinamen. Weitere Dokumentenmerkmale die für ein Suchverfahren genutzt werden können, kann man aus Kap. 4.1 entnehmen. keine Kenntnisse über das Vorhandensein von kontextgebundenen Dokumenten Es ist zwar möglich einen Link (Verweis) auf ein anderes Dokument zu legen. Dieser Prozess ist jedoch ohne Hilfestellung nicht einfach möglich, weil es nicht intuitiv erkennbar ist. Außerdem ist jedem Benutzer frei gestellt, solch einen Verweis zu setzen. lange Ladezeiten (Außendienst) Beim Außendienst kommt es zu längeren Ladezeiten von Dokumenten und längeren Zeiten bei der Suche, weil das Suchverfahren nicht auf eine lokale Replikation zugreifen kann und somit den zeitlich aufwendigeren Weg einer Verbindung über das Internet (genauer: eine VPNVerbindung) nehmen muss. keine Hilfe Es existiert keine Anleitung oder Schulungen bzw. Hilfe in jeglicher Form. 53 / 112 keine eigenen Entwicklungsmöglichkeiten In der bestehenden Struktur ist es nicht oder sehr beschränkt möglich eigene Strukturen bzw. Ebenen anzulegen. Die technische Umsetzung muss das Lotus Notes Team übernehmen. Bei der Umsetzung ist man also immer auf die Kompetenzen anderer Abteilungen angewiesen. Integration in Lotus Notes MicroNet ist eine Anwendung42 unter Lotus Notes. Das hat die folgenden Vorteile: − alle Olympus Mitarbeiter haben einen Lotus Notes Zugang und somit die Möglichkeit das MicroNet zu erreichen − die Lotus Notes Benutzer sind vertraut mit der Systemoberfläche − Lotus Notes hat diverse Sicherheits- und Verschlüsselungsfunktionen, die auch MicroNet zur Verfügung stehen − es können im MicroNet andere Dienste von Lotus genutzt werden wie z.B. die EmailFunktion (Verschicken einer Email mit Dokumenten aus dem MicroNet) effektive Abfragesprache Die Abfragesprache ist sehr mächtig. Das hat Vor- und Nachteile. Für die effektive Suche muss der Benutzer vorweg geschult werden. Viele Funktionen der Suchabfrage werden vom Benutzer nicht benötigt. Dadurch kann die Eingabemaske der Suchabfrage sehr unübersichtlich wirken. Forum Das Forum dient dem Austausch persönlicher Erfahrungen, welches ein wichtiger Aspekt im Wissensmanagement ist. Andere Vorteile Vorteile von Lotus Notes an sich wurden in Kap. 4.2.2 schon erwähnt. Dazu kann noch hinzugefügt werden: − Domino Designer (Werkzeug, um bestehende oder neue DB können zu bearbeiten) − Volltextsuche in Datenbanken und deren Dokumente 42 hier bestehend aus Seiten, Masken und Ansichten 54 / 112 Die Gegenüberstellung der genannten Faktoren ergibt eindeutig, dass die abteilungsspezifische Struktur nicht im MicroNet realisiert werden sollte und aus technischer Sicht auch teilweise nicht realisiert werden kann. Dafür spricht auch das Umfrageergebnis (Frage 1): Antwort 1: 45%, Antwort 2: 14% und Antwort 3: 41%. Es wurde vorgeschlagen eine Alternative zu suchen. Die Alternative bestand aus einer Einführung einer bestehenden Software von einem Drittanbieter oder der Eigenentwicklung von einem Prototypen, der ggf. zu einem späteren Zeitpunkt erweitert werden kann. Die Software von Drittanbieter kam nach einer Untersuchung aus den folgenden Gründen ebenfalls nicht in Frage: − die gegebenen Anforderungen konnte in der Software nicht umgesetzt werden − eine neue Software muss von der IT-Abteilung geprüft werden − muss beim Benutzer installiert werden (wenn es keine Webanwendung ist) Wissi, die Eigenentwicklung wurde aus den folgenden Gründen als Webanwendung realisiert: − generelle Erreichbarkeit − keine Installation beim Endbenutzer nötig, lediglich ein Webbrowser wird benötigt − Nutzung von kostenfreien Entwicklungswerkzeugen und Skriptsprachen − Nutzung von HTML und deren Objekte und Formulare 55 / 112 5. Entwicklung von Wissi 5.1 Einführung Wissi ist ein Datenmanagementsystem (DMS). Es ist möglich beliebige Daten (in Form von Dateien wie z.B. ein Word-Dokument) „hochzuladen“ und einem beliebigen Benutzer- bzw. -kreis zur Verfügung zu stellen. Das Hochladen wird über eine Eingabemaske realisiert. Alle Dateien werden mit Attributen (z.B. Beschreibung, Schlüsselwort, Verantwortlicher) verwaltet. Die Attribute sollen dem Benutzer zusätzliche Information liefern und ebenfalls für die Suche relevant sein. Die Dateien können in einer Ordnerstruktur hinterlegt (wie z.B. in jedem gängigen Dateisystem) werden. Die Dateien können mit diversen Leserechten versehen werden, damit nur ein bestimmter Benutzer bzw. -kreis darauf Zugriff hat. Die Benutzeroberfläche mit Ein- und Ausgabemöglichkeiten ist über einen beliebigen HTMLBrowser (wie Internet Explorer oder FireFox) von jedem beliebigen Computer mit Internetzugang erreichbar. 56 / 112 5.2 Anforderungen Die Anforderungen wurden gegeben durch: − schon bestehende Anforderungen von der Olympus Mikroskopie − Anforderungen, die sich aus den Einzelinterviews bzw. Beobachtungen der Arbeitsprozesse ergeben haben Wissi ist mit den folgenden Anforderungen entwickelt worden: − übersichtliche abteilungsspezifische Struktur in Form von Ordner bzw. Ebenen − einfaches und benutzerfreundliches Navigieren − Hochladen mit Attributen bzw. Zusatzinformationen (Pflichtfelder und optionale Felder) sowie Leserechten − Anzeigen der Dokumente mit den Attributen − Verweis auf andere kontextgebundene Dokumente − einfache und schnelle Administration bzw. keine Abhängigkeit von anderen Bereichen − schnelle und einfache Suchfunktion (im Vergleich zum MicroNet) − generelle Erreichbarkeit (intern/extern) − Ausbaufähigkeit und Erweiterbarkeit − keine Installation bei den Benutzern Der Wissi Prototyp ist erreichbar unter: h t t p : / / w w w. s e b c o n . d e / t e m p /w i s s i / s i n d e x . p h p 57 / 112 5.3 Systemanforderungen Es müssen die Systemanforderungen für den Client und den Server unterschieden werden. Der Endanwender (z.B. Innen- oder Außendienstler), der den lediglich den Client darstellt, benötigt nur einen Computer mit Internetzugang und einem HTML-Browser (wie z.B. Internet Explorer oder Firefox). Die Webanwendung besteht aus PHP-Skripten. Auf Grund dessen sind die folgenden Softtwarekomponenten für die Ausführung der Skripte notwendig: − UNIX oder Windows Bestriebssystem − Server-Dienst, der den Interpreter ausführen kann wie z.B. Apache oder IIS (Internet Information Services, ein Microsoft-Produkt, in der Vista Business Version enthalten) − MySql Version 5(Datenbank) − und PHP ab Version 5 (Anwendung wurde nur unter der Version 5.x getestet, eine Abwärtskompatibilität kann nicht gewährleistet werden) Das Testsystem kann bis auf die folgenden Einschränkungen genutzt werden: − es können nur Dateien mit einer maximalen Größe von 24MB hochgeladen werden (aufgrund des TimeOut des HTTP-Protokolls) − es können nur max. 35 Verbindungen zum MySql bestehen, falls diese Anzahl überschritten wird, kann es zu einer Fehlermeldung kommen (durch den Provider vorgegeben) 58 / 112 5.4 Übersicht Wenn man sich angemeldet haben, gelangt man zu der Startseite von Wissi. Eine ausführliche Beschreibung und Darstellung findet man in der Anleitung für Wissi auf der beigelegten CD in dem Ordner Wissi / Anleitung. Abb. 14: Startseite Wissi Links unter dem Olympus Logo findet man immer die Navigation, welche sich aus den folgenden Punkten zusammen setzt: Startseite Hier finden Sie die Ordner- und die Datenstruktur vor. Siehe dazu Kapitel 5 Suchen Hier finden Sie die Suchfunktion, womit Sie nach Daten in Ihrer Ordnerstruktur suchen können. Hochladen Hier können Sie neue Daten hochladen. Einstellungen Hier finden Sie die Benutzerverwaltung sowie die Leserechtverwaltung wieder. Hilfe Hier werden Sie lediglich auf die Datei mit der Anleitung bzw. Hilfe direkt verwiesen. Abmelden Hier können Sie sich vom System abmelden. 59 / 112 Unter der Navigation ist noch eine Infobox, in der Ihr Benutzername angezeigt wird. Wenn man den Namen anklickt, gelangt man direkt in die Benutzerverwaltung. Rechts neben der Navigation ist das jeweilige Aktionsfenster der Navigationsauswahl positioniert. Wenn der Benutzer auf einen Navigationspunkt klickt, erscheint in diesem Aktionsfenster die jeweilige Oberfläche. Die Ordnerstruktur im jetzigen Testsystem kann sich von der Ordnerstruktur auf den gezeigten Abbildungen unterscheiden. 5.4.1 Startseite Die Datenstruktur wurde durch eine Baumstruktur umgesetzt. Folgende Gründe sprechen für diese Entscheidung: − Umsetzung einer Ordnerstruktur wie unter Windows möglich − für den Benutzer bekannte Struktur, dadurch kurze Einarbeitungsphase, hohe Benutzerfreundlichkeit − logische Abbildung von unternehmsspezifischen bzw. abteilungsspezifische Strukturen − freie Gestaltungsmöglichkeiten Eine Baumstruktur setzt sich aus den Komponenten Wurzel, Kanten und Blätter zusammen. Die Wurzel besitzt endliche Blätter, die über Kanten verbunden sind. Stehen die Kanten in einer festen Reihenfolge, dann spricht man von geordneten Bäumen. „Bäume werden bei hierarchischen Beziehungen und bei rekursiven Strukturen verwendet.“43 Ausführliche Darstellungen findet man weiter in Claus et al. (2006, S. 71ff) oder unter Wikipedia (http://de.wikipedia.org/wiki/Baum_(Informatik), Stand: 25.05.08). Zunächst müssen noch die folgenden Begriffe erläutert werden: Begriff Erläuterung Elternordner jeder Ordner ist ein Elternordner, der mind. einen darunter liegenden Ordner enthält Kindordner alle Ordner, die einem Elternordner zugewiesen sind 43 Claus et al. (2006), S. 71 60 / 112 Ein Ordner kann somit ein Elternordner sowie gleichzeitig ein Kindordner sein. Ein Kindordner kann nur einem Elternordner zugewiesen sein. Hingegen kann ein Elternordner endlich viele Kindordner besitzen. Der Benutzer hat mit den nötigen Rechten die Möglichkeit, folgende Aktionen an der Ordnerstruktur vorzunehmen: − Ordner neu anlegen − Ordner bearbeiten bzw. umbenennen − Ordner löschen Dieselbe Ordnerstruktur (alle Inhalte wie Ordner und Dateien) wird auf dem Server erstellt. 5.4.2 Suchen Abb. 15: Wissi: Suchen Die Suchfunktion ist sehr rudimentär, erfüllt aber seinen Zweck. Der Suchbegriff wird mit den folgenden Pflicht-Attributen verglichen: − Dateiname − Beschreibung (kurz) − Schlüsselwörter Soll der Suchbegriff exakt mit dem Attribut übereinstimmen, so muss das Kästchen exakte Suche aktiviert werden. Soll der Suchbegriff nur ein Teil von einem Attribut darstellen, so muss das genannte Kästchen deaktiviert sein (Standardeinstellung). 61 / 112 5.4.3 Hochladen Das Hochladen bzw. Registrieren eines Dokumentes ist verbunden mit Pflicht-Attributen und optionalen Attributen. Die Pflicht-Attribute müssen angegeben werden, die optionalen Attribute können angegeben werden. Wie in Abschnitt 5.4.2 erwähnt, werden die Pflichtattribute Dateiname, Beschreibung (kurz) und Schlüsselwörter für den Vergleich mit dem Suchbegriff benötigt. Bei einem Dokument muss ebenfalls der Verantwortliche, der Dateityp, die Sprache sowie das Leserecht angegeben werden. Dem Leserecht sind endlich viele Benutzer zugewiesen. Ein Dokument wird dem Benutzer erst in den Ordner oder den Suchergebnissen angezeigt, wenn das Dokument und der Benutzer demselben Leserecht zugewiesen sind. 5.4.4 Einstellungen Unter den Einstellungen findet man die Benutzer- und Leserechtverwaltung. In der Benutzerverwaltung werden die Benutzer und deren Attribute (Benutzerdaten, Rechte und Leserechte) verwaltet (neu anlegen, ändern und löschen). In der Leserechtverwaltung können die Leserechte, die den Dokumenten sowie den Benutzern zugewiesen werden verwaltet (neu anlegen, ändern und löschen) werden. 62 / 112 5.5 Einführung Wissi ist aufgrund der aktuellen Einführung eines CRM-Systems noch nicht offiziell eingeführt worden. Das WM schlägt vor, die Einführung aufgrund folgender Faktoren nicht gleichzeitig mit anderen Projekten durchzuführen: − Fokus ist nicht auf Wissi gerichtet − Benutzer kann mit zwei Systemen überfordert werden Aufgrund dieser Tatsachen wurde vereinbart die Einführung um mehrere Monate zu verschieben. Der Prototyp ist unter der gegebenen Adresse jederzeit zu erreichen und die benötigten Schulungsunterlagen und Anleitungen sind fertig gestellt. 63 / 112 6. HTML 6.1 Grundlagen Im Folgenden wird von einem HTML-Dokument bzw. einer HTML-Datei gesprochen. Dabei handelt es sich um eine Datei, die als Inhalt beliebigen HTML-Code hat und idealerweise unter dem Dateitypen *.htm bzw *.html abgespeichert ist. HTML (Hypertext Markup Language) ist eine strukturierte Beschreibungssprache (structured language), „mit der man Texte, die Querverweise enthalten (hypertext), mithilfe eingestreuter Markierungssymbole (markups) [auch tag genannt] in Seiten aufteilen und die Einzelteile des Textes genau spezifizieren kann.“44 Mit HTML werden die Dokumente im Internet dargestellt. Die Aufgaben vom Browser (oder auch Webbrowser) sind u.a. die Betrachtung von Textdateien, wozu auch die HTML-Dokumente zählen. Ebenfalls dienen die Browser auch als Thin-Clients (Präsentationsschicht) von Webanwendungen. Der Browser nutzt dabei u.a. das HTTP (Hypertext Transfer Protocol) Protokoll, um Daten zu übertragen und zu empfangen.45 Das HTTP wird näher im Kap. 7.4 erläutert. Ein Markierungssymbol bzw. ein tag werden meist durch spitze Klammern gekennzeichnet, wie z.B. <X> ... </X>. Das X stellt den Namen einen Markierungssymbols dar. Man unterscheidet in den öffnenden tag (Starttag) und den schliessenden tag (Schlusstag). Beide Markierungssymbole müssen den gleichen Namen besitzen und das schließende tag wird an dem Schrägstrich (slash) / erkannt. Es gibt einige Ausnahmen, die so genannten empty (leeren) tags wie z.B. <BR>. Dieses tag dient für den Zeilenumbruch und benötigt kein schließendes tag. 44 Claus et al. (2006), S. 298 45 Vgl. Claus et al. (2006), S. 301 64 / 112 Andere tags müssen oder können mit Attributen bestückt werden, wie z.B. für die Schriftfarbe: <FONT color='red'> Ein roter Text </FONT> Es können aber nur die Starttags mit Attributen versehen werden. Ein Starttag und deren Schlusstag bilden mit dem dazwischen liegenden Inhalt bzw. Text ein Element. Diese Elemente lassen sich nach Regeln, die in der DTD (Dokumententypdefinition) angegeben sind, verschachteln. In DTD ist u.a. geregelt: − welche Elemente ein Dokument vom Typ HTML enthalten darf − welche Elemente innerhalb von welchen anderen vorkommen dürfen − welche Attribute zu einem Element gehören − ob die Angabe dieser Attribute Pflicht ist oder freiwillig Hier ein Beispiel für eine Dokumententyp-Deklaration: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> Die tags und die Attribute sind case-insensitive, d.h. dass Groß- und Kleinschreibung keine Rolle spielen. Erkennt ein Browser nicht den angegebenen tag, so ignoriert er diesen. Durch ein fehlerhaftes HTML-Dokument kann ein Browser also nie abbrechen bzw. stoppen. Ein HTML Dokument besteht aus den Bereichen: − Dokumententypdeklaration − Kopf (HEAD) und − den Rumpf (BODY). Beispiele dafür findet man in der folgenden Datei von Wissi Nr Ordner auf CD Dateiname 1 Wissi / php / head.php 65 / 112 Der Kopf enthält u.a. folgende Elemente: Elementname Beschreibung title Bezeichnung des Titels des Dokumentes, wird in der Titelleiste vom Browser angezeigt meta diese Daten dienen vor allem der besseren Durchsuchbarkeit des WWW, Suchroboter bzw. Suchagenten werten diese Daten aus script Bindet Code einer Skriptsprache mit ein wie z.B. JavaScript Die Elemente im Kopf werden vom Browser ausgewertet und genutzt, aber nicht dem Benutzer angezeigt. Der Rumpf enthält den eigentlichen Inhalt sowie die Markierungssymbole zur Formatierung des Dokumentes. Hier ein kleines Beispiel: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> Meine erste Seite </TITLE> </HEAD> <BODY> Hier ist ein unformatierter Text. <FONT color=“red“> Hier ist ein roter Text </FONT> </BODY> </HTML> Ein Browser erkennt an dem tag <HTML> ... </HTML>, dass es sich um ein HTML-Dokument handelt. 66 / 112 In HTML lassen sich folgende Objekte einbinden bzw.darstellen: − Bilder, Grafiken − Musik, Sound − Verweise auf andere HTML-Dokumente − Verweis auf Dateien − Einbindung von Skriptsprachen (wie JavaScript, PHP oder CGI) − Einbindung von Applets (Java Programme) − Eingabe- und Ausgabefelder − Auswahlboxen, Checkboxen − Buttons bzw. Schaltflächen Auch wenn es möglich ist, multimediale Objekte in das HTML-Dokument mit einzubinden, so ist HTML für die Präsentation von statischen Inhalten entwickelt worden. Die ursprünglich einzig dynamischen Elemente waren die Hyperlinks. HTML ist ohne Erweiterung nicht in der Lage dynamische Inhalte zu verarbeiten. Aus diesem Grund muss man Erweiterungen nutzen, zu denen Flash, Java-Applets und diverse Skriptsprachen (wie z.B. JavaScript, VBScript oder PHP) gehören.46 Die Standards und Richtlinien für das World Wide Web bzw. die Web-Technologien erarbeitet das internationale W3-Konsortium, erreichbar unter http://www.w3.org/. W3 hierbei steht für World Wide Web. Die Standards werden als Recommendations (einsehbar unter: http://www.w3.org/TR/) veröffentlicht. Die Hersteller von z.B. Browsern müssen oder sollten sich an diese vorgegebenen Standards und Richtlinien halten und diese in Ihren Technologien umsetzen. Der Internet Explorer von Microsoft interpretiert viele CSS-Definitionen nicht standardkonform. Solche nicht standardkonformen Interpretationen werden Browserabweichungen bzw. Hacks genannt. 46 Vgl. Enseleit et al. (2007), Dynamische Webseiten 67 / 112 Im Allgemeinen versucht sich Microsoft von den Standards und Richtlinien des W3Konsortiums zu distanzieren, in dem sie z.B. von der Koalition Web Standards Project47 (WaSP) eingeführte „Standards“ umsetzt, siehe dazu bei heise unter http://www.heise.de/newsticker/Internet-Explorer-8-fuehrt-neues-Meta-Tag-einUpdate--/meldung/102251 (Stand: 22.01.2008) oder bei golem unter http://www.golem.de/0803/58287.html (Stand: 10.03.2008). 6.2 Anforderungen HTML-Code kann mit jedem beliebigen Editor auf jedem beliebigen Betriebssystem erstellt werden. Für die Ausführung bzw. Interpretation des HTML-Codes wird ein Browser benötigt. Je nach Browser kann die Darstellung aufgrund der Hacks unterschiedlich ausfallen. Diverse Statistiken über die Nutzung von Browser findet man bei WebHits unter http://www.webhits.de/deutsch/index.shtml?/deutsch/webstats.html (Stand: 06.08.2008) oder bei heise unter http://www.heise.de/netze/Marktforscher-Firefox-Anteil-am-deutschen-WebbrowserMarkt-stagniert--/news/meldung/102722 (Stand: 30.01.2008). 6.3 JavaScript In Wissi wird ebenfalls die clientseitige Skriptsprache JavaScript verwendet, d.h. der JavaScriptCode wird vom Webbrowser interpretiert. Der Server bzw. ein Serverdienst wird für diese Skriptsprache nicht benötigt. Die Verwendung macht Sinn, wenn z.B. folgende Sachverhalte vorliegen: − Benutzereingaben sollen vor dem Versenden an den Server überprüft werden und es soll ggf. die Versendung aufgrund Unvollständigkeit verweigert werden − ein Objekt soll in HTML verändert werden, z.B. ein Bild wird durch ein anderes Bild ersetzt − Berechnung von Werten, z.B. der aktuelle Wochentag oder die Anzahl von Zeichen in einem Textfeld 47 Siehe: http://www.webstandards.org/ 68 / 112 JavaScript ist eine eingebettete Skriptsprache (siehe dazu auch PHP, Kap. 7). Sie kann direkt im HTML Code mittels dem tag <SCRIPT> ... </SCRIPT> integriert sein oder es wird im HTMLCode eine Referenz auf eine externe Datei gelegt, in der sich der JavaScript Code befindet. Beispiel mit integrierten Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit JavaScript integriert </TITLE> </HEAD> <BODY> <SCRIPT type='text/JavaScript'> <!-alert('Hallo'); //--> </SCRIPT> </BODY> </HTML> Beispiel mit Verweis auf eine externe Datei: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit Verweis auf externe JavaScript Datei </TITLE> </HEAD> <BODY> <SCRIPT src='hello.js'></SCRIPT> </BODY> </HTML> JavaScript wird in Wissi genutzt, wenn die o.g. Sachverhalte vorliegen. Nr Ordner auf CD Dateiname 1 Wissi / php / head.php 2 Wissi / wissi.js 69 / 112 6.4 CSS Durch Definitionen von Cascading Style Sheets (CSS) wird in HTML der Inhalt und das Layout getrennt. Dadurch wird der HTML-Code entschlackt und übersichtlicher. Bei CSS handelt es sich um eine Art Ergänzungssprache für HTML. Mit CSS ist es möglich, für verschiedene Ausgabemedien (wie z.B. Drucker, Projektion, Sprache) eine unterschiedliche Darstellung anzugeben. Ein weiteres Merkmal von CSS ist die Möglichkeit, zentrale Formate zu definieren. So kann eine CSS-Definition in einer externen Datei von einer unbeschränkten Anzahl von HTMLDokumenten eingebunden werden. Alle HTML-Dokumente erhalten dieselben Formateigenschaften. Formateigenschaften sind z.B. die Größe, Farbe oder Position eines HTML-Elementes. Dadurch ist es möglich für große Projekte, d.h. für Projekte mit zahlreichen HTMLDokumenten, ein einheitliches Layout zu entwerfen. Dieses Layout kann aufgrund der externen CSS-Datei(en), einfacher und schneller gewartet bzw. modifiziert werden. Ein Nachteil von CSS ist, dass ältere Browser CSS nur eingeschränkt oder gar nicht unterstützen.48 Eine Aufführung von Browserabweichungen finden Sie auf SELFHTML unter http://de.selfhtml.org/css/layouts/browserweichen.htm#browserweichen (Stand: 2007). <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit CSS integriert, Möglichkeit 1 </TITLE> </HEAD> <BODY> Hier ist ein unformatierter Text. <P style='font-size: 150%'> Hier ein grosser Text </P> </BODY> </HTML> 48 Spona (2006), S. 37 70 / 112 In dem folgenden Code-Beispiel ist der CSS-Code direkt im tag in dem Attribut style angegeben. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit CSS integriert, Möglichkeit 2 </TITLE> <STYLE type='text/css'> <!-P { font-size: 150%; } --> </STYLE> </HEAD> <BODY> Hier ist ein unformatierter Text. <P> Hier ein grosser Text </P> </BODY> </HTML> Der Unterschied zwischen Möglichkeit 1 und 2 liegt darin, dass bei Möglichkeit 1 das Attribut style nur für das jeweilige Element gilt. In Möglichkeit 2 gilt das Attribut für alle tags <P> ... </P>, die in dem HTML-Dokument angegeben sind. Dort wird das Attribut style im Kopf des HTML-Dokumentes definiert. Beispiel für eine CSS-Datei in Wissi findet man hier: Nr Ordner auf CD Dateiname 1 Wissi / css / default.css 71 / 112 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML, CSS ausgelagert </TITLE> <LINK rel='stylesheet' href='default.css'> </HEAD> <BODY> Hier ist ein unformatierter Text. <P> Hier ein grosser Text </P> </BODY> </HTML> In dem HTML-Code wird auf die CSS-Datei default.css referenziert. Eine Referenz ist ein Verweis auf ein Objekt, hier in dem Fall, ein Verweis auf eine externe Datei. Hier die dazugehörige CSS-Datei namens default.css: P { font-size: 150%; } „Die Regeln für den Mustervergleich legen in CSS fest, welche Stilregeln auf die Elemente im Dokumentbaum angewendet werden. Diese Muster, die so genannten Selektoren, können von einfachen Elementnamen bis hin zu umfassenden Kontextmustern reichen. Wenn alle Bedingungen eines Musters für ein bestimmtes Element zutreffen, stimmt der Selektor mit dem Element überein.“49 49 Edition W3C: http://www.edition-w3c.de/TR/1998/REC-CSS2-19980512/kap05.html, deutsche Übersetzung von World Wide Web Consortium: http://www.w3.org/TR/1998/REC-CSS2-19980512, Stand: 12.05.1998 72 / 112 Der Selektor wird dabei unterschieden in:50 − Universeller Selektor − Typselektor − Selektoren für Nachfahren − Kind-Selektoren − Selektoren für benachbarte Elemente − Attribut-Selektoren und − ID-Selektoren Hier die Deklaration von einem Selektor. Selektor { Eigenschaft: Wert; } Als Deklaration bezeichnet man die Kombination aus Eigenschaft und Wert. Ein Selektor ist eine Verkettung aus einem oder mehreren einfachen Selektoren, durch Kombinatorzeichen voneinander getrennt. Kombinatorzeichen sind: Leerraum, „>“ und „+“. Leerraum kann zwischen einem Kombinatorzeichen und den umgebenden einfachen Selektoren stehen. 50 World Wide Web Consortium: http://www.w3.org/TR/REC-CSS2/selector.html, Stand: 12.05.1998 73 / 112 Wie anfangs erwähnt, ist es möglich mit CSS für verschiedene Ausgabemedien eine unterschiedliche Darstellung anzugeben. Im Folgenden sind ausgewählte Medientypen aufgelistet, die von CSS Version 2 unterstützt werden:51 Angabe Bedeutung media='all' CSS-Datei gilt für alle Medientypen. media='aural' CSS-Datei gilt für computergesteuerte synthetische Sprachausgabe. media='print' CSS-Datei gilt für den Ausdruck auf Papier media='projection' CSS-Datei gilt für die Datenprojektion mit Beamern und ähnlichen Geräten. media='screen' CSS-Datei gilt für die Bildschirmanzeige. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE>Stylesheets f&uuml;r unterschiedliche Ausgabemedien</TITLE> <LINK rel='stylesheet' media='screen' href='website.css'> <LINK rel='stylesheet' media='print' href='druck.css'> <LINK rel='stylesheet' media='aural' href='speaker.css'> </HEAD> <BODY> <P>Stylesheets f&uuml;r unterschiedliche Ausgabemedien</P> </BODY> </HTML> Die Spezifikationen zu CSS 2 finden Sie beim W3-Konsortium unter http://www.w3.org/TR/REC-CSS2 (Stand: 12.05.1998). 51 Vgl. SELFHTML: http://de.selfhtml.org/css/formate/einbinden.htm, Stand: 2007 74 / 112 7. PHP 7.1 Gründe für PHP Der Prototyp Wissi wurde in der Skriptsprache PHP entwickelt. Im folgenden werden diverse Gründe aufgeführt, warum die Wahl auf PHP gefallen ist und welche Vorteile PHP bietet. PHP wurde gewählt, weil es eine Skriptsprache ist, die speziell für den Einsatz von Webapplikationen (also HTML-Dokumente mit dynamischen Inhalt) entwickelt wurde. Ebenso haben die folgenden Argumente zur Entscheidung beigetragen:52 − einfache „Einbettung“ in HTML bzw. einfache Kombination mit HTML − C53 ähnliche Syntax − kostenfrei und kostenloser Support − große Entwicklergemeinde − freie Downloads von PHP-Skripten − Unterstützung von zahlreichen Datenbanken wie z.B. MySQL − großer Funktionsumfang − Performance54 sowie − weite Verbreitung Nexen Services55 ermittelt seit Jahren die Verbreitung von einzelnen Programmiersprachen bzw. Skriptsprachen im Internet. Dazu wurden im November 28,7 Millionen Server erfasst, wovon 11,6 Millionen für die Statistik benutzt wurden.56 52 Vgl. Krause (2002), S. 27 und Vgl. Hudson (2006), S. 2ff. 53 C ist eine Programmiersprache 54 Vgl. ister: http://www.ister.org/code/article/de/phpbench51.html und PHP FAQ http://www.php-faq.de/q/q-phpvs-perl.html 55 Nexen Services: http://www.nexen.net 56 Vgl. Nexen Services: http://www.nexen.net/chiffres_cles/phpversion/17878php_statistics_for_november_2007.php, Stand: 05.12.2007 75 / 112 Die Statistik, siehe Abb. 16, stellt heraus, dass auf 33,29% also 1/3 aller Internetseiten PHP gefunden wurde, d.h. dass die Seiten selbst PHP-Skripte sind oder das in den HTMLDokumenten PHP-Code eingebettet ist. Dieser Wert ist zum Vorjahr (November 200657) leicht gefallen. Damals lag der Wert bei 34,13%.In welchem Umfang PHP-Code in den HTMLDokumenten vorkommt, ist daraus nicht ersichtlich. Die Statistik listet lediglich PHP, ASP und Andere, welche zusammengesetzt aus Andere (Autres) und Kein-PHP (Pas de PHP) besteht, auf. Die Betitelung Kein-PHP ist falsch gewählt, da ASP natürlich auch „kein PHP“ ist. Zumal offen bleibt, warum Andere und Kein-PHP nicht zusammengelegt wurden. Aufgrund der hohen Beteiligung von Kein-PHP (44,78%), sollte dies weiter aufgeschlüsselt werden. Was genau dahinter steht, ist hier nicht ersichtlich. Hinter dem Wert können unendliche viele andere Skript- bzw. Programmiersprache stehen oder genau eine. Trotz dieser Mängel kann die Grafik mit einbezogen werden, da veranschaulicht werden soll, das PHP momentan weit verbreitet und genutzt ist. Welchen Rang PHP dabei ein nimmt, spielt hier keine Rolle. Abb. 16: Verbreitung von PHP im Internet, November 2007 57 Vgl. Nexen Services: http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_novembre_2006.php, Stand: 03.12.2006 76 / 112 Bei der Erläuterung von PHP und dahinter stehende Methoden und Protokolle wird in den folgenden Kapiteln auf das RFC (Request for Comments) verwiesen. Das RFC enthält technische und organisatorische Dokumente über das Internet, sowie technische Spezifikationen und Verfahrensdokumente, die von der IETF (Internet Engineering Task Force) erstellt wurden.58 „The Internet Engineering Task Force (IETF) is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. It is open to any interested individual. The IETF Mission Statement is documented in RFC 393559.“60 Im Folgenden soll keine Übersicht und kein Programmierkurs von PHP statt finden, sondern es sollen diverse Konzepte und Methoden vorgestellt werden, die in Wissi genutzt werden. 7.2 Grundlagen PHP (Hypertext Preprocessor) ist eine Skriptsprache, die an die Programmiersprachen C bzw. C++ angelegt ist. PHP ist eine Opensource-Software für die Erstellung von dynamischen Webseiten bzw. Webanwendungen. Eine Skriptsprache zeichnet sich durch die folgende Merkmale aus:61 − implizit deklarierte Variablen (ebenso dynamische Funktionsnamen) − dynamische bzw. automatische Typumwandlung oder auch fehlende Typunterscheidung − automatische Speicherverwaltung, vor allem Speicherbereinigung − werden i.d.R. ohne getrennte Übersetzungsphase ausgeführt, d.h. sie werden durch den Interpreter interpretiert − 58 59 60 61 Skripte werden meist in Quelltextdateien ausgeliefert Vgl. Network Working Group Siehe: http://www.ietf.org/rfc/rfc3935.txt IETF: http://www.ietf.org/overview.html Vgl. Wikipedia: http://de.wikipedia.org/wiki/Skriptsprache, Stand: 07.08.2008 77 / 112 Unter Open Source (dt. offener Quelltext) wird verstanden, wenn die folgenden Punkte vorliegen:62 − Quelltexte liegen für den Menschen in lesbarer Form vor − die Quelltexte dürfen beliebig genutzt, kopiert, verändert oder verbreitet werden − weitgehende Freiheit von speziellen Herstellerbezogenen Technologien Es existiert der Zusammenschluss Open Source Initiative (OIS) von Software-Entwicklern, die unter Open-Source-Bedingungen arbeiten. Für Open Source Applikationen gibt es die GNU GPL (General Public License). Diese Lizenz schränkt die Verwendungsmöglichkeiten der Software ein. Hier einige Beispiele für bekannte Programme, die „Open Source“ sind: − Mozilla Firefox (Webbrowser, vergleichbar mit Microsoft Internet Explorer) − Mozilla Thunderbird (Email-Client, vergleichbar mit Outlook) − OpenOffice (Programmbündel, bestehend u.a. aus Schreib-, Präsentations- und Kalkulationsprogramm, vergleichbar mit Microsoft Office) − MySQL (Datenbank, vergleichbar mit Oracle) − Apache (Serverdienst, vergleichbar mit IIS) PHP ist eine sog. „eingebettete“ Skriptsprache (wie u.a. auch ASP und Perl), d.h. sie kann direkt im HTML-Code angegeben werden. Der Programmcode wird auf dem Server bzw. vom Serverdienst verarbeitet und die Ergebnisse im Browser ausgegeben. PHP ist eine severseitige integrierte Skriptsprache (server-side embedded scripting language)63. Somit liegt die Ausführung und der eigentliche Quelltext auf dem Server und der Client (wie der Browser) haben keinen direkten Zugriff auf den Code. Ein gegenteiliges Beispiel ist die Skriptsprache JavaScript. Diese ist ebenfalls eine „eingebettete“ Sprache, wird allerdings vom Browser interpretiert und der Benutzer hat volle Einsicht in den Quelltext. 62 Vgl. Claus et al. (2006), S. 472ff. 63 Vgl. Castagnetto et al. (2000), S. 8 78 / 112 Vorteile der serverseitigen Ausführung sind:64 − beim Client (Browser) können keine keine Inkompatibilitäten auftreten − der PHP-Quelltext ist für den Endanwender nicht einsehbar − Ressourcen wie Datenbanken benötigen keine direkte Verbindung zum Client Die Nachteile sind:65 − jede Benutzeraktion ist erst nach der Verarbeitung auf dem Server auf der eigentlichen HTML-Seite ersichtlich. Nachteilig ist, dass jede Aktion des Benutzers erst bei einem erneuten Aufruf der Seite erfasst werden kann. Da PHP normalerweise in einer Webserver-Umgebung läuft, unterliegt es auch dem zustandslosen HTTP. Außerdem wird jede PHP-Seite vom Webserver interpretiert, wodurch dessen Belastung steigt. Diese Vor- und Nachteile sind nicht PHP-spezifisch, sondern treten bei jeder Webanwendung auf. Zusätzlich liest, prüft und übersetzt der Interpreter den Quelltext bei jedem Aufruf erneut. Dies mindert die Reaktionsgeschwindigkeit des Servers und erhöht nochmals die Last. Um dem entgegenzuwirken, stehen verschiedene Bytecode-Caches zur Verfügung, welche eine zur Ausführung vorbereitete Version des Programmes zwischenspeichern und somit den Zugriff auf diese Datei beim nächsten Aufruf beschleunigen (siehe auch Abschnitt Performance). „PHP ist eine nahezu vollständige Programmiersprache, welche über ein Variablenkonzept, Kontrollstrukturen und eine Vielzahl von Funktionen verfügt.“66 Seit der Version 5 existiert auch ein objektorientiertes Konzept. Als eine vollwertige Programmiersprache kann man PHP nicht bezeichnen, da die grafischen Methoden zur Ausgabe fehlen. Das muss über HTML realisiert werden. Damit der PHP-Code in HTML erkannt wird, muss dieser zwischen den tags <?php und ?> stehen. In den weiteren Beispielen wird oft ein Kommentar im Code mit angegeben, dieser wird daran erkannt, dass zwei Schrägstriche (//) den Kommentartext anführen. 64 Vgl. Wikipedia: http://de.wikipedia.org/wiki/Php, Stand: 08.08.2008 65 Vgl. Wikipedia: http://de.wikipedia.org/wiki/Php, Stand: 08.08.2008 66 Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuchseite.php?site=5&group=3, Abgerufen am 08.08.2008 79 / 112 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit PHP-Code </TITLE> </HEAD> <BODY> <?php // ein Kommentar $message = 'Hello World'; echo $message; ?> </BODY> </HTML> Ebenfalls ist es möglich den gesamten Code in die PHP-Datei index.php zu bringen <?php $anfang = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit PHP-Code </TITLE> </HEAD> <BODY>'; $message = 'Hello World'; $ende = '</BODY> </HTML>'; echo $anfang.$message.$ende; ?> In den beiden Beispielen wird der Text Hello World ausgegeben. 80 / 112 Bei einem umfangreichen Code, würde sich die Ablaufsteuerung per PHP in der PHP-Datei befinden und einzelne HTML-Codeausschnitte inkludiert werden, d.h. die HTMLCodeausschnitte befinden sich in separaten Dateien und werden z.B. mit einem include()-Befehl in den PHP-Code integriert. Die separaten Dateien mit den HTML-Ausschnitten bilden zusammen wieder eine vollständig korrekte HTML-Datei. PHP generiert den Inhalt dazu. Dadurch soll die Überschaubarkeit des Codes gewährleistet werden. Und außerdem sollte das Prinzip eingehalten werden, dass alle Ausgaben in einer oder mehreren Variablen gesammelt und zum Ende der Abarbeitung vom Skript mit einem einzigen Ausgabebefehl (echo oder print) ausgegeben werden. In Kap. 6.1 wurde erläutert, dass mit HTML nur statische Webseiten realisiert werden können. Was sind nun Dynamische Webseiten? „Unter dynamischen Webseiten werden Seiten verstanden, deren endgültige, an den Server gesendete Form erst im Augenblick des Abrufes entsteht.“67 Dadurch ist es z.B. möglich auf Benutzereingaben zu reagieren. Benutzereingaben können beispielsweise über ein Formular, welches mit HTML realisiert ist, eingegeben werden. Mit PHP ist man in der Lage HTML-Dokumente mit dynamischen Inhalten zu erstellen. Eine genaue Einführung zu Formularen erhält man im Kap. 7.4. 7.3 Anforderungen Um PHP-Skriptdateien ausführen zu können, benötigt man die eigentliche PHP-Software. Die aktuelle Open-Source Software wird unter www.php.net bereitgestellt. Die Ausführung bzw. Interpretation erfolgt durch:68 − einen Webserver − die Ausführung der Interpreter-Datei (wie z.B. php.exe) in der Kommandoeingabe (CLI) 67 Krause (2000), S. 35 68 Vgl. Hudson (2006), S. 19 81 / 112 Wenn man also die Skripte über einen Server ausführen lassen möchte, so wird ein Webserver benötigt. Folgende Webserver können u.a. für PHP genutzt werden69: − Apache (www.apache.org) − Samba − IIS (Microsoft Internet Services) − Personal Web Server (PWS) − OmniHTTPD − und Webstar Für die Nutzung von PHP Version 5.X.X wird mindestens das Betriebssystem Windows 2000 empfohlen, da Windows 98 und Windows 95 nicht mehr unterstützt werden.70 Um die Systemkonfiguration vom installierten Server einzusehen, kann man die PHP-Funktion phpinfo() aufrufen. Wenn Sie das Skript info.php auf dem Testsystem71 starten, wird u.a. die Version (5.2.172) von PHP angezeigt. Es existiert eine Programmkombination namens LAMP. Die Buchstaben des Akronyms stehen für die Komponenten: Linux, Apache, MySQL und PHP. Tutorials und Downloadmöglichkeiten findet man u.a. bei eFactory unter http://lamps.efactory.de/ (Stand: 15.07.2004) oder unter http://www.baach.de/lamp_tutorial.html (Stand: 23.07.2007). Die Software PHP sowie der meist genutzte Webserver Apache sind plattformunabhängig. Die Programmdateien für PHP und Apache liegen für diverse Betriebssysteme vor. Die Installation und Konfiguration von PHP oder LAMP soll hier nicht erläutert werden. Dazu kann das folgende Tutorial empfohlen werden: http://de.php.net/manual/de/install.php Die genauen Hardware-Voraussetzungen sind für PHP nicht vorgegeben. Ein Betriebssystem ab Windows 2000 (und ein vergleichbares Linux-System) wird genügen. 69 70 71 72 Vgl. Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuch.php?group=7, Abgerufen am 08.08.2008 Vgl. PHP: http://de.php.net/manual/de/install.windows.php, Stand: 01.08.2008 Http://sebcon.de/temp/wissi/info.php Stand: 02.08.2008 82 / 112 Für die Erstellung von PHP-Dateien benötigt man lediglich einen Texteditor. Die Dateiendung ist *.php, kann aber auch *.inc (bei Include-Dateien) sein. Aus Sicherheitsgründen sollte man aber alle PHP-Datein auch unter *.php abspeichern, da sonst Unbefugte Zugriff auf den eigentlichen Quelltext haben. 7.4 Übertragungsmethoden GET und POST Es existieren die zwei Methoden GET und POST, um Daten von einem HTML-Dokument per Hypertext Transfer Protocol (HTTP) zum Server zu übertragen. Das HTTP ist ein Protokoll zur Übertragung von Daten über ein Netzwerk. HTTP wird allgemein als ein Kommunikationsprotokoll zwischen Benutzeragenten und Proxies bzw. Gateways zu anderen Internetsystemen verstanden, einschließlich denen, die u.a. die folgenden Protokolle unterstützen:73 − SMTP (Simple Mail Transfer Protocol), Austausch (Versenden und Weiterleiten) von EmailNachrichten in Netzwerken − NNTP (Network News Transfer Protocol), Übertragungsprotokoll für Diskussionsforen − FTP (File Transfer Protocol), Dateiübertragung über TCP/IP In diesem Zusammenhang muss ebenfalls das Prinzip der Uniform Resource Identifier (URI) genannt werden, da HTTP das Prinzip der URI nutzt. URIs sind hauptsächlich durch WWWAdressen und die Uniform Resource Locator (URL) bekannt. URI sind einfach formatierte Zeichenketten welche u.a. einen Namen oder eine Position angeben. Die genannte URL und auch die Uniform Resource Name (URN) sind lediglich Spezifikationen der URI. URIs können in HTTP in absoluter oder in relativer Form angegebenen werden. Die zwei Formen unterscheiden sich dadurch, dass absolute URIs immer mit einem Schemaname (scheme name oder auch Protokoll genannt) beginnen und darauf ein Doppelpunkt folgt. Die relative Form bezieht sich auf eine bekannte Basis-URI.74 73 Vgl. Network Working Group, RFC 2068 (HTTP), Abschnitt 1.1 Purpose 74 Vgl. Network Working Group, RFC 2068 (HTTP), Abschnitt 3.2 URI 83 / 112 Die relative Form kann bei Hyperlinks in HTML-Dokumenten genutzt werden. Durch die Verwendung von relativen URLs, wird es möglich, zusammenhängende Web-Dokumente unabhängig von Ihrer absoluten Adresse zu gestalten. Beispiel absolute Form, Schemaname (Protokoll) ist fett hinterlegt: http://www.olympus.de/microscopy/22.htm Beispiel relative Form in einem HTML-Dokument: ./index.html In diesem Zusammenhang muss noch erläutert werden, was genau ein Formular ist. Ein HTMLFormular setzt sich aus den tags <FORM> ... </FORM> zusammen. Zwischen den tags können zahlreiche Formularelemente platziert sein. Dazu gehören u.a.:75 − Eingabefelder <INPUT type='text'>, <INPUT type='password'> − Eingabebereiche <TEXTAREA cols='50' rows='10'></TEXTAREA> − Auswahllisten <SELECT size='1'> <OPTION>Hans Otto</OPTION> <OPTION>Karl Heinz </OPTION> </SELECT> − Radiobuttons <INPUT type='radio'> Sonnenschein − Checkboxen <INPUT type='checkbox'> Salami − Felder für Datei-Upload <INPUT type='file'> − versteckte Felder <INPUT type='hidden'> − Buttons <INPUT type='submit'>, <INPUT type='reset'> Der angegebene HTML-Code soll nur einen Einblick verschaffen. Der Code ist so keinesfalls verwertbar, da noch entscheidende Attribute wie z.B. name oder value fehlen und einige Elemente nur im Verbund Sinn machen. Mithilfe eines HTML-Formulares ist der Endanwender in der Lage, Daten vom Browser via HTTP zum Server zu übermitteln.76 75 Vgl. SELFHTML, Formulare 76 Vgl. Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuchseite.php?site=184&group=32, Abgerufen am 08.08.2008 84 / 112 7.4.1 POST Die POST Methode beinhaltet die folgenden Funktionen:77 − Vermerk von existierenden Ressourcen − Übertragung einer Nachricht an Bulletin Board (schwarzes Brett), Newsgroups, MailingListen oder ähnliche Gruppen − Übertragung eines Datenblocks zu einem datenverarbeitenden Prozess (dazu gehören auch die Inhalte eines Formulares) In HTML wird dies wie folgt realisiert: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit Formular und POST </TITLE> </HEAD> <BODY> <FORM action='sendmail.php' method='POST'> Ihre Nachricht: <INPUT type='text' name='nachricht' size='50'> an Email: <INPUT type='text' name='email' size='50'> <INPUT type='button' name='absenden' value='Nachricht absenden'> </FORM> </BODY> </HTML> Das Formular stellt drei Objekte dar. Die drei Objekte sind die sog. empty tags, sie besitzen kein schliessenden tag. Ein Eingabefeld für die Nachricht (name ist nachricht) mit der Länge von 50 Zeichen. Ebenso existiert ein Eingabefeld für die Email-Adresse (name ist email) mit der Länge von 50 Zeichen. Das Objekt vom type button (name ist absenden) stellt einen Button bzw. Schaltfläche (Bedienelement in einer grafischen Benutzeroberfläche) dar, womit vereinfacht gesagt die Nachricht an die Email-Adresse abgesendet werden kann. 77 Vgl. Network Working Group, RFC 2068 (HTTP), Abschnitt 9.5 POST 85 / 112 „Die aktuell durch POST ausgelöste Aktion wird durch den Server festgelegt und ist abhängig von der Request-URI. Der gesendete Datenblock stellt hierbei einen Bestandteil dieser URI dar, ähnlich wie eine Datei Bestandteil eines Verzeichnisses ist. Der durch POST ausgelöste Prozess muss nicht direkt an eine Ressource gerichtet sein, die durch den URI adressiert wird.“78 Die POST Methode übertragt die Daten im Körper (Body) der Nachricht. Damit sind die Daten ein Bestandteil der Nachricht, welche aus Kopf (Header) und Körper (Body) zusammengesetzt ist. <?php $nachricht = $_POST['nachricht']; $email = $_POST['email']; echo $nachricht.$email; ?> Jedes Formularelement ist durch das Attribut name gekennzeichnet und eindeutig identifizierbar. Die zulässige Datenmenge, die übertragen werden kann ist deutlich größer als bei GET. Der Standard-Wert beträgt 8MB. Der Wert kann in der Datei php.ini unter dem Eintrag post_max_size modifiziert werden. Einsetzen sollte man die POST Methode bei sensiblen Daten wie z.B. Passwörtern, die nicht in der URL oder in Proxy-Logdateien auftauchen oder Bestandteil des Referers sein sollte.79 Ein Nachteil der Methode ist, dass der Browser nicht automatisch die Daten erneut sendet, wenn der Benutzer durch den Zurück-Button auf die HTML-Seite mit dem Formular zurück „gesurft“ ist.80 78 Krause (2000), S. 209 79 Vgl. Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuchseite.php?site=183&group=32, Abgerufen am 08.08.2008 80 Vgl. Hudson (2006), S. 159 86 / 112 Noch eine kurze Erläuterung zu dem genannten Begriff Referer. Ein Referer (engl. to refer „verweisen“) ist ein Bestandteil der HTTP-Anfrage an den Server. Das Referer request-header Feld erlaubt dem Client eine URI für den Server zu spezifieren. Diese URI besteht aus der Adresse, von wo die Abfrage abgesetzt wurde. Dieses Referer request-header Feld erlaubt dem Server eine Liste von Back-Links u.a. zum Aufzeichnen oder zum optimierten Cachen zu erstellen.81 Der Begriff ist auch unter der falschen Schreibweise Referrer bekannt. Hier findet man einige Beispieldatei, die die POST-Methode nutzt: Nr Ordner auf CD Dateiname 1 Wissi / php / hochladen.php 2 Wissi / php / hochladen_schluessel.php 7.4.2 GET Mit der GET-Methode werden Daten82 durch die Anfrage-URI (Request-URI) identifiziert. Wenn die Anfrage Nachricht folgendes header Feld besitzt, ändert sich die GET-Methode zu einem „bedingten GET“ (conditional GET):83 − If-Modified-Since − If-Unmodified-Since − If-Match − If-None-Match − If-Range Durch die bedingte GET-Methode werden die Daten nur übertragen, wenn die entsprechenden Bedingungen zutreffen sind. Die bedingte GET-Methode dient zur Reduzierung unnötiger Netzwerk-Nutzung. Vereinfacht gesagt, werden die Daten über die URI mit an den Server gesendet. Dadurch kann der Benutzer die Übertragungsdaten sehen und ggf. auch verändern. 81 Vgl. Network Working Group, RFC 2616 (HTTP), Abschnitt 14.36 Referer 82 Vgl. Network Working Group, RFC 2068 (HTTP), Abschnitt 9.3 GET, Beschreibung spricht von Informationen, was im Rahmen des Wissensmanagement nicht korrekt wäre 83 Vgl. Network Working Group, RFC 2068 (HTTP), Abschnitt 9.3 GET 87 / 112 In HTML wird dies wie folgt mit einer URL realisiert: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit Hyperlink und GET </TITLE> </HEAD> <BODY> <A href='index.php?page=startseite&link=test'> Klicken Sie hier </A> </BODY> </HTML> Wenn der Benutzer in dem HTML-Dokument den Link mit dem Text Klicken Sie hier anklickt, wird auf dem Server die Datei index.php aufgerufen und die mitgesendeten Variablen page und link mittels der URL übergeben. Der Inhalt von page ist startseite und der Inhalt von link ist test. In PHP können die Variablen wie folgt ausgelesen werden: <?php $page = $_GET['page']; $link = $_GET['link']; echo $page.$link; ?> 88 / 112 Große Datenmengen können mit dieser Methode nicht übertragen werden. Das RFC definiert die Länge einer URI zwar als unbegrenzt, allerdings beschränken viele Browser die Länge der URI. „The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).“84 Browser URL-Länge (in Zeichen) Microsoft Internet Explorer 2.04885 Mozilla Firefox (Windows, Version 1.5.x) getestet bis 100.000 Zeichen, kein Limit erreicht Opera getestet bis 190.000 Zeichen, kein Limit erreicht Safari getestet bis 80.000 Zeichen, kein Limit erreicht Die Testergebnisse wurde von der Homepage http://www.boutell.com/newfaq/misc/urllength.html (Stand: 13.10.2006) von Thomas Boutell entnommen. 84 Network Working Group, RFC 2616 (HTTP), Abschnitt 3.2.1 General Syntax 85 Microsoft Hilfe und Support: http://support.microsoft.com/kb/208427, Stand 26.10.2007 89 / 112 7.5 Persistente Datenablage HTTP ist ein verbindungsloses Protokoll. Client und Server beenden nach jedem Kommando den Prozess und starten für jedes weitere Kommando einen neuen Prozess. Das hat zur Folge, dass alle verwendeten Variablen (lokal oder global) bzw. deren Inhalt und Ergebnisse verloren gehen. Es gibt die folgenden Möglichkeiten, Daten zwischen zu speichern bzw. weiterzugeben: − Daten in versteckten HTML-Feldern (hidden fields) ablegen − Nutzung von Cookies − Nutzung von Sessions − Daten in der URI mitgeben − Daten in einer Datei ablegen − Daten in einer Datenbank ablegen Dabei können die folgenden Möglichkeiten wie folgt gruppiert werden:86 clientseitige Techniken Zu den clientseitigen Techniken gehören die versteckten Felder, die Cookies, und das Weitergeben der Daten in der URI mittels GET. Der Vorteil liegt hier bei der geringen Beanspruchung des Webservers. Der schwerwiegende Nachteil ist die erforderliche Kooperation des Browser bzw. des Benutzers, der seinen Browser einstellt. Ebenfalls ist es möglich, dass ein Benutzer die Daten modifizieren kann. serverseitige Techniken Zu den serverseitigen Techniken gehört die Datenablage in der Datei und in der Datenbank. Der Vorteil liegt hier in der Browserunabhänigkeit sowie in der Tatsache, dass die Daten von Nichtberechtigten auch nicht modifiziert werden können. Dafür sind die Methoden recht ressourcenaufwändig. Die Datenbank wird im nächsten Kapitel ausführlich behandelt, so dass hier nicht weiter darauf eingegangen wird. 86 Vgl. Krause (2000), S. 246ff. 90 / 112 Das Prinzip der Session kann nicht nur zu einer Technik zugeordnet, sondern muss zu beiden gezählt werden, da vereinfacht gesagt die Daten auf dem Server verwaltet werden und der Schlüssel (Session-ID) beim Client (über die URI oder ein Cookie) verwaltet wird. 7.5.1 Cookies „Cookies als solche wurden von dem Softwareunternehmen Netscape als merkfähige Ergänzung des zustandslosen HTTP-Protokolls entwickelt. Sie sollten dazu beitragen, die Transparenz von Anwenderinteraktionen im Web zu verbessern.“87 Ein Cookie ist eine Nachricht, die von einem Server oder von einem clientseitigen Skript (wie JavaScript) an den Browser des zugreifenden Benutzers gesendet und formatiert in einer Datei ablegt wird. Bei jedem Zugriff auf den Server werden die Daten aus der Datei vom Browser an den Server per HTTP zurück gesendet.88 Die folgenden Einschränkungen gelten für einen Webbrowser (user agent) bzgl. eines Cookies:89 − ein Webbrowser soll maximal 300 Cookies speichern − ein Cookie soll maximal 4KB (entspricht 4096B) groß sein − pro Host oder Domain-Namen sollen maximal 20 Cookies gespeichert werden 87 Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuch.php?group=34, Abgerufen am 08.08.2008 88 Vgl. Claus et al (2006), S. 154 89 Vgl. Network Working Group, RFC 2109 (HTTP), Abschnitt 6.3 Implementation Limits 91 / 112 In einen Cookie können die folgenden Attribute abgelegt werden:90 Attribut Beschreibung NAME NAME ist eine Zeichenkette (alle Zeichen bis Strichpunkt, Komma und Leerzeichen), die das Cookie benennt. VALUE Der Wert bzw. die eigentlich Nachricht. EXPIRES Der Zeitpunkt, wann das Cookie verfällt bzw. gelöscht wird. Der Wert wird in Sekunden gesetzt. PATH Der Pfad zu dem Server, auf welchem das Cookie verfügbar sein wird. Der Standardwert ist das Verzeichnis, in dem das Cookie gesetzt wurde. DOMAIN Die Domain, der das Cookie zur Verfügung steht. SECURE Gibt an, dass das Cookie nur über eine sichere HTTPS-Verbindung übertragen werden soll. Ist es auf 1 gesetzt, wird das Cookie nur gesendet, wenn eine sichere Verbindung besteht. Der Standardwert ist 0. Alle Attribute außer NAME sind optional und müssen bei der Erstellung eines Cookies nicht angegeben werden. Der Benutzer hat die Möglichkeit, dem Browser die Erstellung und Modifizierung der Cookies nicht akzeptieren zu lassen. Beim Firefox kann man das z.B. unter Extras / Einstellungen / Tab Datenschutz / Cookies Cookies aktivieren bzw. deaktivieren. Auch bei deaktivierten Cookies wird bei der Erstellung mit der Funktion setcookie() der Rückgabewert TRUE zurück gegeben, so dass der Entwickler nie davon ausgehen kann, dass sein Cookie auch wirklich erstellt wurde.91 Die Cookies sind beim Benutzer in einem entsprechenden Ordner des Browser gespeichert. Die Attribute liegen bei Nichtangabe des Attributs SECURE unverschlüsselt vor, so dass die Daten in Klartext vorliegen. Cookies dienen in der praktischen Umsetzung z.B. dazu, den Warenkorb eines Internetshop zu speichern oder einen Nutzer von einer personalisierte Seiten wieder zu erkennen. 90 Vgl. Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuchseite.php?site=198&group=34, Abgerufen am 08.08.2008 91 Vgl. PHP: http://de2.php.net/manual/de/function.setcookie.php, Stand: 01.08.2008 92 / 112 <?php // Berechnung der Sekunden für einen Tag $one_day = 3600 * 24 * 1 + time(); // Generiere ein Cookie setcookie('test','hallo', $one_day); echo $page.$link; ?> In dem Beispiel wird ein Cookie namens test mit der Nachricht hallo erstellt. Das Cookie läuft nach 24 Stunden (entspricht 86.400 Sekunden) ab. <?php if (isset($_COOKIE['test'])) { $inhalt = $_COOKIE['test']; echo $inhalt; } ?> In dem Beispiel wird der Inhalt vom Cookie namens test in die Variable inhalt gespeichert und mit echo ausgegeben. Und letztendlich noch einige Anmerkungen zur Sicherheit von Cookies bzw. der Auslesung von Daten. Nicht der Server liest Daten aus der Cookie-Datei aus, sondern der Client (hier: Browser) sendet diese Daten an die URL zurück, von der sie auch geschrieben wurden. Dadurch ist es nicht möglich, dass irgendwelche Benutzerdaten an irgendeinen Server verschickt werden. Ein Cookie stellt laut Bundesamt für Sicherheit in der Informationstechnik (BSI) kein direktes Sicherheitsrisiko dar.92 Allerdings wird vom BSI bemängelt, dass der „Cookie-Mechanismus“ bei der Standard-Konfiguration diverser Browser wenig transparent ist.93 92 Vgl. BSI: http://www.bsi-fuer-buerger.de/browser/02_04.htm, Aufruf am 08.08.2008 93 Vgl. BSI: http://www.bsi.de/literat/anonym/wwwmail.htm, Aufruf am 08.08.2008 93 / 112 Der Benutzer muss sich allerdings bewusst sein, dass es durch Cookies möglich ist, ein Art „Surf-Profil“ vom Kunden zu erstellen und so z.B. personalisierte Werbung zu schalten. Es gibt u.a. den Dienstleister DoubleClick94, der Kunden wie z.B. Google95, Youtube96 oder MTV97 bedient. „Surft“ ein Benutzer auf eine solche Seite, so wird von DoubleClick selbst, der in dieser Situation als Drittanbieter fungiert, ein Cookie beim Benutzer angelegt. Dadurch wird ein Benutzerprofil erstellt, worin vermerkt ist, auf welchen Seiten, die Kunde von DoubleClick sind, der Benutzer sich aufgehalten hat. Dies erfolgt in den meisten Fällen ohne die Ausgabe eines Hinweises an den Benutzer. Auch in diesem Fall ist es möglich, in seinen Browsereinstellungen die Annahme von Drittanbieter-Cookies zu deaktivieren. Für den Entwickler selbst ist es empfehlenswert, keine Passwörter bzw. sicherheitsrelevanten Daten in einem Cookie abzulegen, da der Benutzer selbst diese einsehen kann und auf der Festplatte unter dem jeweiligen Benutzerkonto existiert auf Cookies keine Zugriffsbeschränkung. Ein Beispiel zur Nutzung von Cookies findet man unter Wissi hier: Nr Ordner auf CD Dateiname 1 Wissi / checkpwd.php 94 95 96 97 http://www.doubleclick.com/ http://www.google.com http://de.youtube.com/ http://www.mtv.com 94 / 112 7.5.2 Sessionverwaltung Die Unterstützung von Sessions erlaubt dem Entwickler, eine beliebige Anzahl von Variablen zu registrieren und den Inhalt der Variablen über Anfragen hinweg zu erhalten. Auf die gespeicherten Daten wird über eine eindeutige ID, der sog. Session-ID zugegriffen. Diese Session-ID wird von einem integrierten Session-Management erstellt und behandelt. Die Session-ID muss über eine clientseitige Datenablage (siehe dazu Kap. 7.5) weiter erhalten werden. Zudem ist das Session-Management für die Serialisierung und Speicherung, der an die Session gebundenen Daten zuständig. Die Session-Daten werden in dem jeweiligen Dateisystem des Webservers gespeichert.98 Die Variablen werden bei der Speicherung serialisiert. „Serialisierung beschreibt den Vorgang des Konvertierens des Zustands eines Objekts in eine Form, die erhalten oder transportiert werden kann.“99 Allerdings muss beachtet werden, dass nicht alle Datentypen serialisiert werden können. „Dazu gehören resource-Variablen oder Objekte mit Ringreferenzen (d.h. Objekte, die eine Referenz auf sich selbst an andere Objekte übergeben).“100 PHP überprüft beim Start einer Session, ob eine gültige Session-ID existiert. Existiert keine gültige Session-ID, so wird eine angelegt. Ist eine gültige Session-ID vorhanden, werden die vorgehaltenen Variablen im globalen Namensraum des Skripts zur Verfügung gestellt. „Das Session-Modul bietet keine Garantie dafür, dass Informationen, die Sie in einer Session speichern, nur vom Benutzer gesehen werden können, der die Session erzeugt hat. Sie müssen zusätzliche Maßnahmen ergreifen, um die Integrität der Session ihrer Wichtigkeit entsprechend angemessen aktiv zu schützen.“101 98 Vgl. Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuch.php?group=35, Abgerufen am 08.08.2008 99 Microsoft, Visual Studio: http://msdn.microsoft.com/de-de/library/7ay27kt9(VS.80).aspx, Stand: 2008 100PHP: http://de.php.net/manual/de/intro.session.php, Stand: 01.08.2008 101PHP: http://de.php.net/manual/de/session.security.php, Stand: 01.08.2008 95 / 112 <?php session_start(); // Session Variablen setzen $_SESSION['name'] = 'Hans Otto'; $_SESSION['alter'] = 27; ?> Mit session_start() wird eine neue Session erzeugt oder es wird eine aktuelle Session wieder aufgenommen, die auf der Session-ID basiert.102 <?php session_start(); // Session Variablen ausgeben echo $_SESSION['name'] . $_SESSION['alter']; ?> Die Lebensdauer einer Session ist Standardmäßig auf 24 Minuten eingestellt. Der Garbage Collector (automatische Speicherbereinigung) kontrolliert und zerstört die Sessions, die älter als 24 Minuten sind. Mit der Funktion ini_set() kann dieser Wert verändert werden. Ob man diese Funktionalität nutzen kann, sollte der Entwickler vorher testen, da es Einschränkungen beim Provider (Anbieter des Servers) geben kann. <?php // Session Lebensdauer auf 5 Stunden einstellen ini_set('session.gc_maxlifetime', '18000'); ?> 102Vgl. PHP: http://de.php.net/manual/de/function.session-start.php, Stand: 01.08.2008 96 / 112 Die Verwendung von Session ist recht sicher. Die eigentlichen Daten werden auf dem Server verwaltet und sind somit vor dem Zugriff andere Benutzer sicher. Die Session-ID sollte so aufgebaut sein, dass diese nicht einfach manipulierbar ist wie z.B. durch einen HASH oder einer ID mit einer Prüfsumme. Eine aktuelle Auflistung aller Funktionen bzgl. der Session-Verwaltung findet man u.a. auf http:// de.php.net/manual/de/ref.session.php. Die Sessionverwaltung von PHP wurde in Wissi nicht genutzt. Es wurde eine eigene Sessionverwaltung integriert, die die Daten in einer eigenen Tabelle (Zwischenspeicher) ablegt und die Session-ID über die GET-Methode übermittelt. 97 / 112 7.5.3 sonstige Versteckte Felder (hidden fields) können nur dann genutzt werden, wenn ein Formular mit den tags <form> ... </form> eingesetzt wird. In HTML wird dies wie folgt realisiert: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit Formular und versteckten Feld </TITLE> </HEAD> <BODY> <FORM action='sendmail.php' method='POST'> <INPUT type='hidden' value='mein_wert' name='session'> Ihre Nachricht: <INPUT type='text' name='nachricht' size='50'> an Email: <INPUT type='text' name='email' size='50'> <INPUT type='button' name='absenden' value='Nachricht absenden'> </FORM> </BODY> </HTML> Das Ablegen von Daten in einer Datei kann sehr umfangreich ausfallen. Der Entwickler muss Funktionen implementieren, die das ganze Datei-Handling übernehmen. Dazu gehört das Anlegen, Umbenennen und Löschen einer Datei sowie das Speichern und Auslesen von Daten in bzw. aus einer Datei. Ebenso müssen Funktionen für eine Fehlerbehandlung implementiert sein. Eine Datenbank ist für die Ablage und Verwaltung von großen Datenmengen geeignet. 98 / 112 7.6 Zugriff auf Dateisystem Mit PHP ist es möglich auf das Dateisystem vom Server bzw. auf einen bestimmten freigegebenen Bereich zuzugreifen. Es sind alle Funktionen für Datei- und Verzeichnisoperationen vorhanden, die auch unter dem Betriebssystem wie Windows bereitstehen. Dazu gehören u.a. die Basisaktionen erstellen, umbenennen, verschieben, kopieren, lesen und löschen. Darüber hinaus existieren weitere Funktionen, die Informationen über Dateien und Verzeichnisse liefern. Eine vollständige Funktionsliste findet man auf PHP unter http://de.php.net/manual/de/ref.filesystem.php (Stand: 01.08.2008) oder bei Claus et al. (2006), S. 259ff. Ebenfalls ist es möglich Dateien per HTTP (bzw. POST-Methode) auf den Server zu transferieren (ein sog. Upload). In HTML wird dies wie folgt realisiert: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE> HTML mit Formular und Upload </TITLE> </HEAD> <BODY> <FORM action='hochladen.php' method='POST' enctype='multipart/form-data'> <INPUT type='file' name='datei' maxlength='1000'> <INPUT type='button' name='hochladen' value='Datei hochladen'> </FORM> </BODY> </HTML> Mit dem Input-Element type='file' werden zwei Objekte dem Benutzer bereitgestellt. Ein Button, der ein Dateisystem-Dialog öffnet, um eine Datei auszuwählen und ein Eingabefeld, in dem die ausgewählte Datei angezeigt wird. 99 / 112 Zusätzlich muss in dem form-tag das Attribut enctype='multipart/form-data' mit angegeben werden.103 Die Datei wird mit der POST-Methode übertragen. Aus diesem Grund kann die maximale Dateigröße 24MB betragen. Deshalb sollte man die folgende zusätzliche Option in einem versteckten Feld mit angeben: <input type='hidden' name='MAX_FILE_SIZE' value='100000'> Sobald eine Datei an den Server übertragen wird, wird automatisch das globale Array $_FILES erzeugt. In dem Array sind die folgenden Informationen für den Dateiupload userfile (Dateiname im temporären Verzeichnis) gespeichert:104 Attribut Beschreibung $_FILES['userfile']['name'] Name der Originaldatei $_FILES['userfile']['type'] Dateityp im MIME-Format, z.B. image/gif $_FILES['userfile']['size'] Die Größe der hochgeladenen Datei in Bytes. $_FILES['userfile']['tmp_name'] Der temporäre Dateiname, unter dem die hochgeladene Datei auf dem Server gespeichert wurde. $_FILES['userfile']['error'] Der Fehlercode im Zusammenhang mit dem hochladen der Datei. 103Vgl. Kannengiesser, http://www.selfphp.info/praxisbuch/praxisbuchseite.php?site=225&group=38, Abgerufen am 08.08.2008 104Vgl. PHP: http://de2.php.net/manual/de/features.file-upload.php, Stand: 01.08.2008 100 / 112 8. MySQL 8.1 Grundlagen „Eine Datenbank ist eine Sammlung von Daten, welche Fakten über eine spezielle Anwendung der realen Welt repräsentiert.“105 Eine Datenbank (DB), auch Datenbanksystem bzw. data base system genannt, dient zur Beschreibung, Speicherung und Verwaltung großer Datenbestände, die i.d.R. von mehreren Anwendungsprogrammen bzw. Benutzern genutzt werden106. Die Speicherung soll dauerhaft erfolgen, frei von Redundanzen sein und „aus der Sicht der betreffenden Anwendungen spezifischen Konsistenzbedingungen genügen.“107 Die Speicherung erfolgt auf Sekundärspeichermedien. Ein, bei DB immer genanntes Beispiel ist eine Bibliothek oder eine Bücherei, wo eine große Sammlung von Büchern und ähnlichen Dokumenten gesammelt und inventarisiert werden. Dann gibt es noch die Benutzer bzw. die Leser, die sich registrieren lassen können, um die Dokumente zu lesen und ausleihen zu können. In dem Beispiel existiert eine große Datenmenge sowie Vorgänge, ausgelöst von den Benutzern. Eine Datenbank unterstützt die Daten und Vorgänge zu verwalten. 105Vossen (2000), S. 9 106Vgl. Claus et al. (2006), 163 107Vossen (2000), S. 4 101 / 112 MySQL ist ein relationales Datenbanksystem. MySQL läuft auf diversen Plattformen wie z.B. Windows, Linux oder Mac OSX.108 Eine relationale Datenbank (vierte Generation) stellt die Daten in Form von Tabellen bereit. Die relationale DB ist durch die folgenden Merkmale gekennzeichnet:109 − hoher Grad an physischer Datenunabhängigkeit (physische Speicherung ist nach außen transparent) − Stützung auf einem einfachen konzeptionellen Modell − Bereitstellung einer mächtigen Sprache (zur Manipulation der Daten) Das folgende Beispiel einer relationalen Datenbank beinhaltet drei Tabellen. Eine Tabelle enthält Daten über die Bücher, die zweite über die Ausleihe und die dritte über den Leser. Es besteht keine Vollständigkeit, sondern ist lediglich ein kurzer Ausschnitt aus der realen Welt. InvNr Autor Jahr Titel 1 Horst 1819 Visionen einer Tabelle 2 Otto 2007 Generation zehn 3 Hugo 1992 MySQL InvNr LeserNr Rückdatum 1 A10 12-12-2009 2 A12 31-12-1997 3 A45 08-08-2008 LeserNr Name A10 Ronny A12 Detlef A45 Jaqueline 108siehe MySQL: http://dev.mysql.com/usingmysql/get_started.html 109Vgl. Vossen (2000), S. 14 102 / 112 Die Features bzw. Merkmale von MySQL sind hier nicht relevant. Bei Interesse sind die „wichtigsten Feature“ bei MySQL unter http://dev.mysql.com/doc/refman/5.1/de/features.html aufgelistet. Die Zentrale Schnittstelle zwischen PHP und MySQL ist die Datei psql.php. In dieser Datei sind die grundlegenden Funktionen für den Zugriff auf die Datenbank hinterlegt. Die grundlegenden Daten, die für eine Verbindungsherstellung benötigt werden, sind hier hinterlegt und könnten bei einer Veränderung leicht angepasst werden. // Hostname $host="localhost"; // Benutzername $user = "web255"; // Passwort $pwd = "vivabrasil"; // Datenbankname $db_name = "usr_web255_1"; Mit den Funktionen sql_connect und sql_disconnect schließt man eine Verbindung oder stellt eine Verbindung her. function sql_connect() { $db = mysql_connect($host, $user, $pwd); if (!$db) { die('Ungültige Konnektion: ' . mysql_error()); } mysql_select_db($db_name, $db); } function sql_disconnect() { mysql_close($db); } 103 / 112 8.2 Aufbau der Datenbank Die Datenbank ist aufgebaut aus drei grundlegenden Tabellen: − Benutzer − Dokument − Kategorie (steht hier für die Ordner) Abb. 17: Datenbank: Tabellen für Benutzer 104 / 112 Der Benutzer hat einen Vor- und Nachnamen, eine Email-Adresse, eine Telefonnr sowie eine Abteilung und eine Sprache. Es werden dem Benutzer Rechte als auch Dok_Rechte zugewiesen. Es existieren standardmäßig die folgenden Rechte: − Suchen − Hochladen − Benutzer neu anlegen, Benutzer verändern (z.B. Rechte ändern) und Benutzer löschen − Kategorie bzw. Ordner neu anlegen, Kategorie verändern (z.B. Namen ändern), Kategorie verschieben (noch nicht implementiert) und Kategorie löschen − Recht neu anlegen, Recht verändern (z.B. Namen ändern) und Recht löschen − Datei neu anlegen bzw. Hochladen, Datei verändern (z.B. Attribute ändern) und Datei löschen Damit ein Benutzer Zugriff auf eine Datei hat, muss die Datei bzw. das Dokument und der Benutzer dieselben Dok_Rechte zugewiesen sein. Einem Benutzer können beliebig viele Rechte und Dok_Rechte zugewiesen werden. In der folgenden Abb. 18 ist die grafische Abbildung um die Tabelle Dokument. Dem Dokument werden diverse Merkmale zugewiesen. 105 / 112 Abb. 18: Datenbank: Tabellen für Dokument 106 / 112 Die Kategorie (oder auch Ordner) kann als Inhalt endlich viele Dokumente als auch endlich viele Ordner (Kindordner) besitzen. Die Tabelle Kategorie_Verweis gibt für den aktuellen Ordner die ID für den darüber liegenden Ordner (also Elternordner) an. Dadurch ist es durch rekursive Funktionen jederzeit möglich den gesamten Pfad bis zur Wurzel zurück zu verfolgen. Abb. 19: Datenbank: Tabellen für Kategorie 107 / 112 9. Schlussfolgerung Das MicroNet ist aufgrund der unflexiblen Gestaltungsmöglichkeiten und der Abhängigkeit von anderen Kompetenzen bzw. Abteilungen momentan nicht für die Umsetzung einer abteilungsspezifsche Struktur geeignet. Der entwickelte Prototyp Wissi ist mit den Anforderungen und Bedürfnissen der Abteilung entwickelt worden und bietet außerdem eine benutzerfreundliche und einfache Navigation. Der Benutzer hat mit der Software die Möglichkeit, ohne Kompetenzen von Dritten, einfach und schnell eine hierarchische Struktur einzurichten. Wissi ist lediglich ein Prototyp. Wissi ist entwickelt worden, um von Dritten weiterentwickelt zu werden. Die Software ist mit einer weit verbreiteten Skriptsprache und Datenbank erstellt worden. Wissi kann an vielen Stellen erweitert werden wie z.B. mit der Implementation von: − Abfragesprache für Suchverfahren − Hochladen mittels FTP − Verschlüsseln und Entschlüsseln der Daten bzw. Dokumente − Transferieren der Ordnerstruktur vom FTP-Server auf die lokale Festplatte 108 / 112 10. Literaturverzeichnis Abts, Dietmar / Mülder, Wilhelm (2004). Grundkurs Wirtschaftsinformatik. Eine kompakte und praxisorientierte Einführung. (5. Auflage). Wiesbaden: Vieweg. Bundesamt für Sicherheit in der Informationstechnik. BSI. Abrufbar im Internet. URL: http://www.bsi-fuer-buerger.de/index.htm. Bundesministerium für Wirtschaft und Technologie (Hrsg.) (2007). Wissensmanagement in kleinen und mittleren Unternehmen und öffentlicher Verwaltung. Ein Leitfaden. Berlin. Abrufbar im Internet. URL: http://www.bmwi.de/BMWi/Navigation/Service/publikation,did=208198.html. Stand: 27.03.2008. Castagnetto, Jesus / Rawat, Harish / Schumann, Sascha / Scollo, Chris / Veliath, Deepak (2000). Professional PHP Programming. (Reprinted Feb. 2000). Birmingham: Wrox Press Ltd. Claus, Volker / Schwill, Andreas (2006). DUDEN. Informatik A-Z. Fachlexikon für Studium, Ausbildung und Beruf. (4. Auflage). Mannheim et al.: Dudenverlag. Donskoj, Markus / Knäpper, Matthias / Perc, Primoz (2004). Anwendungsentwicklung unter Lotus Notes Domino 6.5. Konzepte, Technologien, Realisierung. München: Addison-Wesley. Edition W3C. Die W3C-Spezifikationen in deutscher Übersetzung und Kommentierung. Abrufbar im Internet. URL: http://www.edition-w3c.de. Stand: 05.02.2004 Enseleit, Damir / Kennengiesser, Matthias (2007). PHP 5. Praxishandbuch. Abrufbar im Internet. URL: http://www.selfphp.de/praxisbuch/index.php. Stand: 04.09.2007. Falk, Samuel (2007). Personalentwicklung, Wissensmanagement und Lernende Organisation in der Praxis. Zusammenhänge – Synergien – Gestaltungsempfehlungen. (2. Auflage). München et al.: Rainer Hampp. 109 / 112 Fröschle, Hans-Peter (Hrsg.) (2005). Wissensmanagement. Heft 246. Heidelberg: dpunkt.verlag Gerhards, Sandra / Trauner, Bettina (2007). Wissensmanagement. (3. Auflage). München: Hanser. Pocket Power. Heinrich, Lutz J. / Heinzl, Armin / Roithmayr, Friedrich (2007). Wirtschaftsinformatik. Einführung und Grundlegung. (3. Auflage). München: Oldenbourg. Hudson, Paul (2006). PHP. IN A NUTSHELL. A Desktop Quick Reference. Cambridge et al.: O'REILLY. Internet Engineering Task Force (IETF). Abrufbar im Internet. URL: http://www.ietf.org/ ister. Abrufbar im Internet. URL: http://www.ister.org/. Kannengiesser. Abrufbar im Internet. URL: http://www.selfphp.info/praxisbuch/index.php Kofler, Michael (2001). MySQL. Einführung, Programmierung, Referenz. München: ADDISONWESLEY. Krause, Jörg (2000). Grundlagen und Profiwissen. PHP 4. Webserver-Programmierung unter Windows und Linux. München et al.: Carl Hanser Verlag. Krcmar, Helmut (2005). Informationsmanagement. (4. Auflage). Berlin et al.: Springer. Lehner, Franz (2006). Wissensmanagement. Grundlagen, Methoden und technische Unterstützung. München et al.: Hanser. Maier, Ronald / Hädrich, Thomas (2001). Modell für die Erfolgsmessung von Wissensmanagementsystemen. In: Wirtschaftsinformatik, 43Jg., 5/2001, S. 497-509. 110 / 112 Microsoft, Visual Studio. Abrufbar im Internet. URL: http://msdn.microsoft.com/dede/vstudio/default.aspx. Stand: 2008 MySQL. Abrufbar im Internet. URL: http://dev.mysql.com/ Network Working Group. Request for Comments (RFC). Abrufbar im Internet. URL: http://www.rfc-editor.org/. Nexen Services. Abrufbar im Internet. URL: http://www.nexen.net/. PHP FAQ. Abrufbar im Internet. URL: http://www.php-faq.de/. Schmitt, Christopher (2007). CSS Kochbuch. (2. Auflage). Köln: O'REILLY. SELFHTML. Abrufbar im Internet. URL: http://de.selfhtml.org. Stand: 01.03.2007, Version 8.1.2 Spona, Helma (2006). CSS-Praxisbuch. Der Weg zum pflegeleichten Web-Design. München: Markt+Technik. Vossen, Gottfried (2000). Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme. (4. Auflage). München et al.: Oldenbourg. Wikipedia. Abrufbar im Internet. URL: http://de.wikipedia.org. World Wide Web Consortium. Abrufbar im Internet. URL: http://www.w3.org. Stand: 04.08.2008 Yarger, Randy Jay / Reese, George / King, Tim (2000). MySQL & mSQL. Eine Datenbank für kleine und mittelgroße Unternehmen & Web Sites. (1. Auflage). Köln: O'REILLY. 111 / 112 11. Anhang 11.1 CD In der Ausarbeitung ist im Rücken ein CD-Fach mit einer CD vorhanden, die den folgenden Inhalt hat: Ordner Beschreibung Abbildungen Bilder, die in der Ausarbeitung genutzt werden Ausarbeitung Diplomarbeit im Word-, OpenOffice- und PDF-Format Datenbank grafisches Datenbankmodell, Abbildungen Fragebogen Fragebogen Olympus Organigramme Praesentation Präsentation Wissi Prototyp Wissi, Quellcode und Anleitungen 11.2 Eidesstattliche Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbständig und ohne fremde Hilfe verfasst habe und keine anderen als die angegebenen Hilfsmittel verwendet habe. Die Arbeit wurde in gleicher oder ähnlicher Form keiner anderen Prüfungsbehörde zur Erlangung eines akademischen Grades vorgelegt. Lüneburg, 31. August 2008 _____________________________ Sebastian Conrad 112 / 112