Umsetzung und Einführung einer

Werbung
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ü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ü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
Herunterladen