Diplomarbeit Thorsten Hagedorn

Werbung
Diplomarbeit
Konzeption und prototypische Entwicklung eines Systems zur
Unterstützung der Deployment-Prozesse in Lotus Notes
basierten Arbeitsumgebungen
Prof. Dr. Ludwig Nastansky
Wintersemester 2006/2007
Vorgelegt von:
Thorsten Hagedorn
Student der Wirtschaftsinformatik
Matrikelnummer 6176654
Zum Türkenplatz 30
59457 Werl
Inhaltsverzeichnis
II
Inhaltsverzeichnis
1
2
Einleitung .................................................................................................................. 1
1.1
Szenario und Motivation ................................................................................ 1
1.2
Zielsetzung ..................................................................................................... 2
1.3
Aufbau der Arbeit........................................................................................... 2
Thematische Einführung ......................................................................................... 4
2.1
2.2
2.3
2.4
Computer Supported Cooperative Work und Groupware .............................. 4
2.1.1
Computer Supported Cooperative Work ............................................ 4
2.1.2
Groupware .......................................................................................... 5
Extensible Markup Language....................................................................... 10
2.2.1
Historische Entwicklung .................................................................. 11
2.2.2
XML-Dokumente und ihre Struktur ................................................. 12
2.2.3
Programmierschnittstellen zu XML ................................................. 14
Softwareentwicklung .................................................................................... 15
2.3.1
Geschichte der Softwareentwicklung ............................................... 16
2.3.2
Die fünf Ebenen der Softwareentwicklung ...................................... 17
2.3.3
Modelle der Softwareentwicklung.................................................... 20
Deployment .................................................................................................. 25
2.4.1
3
Deployment Prozess ......................................................................... 25
Plattform IBM Lotus Notes/Domino .................................................................... 29
3.1
Allgemeine Konzepte ................................................................................... 31
3.2
Unterschiede zwischen Templates und Datenbanken .................................. 34
3.3
Designelemente unter Lotus Notes/Domino ................................................ 35
3.4
Standard Deploy Mechanismus von Lotus Notes/Domino .......................... 38
3.5
Extensible Markup Language unter Lotus Domino ..................................... 39
Inhaltsverzeichnis
4
Konzeption eines Systems zur Unterstützung der Deployment-Prozesse ......... 42
4.1
Problemanalyse............................................................................................. 42
4.1.1
4.2
4.3
Analyse der allgemeinen Deployment-Prozesse .............................. 42
Anforderungen an das neue System ............................................................. 47
4.2.1
5
III
Kernfunktionalitäten......................................................................... 49
Entwurf für die Erstellung einer solchen Software ...................................... 50
Prototypische Umsetzung ...................................................................................... 57
5.1
Umsetzung der Architektur .......................................................................... 57
5.2
Template- und Datenbankenverwaltung....................................................... 58
5.3
Anlegen von Templatedokumenten.............................................................. 60
5.4
Erstellen von Konfigurationsdokumenten .................................................... 61
5.5
Anlegen von Datenbankdokumenten ........................................................... 64
5.5.1
Erstellen von Datenbankdokumenten für vorhandene Anwendungen64
5.5.2
Erstellen von Datenbankdokumenten für neue Anwendungen ........ 65
5.6
Designaktualisierung vorhandener Datenbanken ......................................... 66
5.7
Anpassungsmöglichkeiten ............................................................................ 67
6
Zusammenfassung und Ausblick .......................................................................... 69
7
Quellenverzeichnis.................................................................................................. 71
Abkürzungsverzeichnis
Abkürzungsverzeichnis
ACL
Access Control List
ANSI
American National Standard Institute
API
Application Programming Interface
CD-ROM
Compact Disc read-only memory
COM
Component Object Model
CSCW
Computer Supported Cooperative Work
CSS
Cascading Stylesheet
DIN
Deutsche Industrie Norm
DOM
Document Object Model
DTD
Document Type Definition
DXL
Domino XML Language
DVD
Digital Versatile Disc
GCC
Groupware Competence Center
GML
Generalized Markup Language
HTML
Hypertext Markup Language
IBM
International Business Machines
ID
Identifikator
ISO
International Organisation for Standardization
IT
Informationstechnologie
KOS
Komponentenorientierte Softwareentwicklung
LDOM
Lotus Domino Object Modell
NOS
Notes Object Services
NSF
Notes Storage Facility
PC
Personal Computer
SAX
Simple API for XML
IV
Abkürzungsverzeichnis
SGML
Standard Generalized Markup Language
UNID
Universal ID
W3C
World Wide Web Consortium
WYSIWYG What You See Is What You Get
XML
Extensible Markup Language
XSD
XML Schema Definition
XSL
Extensible Stylesheet Language
XSL-FO
Extensible Stylesheet Language-Formating Objects
XSLT
Extensible Stylesheet Language Transformation
V
Abbildungsverzeichnis
VI
Abbildungsverzeichnis
Abbildung 1: Klassifikationsschema nach Unterstützungsfunktionen.......................................8
Abbildung 2: Zusammenhang von SGML, XML, HTML, CSS und DSSL ............................10
Abbildung 3: Die historische Entwicklung bis zur Extensible Markup Language ..................11
Abbildung 4: Baumstruktur eines XML Dokumentes..............................................................13
Abbildung 5: Wasserfallmodell................................................................................................21
Abbildung 6: Prototyping .........................................................................................................23
Abbildung 7: Spiralmodell .......................................................................................................24
Abbildung 8: Deployment Prozess...........................................................................................26
Abbildung 9: Drei Typen der Sicherheit ..................................................................................33
Abbildung 10: Ein Template kann Vorlage für mehrere Datenbanken sein ............................35
Abbildung 11: Beziehungen zwischen allgemeinen Design Elementen und Daten.................38
Abbildung 12: Vergleich XML und Domino Architektur........................................................40
Abbildung 13: Ändern von Domino Objekten per DXL..........................................................41
Abbildung 14: Architektur des zu erstellenden Systems mit Repository in der Zielumgebung
.......................................................................................................................50
Abbildung 15: Architektur des zu erstellenden Systems mit Repository in einer
Drittumgebung..................................................................................................51
Abbildung 16: Mechanismus zum Verteilen neuer Anwendungen..........................................53
Abbildung 17: Prozess zum Aktualisieren bestehender Anwendungen allgemein ..................54
Abbildung 18: Unterprozess zum Aktualisieren ohne Ausschluss von Designelementen.......55
Abbildung 19: Unterprozess zum Aktualisieren bestehender Anwendungen unter Ausschluss
ausgewählter Designelemente ..........................................................................55
Abbildung 20: Architektur zur Implementierung von speziellen Funktionen..........................56
Abbildung 21: Einstiegspunkte zu den Kategorien ..................................................................58
Abbildung 22: Kategorisierung von Templates nach Server....................................................59
Abbildung 23: Verwaltung von Datenbanken ..........................................................................59
Abbildungsverzeichnis
VII
Abbildung 24: Gemischte Ansicht mit Template-, Datenbank- und
Konfigurationsdokumenten ..............................................................................60
Abbildung 25: Form zum Erfassen von Templatedokumenten................................................61
Abbildung 26: Form zum Erfassen von Konfigurationsdokumenten.......................................62
Abbildung 27: Defektes Konfigurationsdokument ..................................................................63
Abbildung 28: Ansicht mit fehlerhaftem Konfigurationsdokument ........................................64
Abbildung 29: Erstellen eines Datenbankdokuments...............................................................65
Abbildung 30: Vorgang zum Erstellen neuer Anwendungen...................................................66
Abbildung 31: Vorgang zum Aktualisieren von Anwendungen ..............................................67
Abbildung 32: Architektur für Anpassungsmöglichkeiten.......................................................68
Tabellenverzeichnis
VIII
Tabellenverzeichnis
Tabelle 1: Raum-Zeit-Matrix mit Groupware-Typen und Werkzeugen ....................................5
Tabelle 2: Standardarten des Domino Servers und ihre Funktionalitäten ................................30
Tabelle 3: Designelemente von Lotus Notes/Domino..............................................................37
Tabelle 4: Vergleich der Aktivitäten beim Deployment zwischen dem allgemeinen
Deployment Prozess und dem Standard Lotus Notes/Domino Deployment Prozess
................................................................................................................................46
1 Einleitung
1
1 Einleitung
1.1 Szenario und Motivation
„Die Technik verändert sich heute so rasant, daß es nur einen Weg gibt, den vollen Nutzen
einer Software auszukosten, bevor sie bereits wieder überholt ist: Nehmen Sie ein Taxi vom
Computerladen bis nach Hause!“
Robert "Bob" Orben (*1927)
Das Zitat von Robert „Bob“ Orben besitzt heute mehr Gültigkeit denn je. Die Schnelllebigkeit
im Bereich der Technik und Computerentwicklung nimmt immer mehr zu. Dinge, die heute
angeschafft werden, können morgen schon veraltet sein. Das trifft auch auf Software zu, die
auf immer hochleistungsfähigeren Computern eingesetzt wird und der sich durch die immer
höhere Leistungsfähigkeit immer mehr Möglichkeiten bieten Anwendungen noch effizienter
und besser zu gestalten. Außerdem bietet die ständige Weiterentwicklung Möglichkeiten neue
Bereiche in der Softwareentwicklung zu erschließen, wie zum Beispiel die Vorhersage komplexer Wettervorhersagen.
Diese immer leistungsfähigere Technik unterstützt Unternehmen bei ihrem Drang nach Globalisierung. Die Kommunikation zwischen den weltweit angesiedelten Niederlassungen wird
durch immer effizientere Technik ständig weiter verbessert. Es begann alles mit der Papier
basierten Kommunikation, danach wurden Techniken und Geräte, wie Telegraphie, Fernschreiber und Faxgeräte eingesetzt. Die wohl wichtigste Erfindung war das Internet in den
90er Jahren. Ab diesem Zeitpunkt gab es kein Halten mehr und jeder Brief war mit einem
Knopfdruck, per E-Mail, an das andere Ende der Welt verschickt.
Es blieb aber nicht bei der reinen Kommunikation, sondern es gab immer neue Anforderungen und Wünsche, wie der Ruf nach IT gestützter kooperativer Arbeit von Mitarbeitern aus
der ganzen Welt. Dies war mit den vorhandenen Technologien nicht optimal zu bewerkstelligen. Aus diesen Anforderungen ergab sich die Notwendigkeit neue Konzepte zur vernetzten
Zusammenarbeit zu entwickeln. Eines dieser Konzepte ist der Groupware-Lösungsansatz, der
zum Ziel hat Mitarbeiter bei der Gruppenarbeit zu unterstützen.
Neben den eben geschilderten Problemen traten auch andere, ganz neue Herausforderungen
auf, denen es galt sich zu stellen. Durch global agierende Konzerne und deren weltweit ver-
1 Einleitung
2
netzte IT-Systeme ist es für Administratoren sehr schwer geworden den Überblick über die
gesamte Softwarelandschaft zu behalten. Vor allem die Installation und Aktualisierung erforderten eine systemweit integrierte Deploymentstrategie. Häufig kommt es vor, dass Niederlassungen und teilweise sogar einzelne Abteilungen und Arbeitsgruppen eine eigene
Installation einer Software bekommen. In solchen Fällen muss viel organisatorische Vorarbeit
geleistet werden, um dies zu bewerkstelligen. Besonders bei Software Aktualisierungen muss
ein Überblick über die bestehenden Installationen vorhanden sein.
Große weltweit operierende Konzerne haben Lotus Notes als Kommunikations- und Groupware-Plattform im Einsatz und müssen sich mit diesen Aufgaben alltäglich befassen. Bezogen
auf Lotus Notes basierte Anwendungen existieren in der Literatur bislang nur wenige Ansätze, wie diese Probleme zu lösen sind. Dabei ist gerade auch Lotus Notes/Domino mit seiner
verteilten Client-Server Architektur eine Plattform, auf die oben beschriebene Problematik
zutrifft.
1.2 Zielsetzung
Die vorliegende Arbeit soll die geschilderte Problematik aufnehmen und einen Lösungsansatz
im Bereich Deployment unter Lotus Notes geben. Es ist Ziel der Arbeit sich mit dem Thema
Deployment auseinanderzusetzen und eine Architektur zu konzipieren, mit der es möglich ist
Deployment-Prozesse für Lotus Notes Anwendungen zu unterstützten. Dabei ist besonderes
Augenmerk auf die technischen Eigenschaften von Lotus Notes Datenbanken und deren
Designelemente zu legen. Unter Berücksichtigung der technischen Möglichkeiten von Lotus
Notes und der theoretischen Erkenntnisse über Deployment soll eine prototypische Entwicklung auf Basis der entwickelten Architektur den Abschluss der Arbeit bilden.
1.3 Aufbau der Arbeit
Nachdem Fragestellung und Zielsetzung der vorliegenden Arbeit aufgezeigt wurden, werden
im folgenden zweiten Kapitel grundlegende Begriffe wie Computer Supported Cooperative
Work, Groupware oder Deployment definiert und erläutert. Diese Definitionen bilden im
weiteren Verlauf die Basis der Ausführungen. Zusätzlich wird in diesem Kapitel der thematische Rahmen der Arbeit eingegrenzt.
1 Einleitung
3
Das dritte Kapitel widmet sich der Groupware Plattform Lotus Notes/Domino, die als Grundlage für die prototypische Entwicklung des Systems zur Unterstützung der DeploymentProzesse herangezogen wird.
Das Konzept für den im Rahmen dieser Arbeit entwickelten Prototyp wird schließlich im
vierten Kapitel vorgestellt. An dieser Stelle werden zuerst allgemeine Funktionalitäten untersucht, die ein Werkzeug mitbringen muss, das Deployment-Prozesse unterstützt. Anschließend werden diese Funktionalitäten analysiert und in Bezug auf das Einsatzgebiet im Bereich
Lotus Notes/Domino eingegrenzt und übertragen. Daraus ergeben sich die Grundlagen für die
Architektur des zu entwickelnden Prototyps mit seinen Kernfunktionalitäten.
Im anschließenden fünften Kapitel wird die Umsetzung des in Kapitel vier vorgestellten
Konzeptes betrachtet. Hier werden alle Eigenschaften und Funktionalitäten, die der entwickelte Prototyp besitzt, vorgestellt und im Hinblick auf ihre Umsetzung beschrieben.
Den Abschluss bildet das sechste Kapitel, das die vorliegende Arbeit nochmals zusammenfasst und einen Ausblick für weitere Forschungs- und Entwicklungsarbeit gibt.
2 Thematische Einführung
4
2 Thematische Einführung
Der Inhalt dieses Kapitels grenzt thematischen Rahmen der Arbeit ein. Dabei werden folgende Themen näher betrachtet. Als erstes wird auf die Thematik um Computer Supported Cooperative Work und Groupware eingegangen, bevor sich der Thematik der Extensible Markup
Language gewidmet wird. Als Dritter Punkt wird der Softwareentwicklungsprozess näher
betrachtet. Zum Schluss wird dann der Begriff Deployment thematisiert.
2.1 Computer Supported Cooperative Work und Groupware
2.1.1 Computer Supported Cooperative Work
Den Begriff Computer Supported Cooperative Work prägten Cashmann und Greif im Jahre
1984. 1 „Computer Supported Cooperative Work (CSCW) stellt ein interdisziplinäres Forschungsgebiet dar.“ 2 Dieses bildet mit seinen Theorien die Grundlage für Groupware Applikationen und wird „in der Literatur nahezu durchgängig als wissenschaftlicher Rahmen
beschrieben“ 3 . In der Forschung kann man CSCW nach Hasenkamp, Kirn und Syring in drei
eng miteinander verbundene Bereiche aufteilen: 4
•
Entwicklung eines Verständnisses der Zusammenarbeit und Koordination
•
Entwicklung von Konzepten und Werkzeugen zur Unterstützung der Zusammenarbeit
und Koordination und deren Prozesse
•
Bewertung dieser Konzepte und Werkzeuge
Das Ziel von CSCW ist es, mit Hilfe von Kommunikations- und Informationstechniken die
Zusammenarbeit von Menschen, z.B. innerhalb von Arbeitsgruppen und Teams, flexibler und
1
Vgl. [Greif 1988] S. 5ff.; zitiert in [Nastansky et al. 2002] S. 238 und vgl. [Teufel et al. 1995] S. 17.
2
Siehe [Nastansky et al. 2002], S. 238.
3
Siehe [Nastansky et al. 2002], S. 239.
4
Vgl. [Hasenkamp / Kirn / Syring 1994], S.15-16.
2 Thematische Einführung
5
effizienter zu gestalten. 5 Unterschiedlichste Wissenschaftsbereiche, wie Wirtschaftsinformatik, Arbeitswissenschaft, Psychologie und Kommunikationswissenschaft, liefern dazu Themen für das Forschungsgebiet, wodurch dessen Interdisziplinarität charakterisiert wird. 6
2.1.2 Groupware
Für den Begriff Groupware existiert in der Literatur keine eindeutige Definition. Nastansky et
al. beschreiben Groupware als Lösungen, die computergestützte Konzepte für Teamarbeit
bereitstellen. Besondere Beachtung sollte dabei der Unterstützung des Arbeitsflusses und des
Vorgangsmanagements in den vielfältigen Kommunikations- und Arbeitsinteraktionen zwischen Mitarbeiterinnen und Mitarbeitern im Office Bereich bzw. in Projektteams geschenkt
werden. 7 Die beiden Autoren Johnson und Lenz verwendeten 1982 als Erste den Begriff
Groupware und beschrieben damit ein Softwaresystem und die damit zusammenhängenden
Prozesse der Benutzergruppen.
Zusammenarbeit
Zur gleichen Zeit
Zu verschiedenen Zeit
Teammitglieder
(synchron)
(asynchron)
Am gleichen Ort
(lokal)
An verschiedenen Orten
(verteilt)
•
System zur computerunterstützten Sitzungsmoderation
•
Systeme zum Terminkalendermanagement für Gruppen
•
Präsentationssysteme
•
Projektmanagement-Systeme
•
Group Decision Support Systeme
•
Audio- und Videokonferenzsysteme
•
E-Mail-Systeme
•
•
Voice-Mail-Systeme
Screen-Sharing-Systeme
•
•
Mehrautorensysteme
System für Electronic Conferencing
•
Shared Information Systems
•
Workflow-Systeme
Tabelle 1: Raum-Zeit-Matrix mit Groupware-Typen und Werkzeugen 8
5
Vgl. [Nastansky et al. 2002], S. 238.
6
Vgl. [Nastansky et al. 2002], S. 239.
7
Vgl. [Nastansky et al. 2002], S. 239.
8
Vgl. [Johansen 1988], S. 44 und vgl. [Nastansky et al. 2002], S. 240.
2 Thematische Einführung
6
Bekannt geworden ist der Ausdruck Groupware erst später durch Johanson, der darunter
Applikationen, die kleine Arbeitsgruppen unterstützen sollen, versteht. 9 Er kategorisiert
Groupware-Applikationen in Bezug auf ihre zeitliche und örtliche Verteilung der Gruppenarbeit in einer Raum-Zeit-Matrix (siehe Tabelle 1).
Neben der Einteilung in die Raum-Zeit-Matrix „lassen sich Groupware-Applikationen nach
ihren elementaren Unterstützungsfunktionen gliedern.“ 10 Bei den Funktionalitäten wird
zwischen Kommunikations-, Kooperations- und Koordinationsfunktionalitäten unterschieden,
wobei diese Funktionalitäten eng miteinander verknüpft sind. 11 Dabei bildet die Kommunikation die Grundlage für die anderen beiden Funktionen - Kooperation und Koordination.
Kommunikation beinhaltet den Austausch von Informationen und Daten mit Hilfe verschiedenster Systeme, wie z.B. E-Mail oder Instant Messaging. Bei der Kooperation, die auf der
Dimension der Kommunikation aufsetzt, werden die Benutzer von Arbeitsgruppen bei der
Zusammenarbeit unterstützt. Dies geschieht mit Hilfe von Systemen, bei denen die Gruppenmitglieder auf einen gemeinsamen Datenbestand zurückgreifen und diesen beliebig verändern
und erweitern können. Hierbei spielt die Reihenfolge, in der die Benutzer den Datenbestand
verändern keine Rolle. Ein sequentieller Ablauf, wie er zum Beispiel bei E-Mail-Systemen
vorliegt, ist nicht zwingend erforderlich. Die Koordination schließlich ist verantwortlich für
eine effiziente Gruppenarbeit sowie für den optimalen Einsatz von Ressourcen. Um dies
umzusetzen, bedient sich die Koordination geeigneter Kommunikationsprozesse und setzt so
ebenfalls, wie die Kooperation, auf der Dimension der Kommunikation auf. 12
Auf der Grundlage der drei Dimensionen Kommunikation, Kooperation und Koordination
lassen sich folgende Systemklassen unterscheiden 13 :
9
•
Workflow Management
•
Workgroup Computing
•
Shared Information Space
•
Kommunikation
Vgl. [Nastansky et al. 2002], S. 239 und vgl. [Johansen 1988].
10
Siehe [Nastansky et al. 2002], S. 240.
11
Vgl. [Lotus 1995].
12
Vgl. [Nastansky et al. 2002], S. 240ff.
13
Vgl. [Teufel et al. 1995], S. 28.
2 Thematische Einführung
7
Diese Einteilung ermöglicht nun die Zuordnung von verschiedensten GroupwareAnwendungen zu den Systemklassen (siehe Abbildung 1).
Als Workflow wird eine zeitlich-strukturelle Aneinanderreihung von Teilaufgaben bezeichnet,
die zur Bearbeitung eines gesamten Vorganges nötig sind. 14 Die Teilaufgaben setzen sich
dabei aus verschiedenen Aktivitäten zusammen und werden durch unterschiedliche Ereignisse
ausgelöst. Workflow Management hingegen umfasst nach Dierker und Sander verschiedene
Aktivitäten, wie Analyse, Modellierung, Implementierung, Monitoring und Redesign. 15
Workflow Management Systeme sind letztendlich die computergestützten Anwendungen, die
alle Aktivitäten vereinen und die arbeitsteiligen Prozesse und Vorgänge steuern. Bei
Workflow Management Systemen lassen sich drei Arten von Systemen unterscheiden. Als
erstes seien hier die Transaktions Workflow Management Systeme genannt. Diese zeichnen
sich durch eine hohe Regelgebundenheit aus. Die Bearbeiter sind hierbei weitestgehend
fremdgesteuert und haben auf Grund der im Voraus definierten Vorgänge und Abläufe wenige Eingriffsmöglichkeiten. Als zweites sind die Ad-hoc Workflow Management Systeme zu
nennen. Diese Systeme sind im Gegensatz zu den transaktionsorientierten Systemen wesentlich flexibler einzusetzen, da sie weniger stark regelgebunden sind. Diese Systeme unterstützen weniger komplexe und unstrukturierte Aufgabenstellungen. Die einzelnen Workflows
können vom Anwender selbst definiert werden. Als dritte Art existieren Synergetische
Workflow Management Systeme. Diese Systeme bilden eine Zwischenform und können sowohl transaktionsgesteuerte als auch Ad-hoc basierte Workflows abbilden.
14
Vgl. [Nastansky et al. 2002], S. 243.
15
Vgl. [Dierker / Sander 1998], S. 110.
2 Thematische Einführung
8
Abbildung 1: Klassifikationsschema nach Unterstützungsfunktionen 16
Als Workgroup Computing Systeme werden Systeme bezeichnet, die Anwendern in Teams
eine gemeinschaftlich nutzbare computerbasierte Umgebung bieten und sie bei der Erfüllung
ihrer gemeinsamen Aufgaben unterstützen. Die Unterstützung von Kommunikation, Koordination, Treffen von Gruppenentscheidungen sowie die gemeinsame Bearbeitung von Objekten stehen dabei im Vordergrund. 17 Ein Beispiel für eine solche Umgebung ist z.B. ein mit
Informationstechnologie ausgestatteter Konferenzraum. Die Informationstechnologie dient in
diesem Falle der Mensch-Mensch-Kommunikation.
Die Systemklasse Shared Information Space bzw. ge meinsame Informationsräume beinhaltet
Groupware-Anwendungen, die nach Nastansky „der verteilten Nutzung von Informationen
dienen, und bei denen gemeinsame Informationsbestände als eine wesentliche Komponente
der Kommunikations-, Kooperations- und Koordinationsunterstützung zu betrachten sind.“ 18
Mit Hilfe von gemeinsamen Informationsräumen und deren Groupware-Anwendungen wer-
16
Siehe [Nastansky et al. 2002], S. 243.
17
Vgl. [Petrovic 1993], S.6.
18
Siehe [Nastansky et al. 2002], S. 247.
2 Thematische Einführung
9
den strukturierte und unstrukturierte Informationen zur verteilten Nutzung bereitgestellt und
diese für längere Zeit und in geeigneter Form gespeichert.
Kommunikationssysteme, wie E-Mail-Systeme oder verallgemeinert Messaging-Systeme,
dienen der elektronischen Nachrichten- und Dokumentenübermittlung, wobei MessagingSysteme eine Weiterentwicklung traditioneller E-Mail-Systeme darstellen. Diese Systeme
stellen einen grundlegenden Bestandteil von Groupware-Anwendungen dar und haben die
Aufgabe, den Informationsaustausch zwischen Teammitgliedern und Kommunikationspartnern außerhalb des Teams zu unterstützen und dabei Raum und Zeitdifferenzen zu überbrücken. 19
„Groupware ist nicht als ein einzelnes, konkretes Produkt, sondern vielmehr als ein Zusammenwirken unterschiedlicher Funktionalitäten zu sehen, welche die Operationalisierung der
computergestützten Teamarbeit in Office Umgebung ermöglichen.“20 Damit ist gemeint dass
Groupware selbst nicht als Anwendungen existieren kann. Der Begriff Groupware setzt sich
vielmehr aus verschiedenen Funktionalitäten zusammen. Nastansky et al. nennt in diesem
Zusammenhang folgende Funktionalitäten weist aber auch darauf hin, dass diese Aufstellung
nicht vollständig ist: 21
•
Verteilte Datenbankarchitektur und Replikation
•
Integrierte Teamkommunikation
•
Compound Documents
•
Dokumenten und Transaktionsmanagement
•
Sicherheits- und Zugangskonzepte
•
Entwicklungsumgebung
•
Integrationskonzept für heterogene Umgebungen der Informationstechnologie
19
Vgl. [Nastansky et al. 2002], S. 248f und vgl. [Teufel et al. 1995] S.28.
20
Siehe [Nastansky et al. 2002], S. 249.
21
Vgl. [Nastansky et al. 2002], S. 249ff.
2 Thematische Einführung
10
2.2 Extensible Markup Language
In diesem Kapitel wird eine kurze Einführung in die Extensible Markup Language, kurz
XML, gegeben. Da XML in Verbindung mit Lotus Notes/Domino für das später folgende
Konzept und die prototypischen Umsetzung relevant ist, sind Grundkenntnisse über XML
unerlässlich. Über die für die Arbeit erforderlichen Kenntnisse hinausgehende Einzelheiten
und Erläuterungen sind den in diesem Kapitel genannten Quellenangaben zu entnehmen.
„Die Extensible Markup Language (XML) ist eine Teilmenge von SGML, […]. Das Ziel ist es,
zu ermöglichen, generic SGML in der Weise über das Web auszuliefern, zu empfangen und zu
verarbeiten, wie es jetzt mit HTML möglich ist. XML wurde entworfen, um eine einfache
Implementierung und Zusammenarbeit sowohl mit SGML als auch mit HTML zu gewährleisten.“ 22
DSSSL
formatiert
& transformiert
SGML
HTML
definiert
XML
formatiert
CSS
XHTML
formatiert
& transformiert
XSL
XSLT
Auszeichnungssprachen
Formatierungs- und
Transformationssprachen
Abbildung 2: Zusammenhang von SGML, XML, HTML, CSS und DSSL 23
22
Siehe [XML 2000-1].
23
Vgl. [Behme / Mintert 2000], S. 23.
2 Thematische Einführung
11
2.2.1 Historische Entwicklung
Das Konzept von SGML stammt aus dem Jahr 1967, als William Tunnicliffe den Vorschlag
machte, Informationen von ihrer äußeren Form zu trennen. Das war die Geburtsstunde des
generic coding.
William Tunnicliffe (GCA)
Stanley Rice
1967
Norman Scharpf (Direktor
GCA)
generic coding
editorial structure tags
GenCode-Komitee
Goldfarb, Mosher, Lorie
(IBM)
1969
ANSI
Charles Goldfarb
1978
ISO
1986
SGML (ISO 8879)
Tim Berners-Lee (CERN)
1989
HTML
Marc Andreessen (NCSA)
1993
HTML-Formulare (XMosaic)
Netscape
Microsoft
1994
HTML-Abweichungen
Dave Raggett (W3C)
Håkon Lie (W3C)
W3C
(Jon Bosak (SUN)
James Clark et.al.)
GML
HTML
CSS
1997
XML
Abbildung 3: Die historische Entwicklung bis zur Extensible Markup Language 24
24
Vgl. [Behme / Mintert 2000], S. 36.
2 Thematische Einführung
12
Eine ähnliche Idee, die auf der gleichen Methode basiert, hatte zu der Zeit Stanley Rice. Zunächst nannte man das Prinzip editorial structure tags, später wurde daraus generic markup.
Als New Yorker Buch-Designer hatte er die Idee, Korrektur und inhaltliche Überprüfung von
Manuskripten vom Layout und den Design-Entscheidungen zu trennen. Später entwickelte
Norman Sharp das GenCode-Konzept mit einem eigens dafür gegründeten Komitee. 1969
entwickelten Charles Goldfarb, Edward Mosher und Raymond Lorie bei IBM die Generalized
Markup Language (GML). Die formale Definition eines Dokumententyps war erstmals in
dem Konzept von GML enthalten. 1978 wurde vom American National Standard Institute
(ANSI) ein Komitee gegründet mit der Aufgabe, eine standardisierte Textbeschreibungssprache auf GML Basis zu entwickeln. 1986 wurde unter dem ISO-Standard 8879 die Standard
Generalized Markup Language (SGML) veröffentlicht. 25 Auf Basis der Konstruktion von
SGML wurde im Februar 1998 die Version 1.0 der Extensible Markup Language offiziell
vom World Wide Web Consortium (W3C) freigegeben. Die aktuellste Version ist zurzeit die
Version 1.1 (zweite Auflage) vom 16. August 2006. 26
2.2.2 XML-Dokumente und ihre Struktur
Ein XML-Dokument ist ein Datenobjekt, in dem sich strukturierte und semi-strukturierte
Daten ablegen lassen. Der Inhalt eines Dokuments kann sowohl aus reinem Text als auch aus
Bildern, Videos etc. bestehen. XML-Dokumente weisen eine Baumstruktur auf, die sich im
Wesentlichen aus Elementen zusammensetzt. In der Literatur werden diese Elemente auch
häufiger als Entities bezeichnet. Solche Entities können sowohl Daten als auch andere Elemente enthalten. Darüber hinaus können einem Element zusätzliche Informationen, so genannte Attribute, mitgegeben werden. Das Element, das alle anderen Elemente enthält und
somit das oberste in der Hierarchie der Baumstruktur darstellt, nennt man Wurzelelement. Die
darunter liegenden Einheiten nennt man Unterelemente. Diese können Zweige oder Blätter
sein wobei ein Zweig noch weitere Unterelemente besitzt, ein Blatt nicht (siehe Abbildung 4).
27
25
Vgl. [Behme / Mintert 2000], S.35ff und vgl. [Goldfarb / Prescod 2000].
26
Vgl. [XML 2006-1].
27
Vgl. [Goldfarb / Prescod 2000], S. 68-69.
2 Thematische Einführung
13
Abbildung 4: Baumstruktur eines XML Dokumentes
XML besitzt, wie jede andere Sprache auch, eine Grammatik, die es einzuhalten gilt. Genügt
ein XML-Dokument der Grammatik, nennt man es wohlgeformt. Ein textuelles Objekt ist ein
wohlgeformtes XML-Dokument, wenn:
1. Es als Gesamtheit betrachtet mit der oben beschriebenen Struktur übereinstimmt.
2. Es alle Wohlgeformtheitsbeschränkungen, die vom W3C genannt werden, erfüllt.
3. Jedes seiner analysierten Elemente, das direkt oder indirekt referenziert wird, wohlgeformt ist. 28
Neben der Wohlgeformtheit bildet die Gültigkeit ein weiteres Kriterium für XMLDokumente. „Ein Dokument ist gültig, wenn in seiner Dokumententyp-Deklaration die Konformität mit einer DTD deklariert wird und es mit dieser DTD tatsächlich übereinstimmt.“ 29
Dokumententyp-Deklarationen, kurz DTD, beschreiben den strukturellen Aufbau und die
logischen Elemente einer Klasse von Dokumenten, die man Dokumententyp nennt. 30 Eine
DTD ordnet ein XML-Dokument einem Dokumententyp zu. Nicht alle XML-Dokumente
haben eine DTD, woraus sich aber nicht schließen lässt, dass diese dann keinem Dokumenten-
28
Vgl. [XML 2000-1].
29
Siehe [Goldfarb / Prescod 2000], S. 77.
30
Vgl. [Behme / Mintert 2000], S. 53.
2 Thematische Einführung
14
typ zugeordnet werden können. So kann es sein, dass sie lediglich keiner formal definierten
DTD entsprechen. Bei einer DTD handelt es sich um eine Schemasprache. Neben der DTD
existiert noch eine weitere Schemasprache, XML-Schema genannt. Das XML-Schema definiert ebenfalls eine Klasse von Dokumenten und ihre Struktur. 31 Erst im Jahr 2001 veröffentlicht, weist das XML-Schema gegenüber der DTD deutliche Vorteile auf. In einer DTD ist es
dem Programmierer nicht möglich, zwischen mehreren Datentypen zu unterscheiden - es
können ausschließlich Textdaten definiert werden. Des Weiteren entspricht eine DTD nicht
der Struktur von XML. Mit dem XML-Schema sind diese beiden Nachteile behoben worden,
so können in einem XML-Schema zulässige Datentypen definiert werden und die Struktur ist
XML konform.
Neben diesen beiden Sprachen existieren noch weitere, denen aber in der Praxis weniger
Bedeutung zu kommt und die daher an dieser Stelle vernachlässigt werden können.
Da in XML die Daten von der Darstellung getrennt werden, existieren neben den gewöhnlichen Datendokumenten noch Stylesheets. Im World Wide Web wird eine sehr einfache Stylesheetsprache verwendet. Diese trägt den Namen Cascading Style Sheets (CSS). Da diese
nicht ausreicht, um XML-Dokumente komplett zu beschreiben, hat das W3C eine ergänzende
Alternative zur CSS entworfen, die Extensible Stylesheet Language (XSL). Diese besteht aus
zwei Teilbereichen: Der erste Teil ist für die Formatierung zuständig und wird Extensible
Stylesheet Language – Formatting Objects (XSL-FO) genannt. Der zweite Teil ist die Extensible Stylesheet Language for Transformations (XSLT). Damit können XML-Daten in andere
XML konforme und nicht XML konforme Datenformate konvertiert werden.
2.2.3 Programmierschnittstellen zu XML
Programmierschnittstellen zu XML werden in der Regel durch Parser abgebildet. Ein Parser
liest das Dokument vollständig oder teilweise ein und zerlegt die Textdarstellung in eine
Reihe von begrifflichen Objekten. 32 Zusätzlich kann er anhand der DTD feststellen, ob ein
Dokument gültig ist. Die beiden gängigsten XML-Parser sind das Document Object Model
31
Vgl. [XML 2001-1].
32
Vgl. [Goldfarb / Prescod 2000], S. 81.
2 Thematische Einführung
15
(DOM) und die Simple API for XML (SAX). Beide Parser sind in allen gängigen Programmiersprachen implementiert und können so genutzt werden.
Das DOM ist vom W3C als Standard Application Processing Interface (API) für die Verarbeitung von XML vorgegeben worden. Der DOM-Parser liest zur Verarbeitung eines Dokumentes das ganze Dokument ein, bildet daraus eine Baumstruktur und legt diese im Speicher
ab. So sind alle Informationen schnell zugänglich. Die API des DOM bietet dem Anwender
zusätzlich Methoden zum Bearbeiten der Baumstruktur an, so können Elemente geändert,
hinzugefügt oder gelöscht werden. Der Nachteil des DOM liegt darin, dass es bei XMLDokumenten mit einer zu großen Dateigröße, es den Computer bei zu geringer Speicherkapazität zum Absturz bringen kann.
Der SAX-Parser hingegen geht „ereignisorientiert“ vor: Er liest nicht das ganze Dokument ein
und bildet daraus die Baumstruktur ab, sondern immer nur die Fragmente, die er gerade benötigt. Bei dieser Methode spielt die Größe der Dokumente eine untergeordnete Rolle, allerdings
gibt es auch hier einen Nachteil: sind in einem Dokument die benötigten Informationen stark
verteilt, so kommt es beim SAX-Parser zu Geschwindigkeitsproblemen, da hier immer erst
die richtigen Stellen im Dokument gefunden werden müssen.
2.3 Softwareentwicklung
Die Softwareentwicklung umfasst ein großes Gebiet an Aufgaben, Tätigkeiten und wissenschaftlichen Themen. Das Deployment von Software ist der Teilbereich der Softwareentwicklung auf den im Rahmen dieser Arbeit der Fokus gelegt wird (vgl. Kapitel 2.4). Darüber
hinaus gehört zu dieser Arbeit die prototypische Entwicklung einer Software, weshalb an
dieser Stelle eine kurze Einführung gegeben wird, was Softwareentwicklung bedeutet und
darüber hinaus werden deren Grundzüge erläutert.
2 Thematische Einführung
16
2.3.1 Geschichte der Softwareentwicklung
In der Vergangenheit waren Softwareprojekte mit hohen Erfolgsrisiken behaftet. Studien aus
den 70er Jahren ergaben, dass ca. 33% der damaligen Softwareprojekte scheiterten, und von
den erfolgreichen Projekten 85% ihre Kosten um 15% überschritten. 33 Gründe für das Scheitern bzw. die Kostenüberschreitungen dieser Projekte sind in den Tatsachen zu sehen, dass es
zu jener Zeit keinerlei Prozessmodelle oder Schätzmethoden gab. Auch Qualitätsmanagement
und Objektorientierung waren damals noch Fremdwörter. 34 Auch in späteren Jahren gab es
noch immer Misserfolge. So belegt eine Studie von 1994 der Standish-Gruppe 35 , dass von den
untersuchten Projekten 31% vor Fertigstellung abgebrochen wurden. Eine Verdoppelung des
ursprünglich geplanten Budgets gab es bei jedem zweiten Projekt. Ein Drittel der Projekte
konnte seine Projektziele nie erreichen und nur 16% wurden ohne Budget- und Zeitüberschreitung erfolgreich abgeschlossen.
In der heutigen Zeit ist die Erfolgswahrscheinlichkeit der Projekte angestiegen. Der CHAOSForschungsbericht der Standish-Gruppe aus dem Jahr 2004 weist positive Tendenzen aus,
allerdings ist er kein Aushängeschild für die IT-Branche. Auch wenn 29% aller untersuchten
Projekte erfolgreich beendet worden sind und nur 19% abgebrochen wurden, so haben 53%
die Budget und Zeitplanungen überschritten. Die positive Entwicklung ist auf zwei gegenläufige Trends zurückzuführen, die nach dem Jahr 2000 entstanden. Zum Einen wurden immer
kürzere Entwicklungszeiten für neue Softwareprojekte gefordert, was zu Vorgehensweisen
wie Extreme Programming 36 führte, zum Anderen erhielten einheitliche Realisierungs- und
Modellierungstechniken Einzug in die Softwareentwicklung. 37
33
Vgl. [Winter 2005], S. 3.
34
Vgl. [Winter 2005], S. 3.
35
Vgl. [Standish 1995], zitiert in [Winter 2005] S. 3.
36
Für weitere Informationen siehe [Beck / Fowler 2001].
37
Vgl. [Winter 2005], S. 5.
2 Thematische Einführung
17
2.3.2 Die fünf Ebenen der Softwareentwicklung
Die Herausforderung bei der Softwareentwicklung ist, dass viele verschiedene Anwendungsgebiete für Software existieren. Daraus resultieren ebenso viele Vorgehensmodelle für den
Softwareentwicklungsprozess. Frick hat diesen Prozess mit fünf Ebenen abstrakt dargestellt:
1. Analyse
2. Definition
3. Entwurf
4. Implementierung
5. Systemtest, Abnahme, Wartung . 38
Balzert wiederum teilt die letzte Ebene in zwei Ebenen auf, so dass hier eine eigene Phase für
die Abnahme sowie für die Wartung existiert. 39 In dieser Arbeit wird aber der fünfstufige
Prozess nach Frick betrachtet. Dieser und dessen Ebenen werden im Folgenden beschrieben.
Analyse
Die Analyse ist die erste Ebene und der Beginn eines jeden Softwareentwicklungsprozesses.
In dieser Phase wird die Durchführbarkeit einer Softwareproduktentwicklung geprüft. Dies
sollte zunächst mit möglichst wenig Aufwand geschehen, zum Beispiel in Form einer Vorstudie. 40 Fällt die Entscheidung auf der Basis der Vorstudie positiv für die Entwicklung aus, so
ist eine vollständige Analyse für die Entwicklung durchzuführen. Hierzu ist zunächst ein
Anforderungskatalog zu erstellen, der die Eckpunkte und Aufgaben enthält, die die Software
in ihrer neuen Umgebung abzudecken hat. Zusätzlich muss auf der Analyseebene der Entwicklungsaufwand festgestellt werden. Dazu existieren verschiedenste Kalkulationsmethoden 41 , auf die in dieser Arbeit aber nicht weiter eingegangen wird, da sie den Rahmen der
Arbeit sprengen würden. Mit diesen Fakten muss festgestellt werden, „ob die Anforderungen
38
Vgl. [Frick 1995], S. 34ff.
39
Vgl. [Balzert 2000].
40
Vgl. [Frick 1995], S. 35.
41
Für weitere Informationen vgl. [Bundschuh / Fabry 2004].
2 Thematische Einführung
18
umgesetzt werden können – sowohl von fachlicher (ist diese oder jene Forderung überhaupt
durchführbar?), ökonomischer, (kann man es bezahlen?) und in personeller Hinsicht.“ 42
Definition
Auf der Definitionsebene wird das Ergebnis der Anforderungsanalyse in eine „eindeutige,
konsistente und vollständige Anforderungsdokumentensammlung“ 43 umgesetzt. Dabei entsteht die Produktdefinition, die bereits Sachverhalte, wie Daten und Kontrollflüsse, beinhaltet,
die für die softwaretechnische Betrachtung relevant sind. Diese Form der Dokumentensammlung wird im Allgemeinen als Pflichtenheft bezeichnet. 44
Entwurf
In der Entwurfsphase werden die Ergebnisse der beiden vorhergegangenen Phasen als Ausgangspunkt betrachtet. 45 Auf dieser Ebene befasst man sich nicht mehr mit dem „was ist zu
tun“, sondern „wie ist es zu tun“. 46 Die Auswahl von Technologie und Architektur sind
Grundsatzentscheidungen für den weiteren Verlauf des Softwareentwicklungsprozesses, die in
dieser Phase getroffen werden. In dieser Phase sollten die Konstruktionsprinzipien der Implementierungsphase berücksichtigt werden, da diese auch im Entwurf modellierbar sein müssen.
Implementierung
Mit dem Entwurf aus der vorangegangenen Ebene wird in der Implementierungsphase ein
lauffähiges Softwareprodukt erstellt und getestet. Dazu hat man zwei Implementierungsstrategien zur Auswahl. Entweder man verfährt nach der Top-Down Vorgehensweise oder nach
der Bottom-Up Strategie. 47 Top-Down bedeutet, wie der Name schon sagt, dass das Software-
42
Siehe [Frick 1995], S. 35 und vgl. [Balzert 2000], S. 60ff.
43
Siehe [Frick 1995], S. 37.
44
Für weitere Informationen zum Pflichtenheft vgl. [Balzert 2000], S.111ff.
45
Vgl. [Balzert 2000], S. 686.
46
Vgl. [Frick 1995], S. 39.
47
Vgl. [Frick 1995], S.40.
2 Thematische Einführung
19
produkt immer von der obersten Ebene aus betrachtet und getestet wird. Der Vorteil bei dieser
Vorgehensweise ist, dass Fehler, die beim Entwurf gemacht worden sind, sehr schnell erkannt
werden. Dafür ist es allerdings sehr schwierig Testfälle für die Softwarearchitektur zu definieren, da die unteren Ebenen am Anfang der Implementierungsphase fehlen und bei Testfällen
simuliert werden müssen. Die Bottom-Up Strategie ist genau das Gegenteil der Top-Down
Vorgehensweise. Hier werden erst die unteren Architekturebenen implementiert. Daher lassen
sich hier sehr leicht Tests durchführen, allerdings werden Fehler im Entwurf erst recht spät
erkannt.
Systemtest, Abnahme, Wartung
Wie bereits erwähnt, sieht Frick 48 die Tätigkeiten des Systemtests, der Abnahme und der
Wartung in einer Ebene, während Balzert 49 diese nochmals in Abnahme- und Einführungsphase sowie Wartungs- und Pflegephase unterteilt. Die Arbeitsschritte sind allerdings bei
beiden vergleichbar beschrieben. In der Abnahmephase wird das Softwareprodukt inklusive
einer vollständigen Dokumentation an den Kunden übergeben. Das Programm wird einer
Reihe von Tests, wie Belastungstest, Stresstest etc. 50 , unterzogen und es wird ein Abnahmeprotokoll erstellt. Nach erfolgreicher Abnahme wird das Produkt anschließend beim Kunden
eingeführt und installiert. Die Entwicklung eines Prototyps ist, wie im Laufe der Arbeit noch
aufgezeigt wird, dieser Phase zuzuordnen und dient hier als Unterstützung. Nach der Inbetriebnahme der neuen Software geht das Produkt in „die längste Phase des Software-LebensZyklusses“ 51 , die Wartungs- und Pflegephase. Die Tätigkeiten und Aktivitäten in dieser letzten Phase lassen sich in vier Kategorien unterteilen: 52
•
Stabilisierung/Korrektur
•
Optimierung/Leistungsverbesserung
•
Anpassung/Änderung
•
Erweiterung
48
Vgl. [Frick 1995], S. 42ff.
49
Vgl. [Balzert 2000], S. 1086ff.
50
Für weitere Informationen zu den Tests vgl. [Bazert 2000], S. 1087.
51
Siehe [Frick 1995], S. 43.
52
Vgl. [Balzert 2000], S. 1090.
2 Thematische Einführung
20
In den Kategorien Stabilisierung/Korrektur und Optimierung/Leistungsverbesserung werden
korrektive Tätigkeiten an dem Softwareprodukt vorgenommen, während es sich in den Kategorien Anpassung/Änderung und Erweiterung um progressive Tätigkeiten handelt. Bei der
Stabilisierung/Korrektur werden Fehler behoben, die entweder bei der Entwicklung oder bei
vorherigen Korrekturen entstanden sind. 53 Unter Optimierung und Leistungsverbesserung
sind die Tätigkeiten zusammengefasst, die dazu dienen das entwickelte Produkt in seiner
Geschwindigkeit zu optimieren. 54 Funktionale Änderungen oder Änderungen, die durch neue
Systemsoftware erzwungen werden, fallen in die Kategorie der Anpassung. Änderungen bzw.
funktionale Ergänzungen, die geplant waren, aber bei der Entwicklung nicht berücksichtigt
werden konnten, sind in der letzten Kategorie angesiedelt. 55
2.3.3 Modelle der Softwareentwicklung
In der Theorie der Softwareentwicklung wurden im Laufe der Jahre verschiedene Modelle
entwickelt, mit deren Hilfe der Ablauf eines Softwareentwicklungsprojektes strukturiert und
beschrieben werden kann. In diesem Kapitel werden das Wasserfallmodell, Prototyping und
das Spiralmodell vorgestellt.
Wasserfallmodell
Das Wasserfallmodell (siehe Abbildung 5) stammt bereits aus dem Jahre 1970 und wurde von
W. W. Royce veröffentlicht. Ludewig und Lichter definieren das Wasserfallmodell wie folgt:
„Die Software-Entwicklung wird als Folge von Aktivitäten betrachtet, die durch Teilergebnisse (Dokumente) gekoppelt sind. Diese Aktivitäten können auch gleichzeitig oder iterativ ausgeführt werden. Davon abgesehen ist die Reihenfolge der Aktivitäten fest definiert, nämlich
(sinngemäß) Analysieren, Spezifizieren, Entwerfen, Codieren, Testen, Installieren, und Warten.“ 56 Die Aktivitäten sind in dem Schaubild als Rechtecke dargestellt, die Pfeile zeigen den
53
Vgl. [Balzert 2000], S. 1090.
54
Vgl. [Balzert 2000], S. 1091.
55
Vgl. [Balzert 2000], S. 1091.
56
Vgl. [Luewig / Lichter 2007], S. 147.
2 Thematische Einführung
21
Übergang zur Aktivität auf. In der Regel wird das Modell von oben nach unten durchlaufen,
da aber kein Projekt perfekt verläuft, gibt es Rückpfeile zur vorherigen Aktivität, um dort
gemachte Fehler zu korrigieren. Frick bezeichnet dies auch als „Top-Down gesteuertes JOJOVerfahren“. 57
Abbildung 5: Wasserfallmodell 58
Bei diesem Modell trat jedoch häufig das Problem auf, dass Zielsetzungen verfehlt wurden.
Dies lag an der Beteiligung unterschiedlicher Projektmitglieder an den einzelnen Aktivitäten,
die die Anforderungen der Anwender häufig unterschiedlich interpretierten. Zusätzlich konnte
57
Siehe. [Frick 1995], S. 46.
58
Siehe [Boehm 1988], Vgl. [Ludewig / Lichter 2007], S. 147 und vgl. [Frick 1995], S. 47.
2 Thematische Einführung
22
das Management diese Struktur nicht besonders gut überwachen, da es einen schlechten Einblick in die unteren Ebenen des Modells gestattet. Dies führte häufig zu Kostenexplosionen. 59
Prototyping
Die Idee des Prototyping wurde Mitte der neunziger Jahre entwickelt, um Probleme bestehender Modelle zu beheben. 60 Ziel beim Prototyping ist, es möglichst früh eine lauffähige Version der zu entwickelnden Software zu erhalten, den so genannten Prototypen. 61 Ludewig und
Lichter verstehen unter Prototyping eine „Vorgehensweise der Software-Entwicklung, bei der
Attrappen, die wir Prototypen nennen, entworfen, konstruiert, bewertet, revidiert werden.“ 62
Die Probleme, die mit Prototyping gelöst werden, können sind sehr schnell deutlich zu machen. In der Regel existieren für neu zu entwickelnde Softwareanwendungen wenig bis keine
ähnlichen Vergleichssysteme, weshalb die Aufgabe, sinnvolle Anforderungen an die Software
zu formulieren, äußerst schwierig ist und häufig wichtige Anforderungen vergessen werden.
Hieraus ergibt sich die Notwendigkeit, möglichst früh einen Prototypen zu erstellen, der
zunächst einen Teil der Anforderungen realisiert. 63 Ein solcher Prototyp hat drei Eigenschaften: 64
•
Ein Prototyp ist lauffähig
•
Ein Prototyp realisiert ausgewählte Aspekte des Zielsystems
•
Ein Prototyp wird vom Kunden geprüft und detailliert bewertet
Alle Anforderungen, die der Kunde am Prototypen akzeptiert, werden zu Anforderungen für
das zu entwickelnde System. Die Vorgehensweise bei der Prototypenentwicklung ist in
Abbildung 6 dargestellt. Hat die Entwicklung des Prototyps einen bestimmten Reifegrad
erreicht, so kann er als Pilot-Version die Grundlage für die weitere Entwicklung des neuen
Softwareproduktes bilden. 65
59
Vgl. [Ludewig / Lichter 2007], S. 157.
60
Vgl. [Frick 1995], S. 46.
61
Vgl. [Ludewig / Lichter 2007], S. 153ff und [Frick], S.46.
62
Siehe [Ludewig /Lichter 2007], S. 155.
63
Vgl. [Ludewig /Lichter 2007], S. 156.
64
Vgl. [Ludewig /Lichter 2007], S. 156.
65
Vgl. [Suhl / Blumstengel 2002], S. 328.
2 Thematische Einführung
23
Abbildung 6: Prototyping 66
Spiralmodell
Die Probleme der anderen Modelle sollten mit der Veröffentlichung des Spiralmodells nach
Boehm gelöst werden. 67 Bei diesem Modell wird der Fortschritt des Softwareentwicklungsprozesses durch eine Spirale dargestellt (siehe Abbildung 7). Es finden sich auch hier die
Ebenen wieder, die in Abschnitt 2.3.2 beschrieben wurden. Jeder Umlauf lässt sich mit einer
Ebene vergleichen. 68 Bei jedem Umlauf durchquert die Spirale die folgenden vier Quadranten: 69
•
Bestimmen der Ziele, Alternativen und Randbedingungen
•
Risiko-Analyse
•
Entwicklung und Validierung des Produktes
•
Planung der nächsten Phase
66
Vgl. [Ludewig / Lichter 2007], S. 169 und vgl. [Frick 1995], S. 49.
67
Vgl. [Boehm 1988].
68
Vgl. [Frick 1995], S. 48f.
69
Vgl. [Suhl / Blumstengel 2002], S. 329, vgl. [Frick 1995], S. 49 und vgl. [Boehm 1988].
2 Thematische Einführung
24
Bei der Entwicklung des Modells wurde auch das Prototyping berücksichtigt, das am zweiten
Quadranten bei jedem Durchlauf zum Einsatz kommt. Am Anfang des dritten Quadranten
wird der daraus entstandene Prototyp dann anhand von Simulationen und Benchmarktests
geprüft. Die Kostenseite des Softwareprojektes wurde ebenfalls bei dem Entwurf von Boehm
berücksichtigt. Die kumulativen Kosten werden auf der vertikalen Achse durch den Abstand
zum Mittelpunkt im jeweiligen Zeitpunkt dargestellt. 70
Abbildung 7: Spiralmodell 71
70
Vgl. [Suhl / Blumstengel 2002], S. 329.
71
Vgl. [Frick 1995], S. 46 und siehe [Boehm 1988].
2 Thematische Einführung
25
2.4 Deployment
In diesem Kapitel wird der Begriff Deployment definiert, anschließend wird der DeploymentProzess erläutert. Deployment heißt übersetzt soviel wie ‚Bereitstellung’ oder ‚Verteilung’.
Szyperskis allgemeine Definition von Deployment lautet: „Deployment ist the act of taking
components and readying them for productive use.“ 72 Diese Definition trifft genau den Kern
dieser Arbeit. Deployment bedeutet, dass fertige Komponenten oder auch Applikationen in
eine informationstechnologische Umgebung eingefügt werden, so dass sie im produktiven
Einsatz genutzt werden können. Ähnlich sehen es auch Emmerich und Wolf. Diese verstehen
unter Deployment alle Arbeitsschritte, die nach der fertigen Entwicklung einer Software
Komponente getan werden müssen, um diese einsatzfähig zu machen. Dies beinhaltet Aktivitäten, wie Anpassung, Konfiguration, Integration, Aktivierung, Deaktivierung sowie Außerbetriebnahme. 73 Diese Arbeitsschritte finden sich auch in dem zuvor beschriebenen Modell
des Softwareentwicklungsprozesses wieder. Das Deployment ist auf der fünften und letzten
Ebene (Systemtest, Abnahme, Wartung) angesiedelt. Nimmt man als Beispiel das WasserfallModell, so befinden wir uns da auf der vorletzten Stufe (siehe Abbildung 5). 74 Beim SpiralModell hingegen findet Deployment immer in der letzten Phase eines Zyklusses statt (siehe
Abbildung 7). 75
2.4.1 Deployment Prozess
Beim Deployment kann zwischen zwei grundsätzlichen Methoden unterschieden werden: dem
Verteilen einer komplett neuen Software und dem Aktualisieren einer bereits bestehenden
Software. Der Deployment Prozess selbst läuft allerdings in beiden Fällen gleich ab.
72
Siehe [Bishop 2002], Preface.
73
Vgl. [Emmerich / Wolf 2004] und vgl. [Deployment 2003], S. 3.
74
Vgl. [Lewis 1996], S. 207.
75
Vgl. [Lewis 1996], S. 207.
2 Thematische Einführung
26
Er besteht laut einer Veröffentlichung der Object Manage Group aus den folgenden fünf
Phasen (siehe Abbildung 8): 76
•
Installation
•
Konfiguration
•
Planung
•
Vorbereitung
•
Einführung
Installation
Konfiguration
- Software dem
- Standard Konfi-
Verteiler zur
guration der
Verfügung stellen
Software vor-
Planung
- Verteilung der
Software planen
Vorbereitung
- Zielumgebung
Einführung
- Software in der
der Software
Zielumgebung
vorbereiten
implementieren
nehmen und
ablegen
Abbildung 8: Deployment Prozess
Voraussetzungen
Um den Deployment-Prozess durchlaufen zu können, müssen die folgenden Voraussetzungen
erfüllt sein: Die Software Komponente muss fertig kompiliert sein und demjenigen, der die
Software-Komponente verteilen möchte, in adäquater Form vorliegen bzw. zur Verfügung
gestellt werden. Möglichkeiten, dies zu gewährleisten, sind zum Beispiel ein Web- oder FTPServer, über den man sich die Software herunterladen kann, oder ein Datenträger, wie eine
76
Vgl. [Deployment 2003], S. 3ff.
2 Thematische Einführung
27
CD-ROM oder DVD, der die Softwarekomponente enthält. Die Person, die die SoftwareKomponente verteilen möchte, wird im Laufe der weiteren Arbeit als Verteiler bezeichnet.
Eine weitere Voraussetzung ist, dass eine verteilte Umgebung existieren muss, im Folgenden
Zielumgebung genannt, in der die Software später verteilt werden soll. So eine Umgebung
könnte beispielsweise eine Client-Server-Architektur sein. Zusätzlich wird eine Sammelstelle,
im folgenden Repository genannt, für die zu verteilende Software benötigt. Im Repository soll
die Software abgelegt werden, bevor Entscheidungen zu treffen sind, wie die Software in der
späteren Zielumgebung einzusetzen ist. 77
Installation 78
Der Begriff Installation darf in diesem Zusammenhang nicht falsch verstanden werden. Die
Installationsphase ist nicht die Phase, in der die Software auf dem Computer veröffentlicht
wird, auf dem diese später genutzt und ausgeführt werden soll. Vielmehr ist in diesem Zusammenhang der Vorgang gemeint, in dem die fertige Software-Komponente in einem Repository abgelegt wird, auf das der Verteiler Zugriff hat.
Konfiguration 79
In dieser Phase liegt die Software noch im Repository. Es werden Standardeinstellungen an
der Software vorgenommen und hinterlegt. Es besteht die Möglichkeit, mehrere Grundeinstellungspakete zu hinterlegen, so dass je nach Situation das passende Paket für die Verteilung
und Bereitstellung der Software gewählt werden kann.
Planung 80
In der Planungsphase des Deploymentprozesses wird entschieden wie und wo die Software in
der Zielumgebung implementiert wird. Dabei spielen die Voraussetzungen der Software und
die zur Verfügung stehenden Ressourcen eine wesentliche Rolle.
77
Vgl. [Deployment 2003], S. 3.
78
Für den ganzen Absatz vgl. [Deployment 2003], S. 3.
79
Für den ganzen Absatz vgl. [Deployment 2003], S. 4.
80
Für den ganzen Absatz vgl. [Deployment 2003], S. 4.
2 Thematische Einführung
28
Vorbereitung 81
Während sich bei der Planung zunächst entscheidet Wie und Wo man die Software in der
Zielumgebung implementiert, versteht man unter der Vorbereitung alle Tätigkeiten an der
Zielumgebung selbst um die letzte Phase, die Einführung, zu ermöglichen. Zu diesen Tätigkeiten gehört zum Beispiel das Kopieren der Dateien auf die einzelnen Computer, auf denen
die Software später ausgeführt werden soll.
Einführung 82
Mit der Einführung wird der Deploymentprozess abgeschlossen. Dabei wird die Software auf
alle Computer in der Zielumgebung verteilt. Es werden alle Standardeinstellungen übernommen und weitere notwendige Anpassungen vorgenommen, um die Software auf allen Computern der Zielumgebung in einen ausführungsfähigen Zustand zu bringen.
81
Für den ganzen Absatz vgl. [Deployment 2003], S. 4.
82
Für den ganzen Absatz vgl. [Deployment 2003], S. 4.
3 Plattform IBM Lotus Notes/Domino
29
3 Plattform IBM Lotus Notes/Domino
Als Referenz für diese Arbeit wird die Plattform IBM 83 Lotus Notes/Domino 84 verwendet.
Diese Client/Server-Architektur ist ein klassischer Vertreter des Groupware-Konzeptes und
gehört seit Jahren zu den Marktführern in diesem Bereich. Zunächst werden Charakteristika
und spezifische Merkmale der Plattform herausgearbeitet.
Lotus Notes/Domino ist von Raymond Ozzie entwickelt worden, um es Studenten und Professoren in der ganzen Welt zu ermöglichen, sich mit Hilfe eines computergestützten Kommunikationssystems in Verbindung zu setzen. 85 Es vereint die Verarbeitung und das
Management wenig strukturierter Informationen in elektronischer Form in einem System.
Dabei nutzt das System dokumentenbasierte nicht-relationale Datenbanken. Eine der wichtigsten Eigenschaften von Lotus Notes ist, dass alle Inhalte in so genannten ‚Notes’ gespeichert werden. Dies bezieht sich sowohl auf die Daten als solche, als auch auf das Design der
jeweiligen Anwendungen.
In Bezug auf eine Serverlösung bietet die Lotus Notes/Domino Plattform den Domino-Server
an. Dieser besitzt die Möglichkeit, verschiedene Dienste bereitzustellen wie z. B. MailDienste, das Verwalten der Datenbanken und die Möglichkeit, den Domino-Server als WebServer fungieren zu lassen. Diese Dienste können entweder alle gemeinsam auf einem Server
genutzt werden oder die Domino-Server können speziell für die jeweiligen Dienste konfiguriert werden. Daraus ergeben sich drei standardisierte Möglichkeiten den Domino-Server bei
der Installation zu konfigurieren (siehe Tabelle 1). Die erste Möglichkeit bildet der DominoMessaging-Server, der die E-Mail Funktionalität bereitstellt. Zusätzlich unterstützt er kollaborative Anwendungen, wie Diskussionsdatenbanken und TeamRooms 86 , sowie persönliche
Datenbanken und die Möglichkeit, partitionierte 87 Server einzusetzen. Als zweite Möglichkeit
existiert der Domino-Utility-Server. Dieser ist als kollaborativer Server ausgelegt, so dass die
E-Mail-Funktionalität hier nicht zur Verfügung steht. Die Workflow-Funktionalität sowie die
83
Weitere Informationen zu IBM sind unter [IBM 2007-1] zu finden
84
Für weitere Informationen siehe [Lotus 2007-1].
85
Vgl. [Ebel 2006], S. 3.
86
TeamRooms sind virtuelle Arbeitsräume, die Anwender bei der kooperativen Arbeit unterstützen,
vgl. [Lotus 2005-5].
87
Für weitere Informationen siehe [Ebel 2006], S. 568ff.
3 Plattform IBM Lotus Notes/Domino
30
Möglichkeit der Partitionierung und des Clustering von Servern sind jedoch integriert. Als
dritte Möglichkeit existiert ein Domino-Enterprise-Server, der die Funktionalitäten des Messaging Server und des Utility Servers vereint.
Art
Funktion
Domino Messaging Server
-
E-Mail
-
kollaborative Anwendungen (Diskussionsdatenbanken, TeamRooms)
Domino Utility Server
Domino Enterprise Server
-
partitionierte Server
-
kollaborativer Server
-
Workflow
-
partitionierte Server, Clustering
-
E-Mail
-
Kollaborativer Server
-
selbst erstellte Anwendungen
-
partitionierte Server, Clustering
Tabelle 2: Standardarten des Domino Servers und ihre Funktionalitäten 88
Auf der Client-Seite wiederum, existieren zwei Optionen, mit einem Domino-Server zu
kommunizieren. Die erste Option erfolgt über den Webbrowser, wo ein so genannter ThinClient zum Einsatz kommt, die zweite über den nativen Lotus Notes Client, der auf jedem
Client-PC installiert werden muss. Diese zweite Variante wird auch als Fat- beziehungsweise
Rich-Client bezeichnet. Während die Möglichkeiten für den User mit dem Thin-Client beschränkt sind, bietet der Rich-Client alle Möglichkeiten, um die einzelnen Anwendungen zu
bedienen. Für die Administration und die Entwicklung stehen zwei eigenständige Werkzeuge
zur Verfügung. Der Lotus Domino Designer ist das Entwicklungswerkzeug, mit dem sich
88
Vgl. [Ebel 2006], S.29.
3 Plattform IBM Lotus Notes/Domino
31
nach dem WYSIWYG Prinzip Anwendungen entwickeln lassen. Die Administration kann mit
Hilfe des Lotus Domino Administrator Clients durchgeführt werden.
Auf Grund der Verwendung von Lotus Notes/Domino in dieser Arbeit werden an dieser Stelle
allgemeine Konzepte von Lotus Notes/Domino erläutert. Des Weiteren werden verschiedene
technische Hilfsmittel erklärt, die für das Werkzeug, das im Rahmen dieser Arbeit erstellt
wird (vgl. Kapitel 5), von Bedeutung sind.
3.1 Allgemeine Konzepte
Wie unter 2.1 schon erwähnt, sind Replikation, integrierte Teamkommunikation und Compound Documents sowie Sicherheits- und Zugangskonzepte typische Groupwarefunktionalitäten. Diese werden auch von der Groupware Plattform Lotus Notes/Domino unterstützt. Der
Zusammenhang wird im Folgenden verdeutlicht.
Zunächst wird auf die Eigenschaft eingegangen, dass Lotus Notes/Domino-Applikationen
nicht, wie vorher schon angedeutet, auf relationalen Datenbanken basieren, sondern dokumentenbasiert sind. „Nach Schätzung von Experten liegen nur 10-20% der gesamten Informationen eines Unternehmens in strukturierter Form vor und lassen sich in relationalen
Datenbanken ablegen“ 89 , der große Rest der Informationen ist unstrukturiert. Um diese besser handhaben zu können bietet sich Groupware an 90 . Die Datenbanken bilden das Grundkonzept von Lotus Notes. Alle Informationen werden dabei in Notes bzw. in Dokumenten
gespeichert. Im Sinne von Groupware nennt man diese Dokumente Compound Documents.
„Compound Documents enthalten als Container-Objekte strukturierte und unstrukturierte
Informationen“
91
. Laut Nastanstky et al. unterstützt Lotus Notes/Domino eine Architektur
semi-strukturierter „Compound Documents“ 92 . Die Daten und Informationen werden in
Feldern von Dokumenten gespeichert. Je nach Definition des Entwicklers können diese Felder
Text-, Zahlen- oder berechnete Werte enthalten. Diese Werte können dem Benutzer in ver-
89
Siehe [Nastansky et al. 2002], S. 254.
90
Vgl. [Nastansky et al. 2002], S. 254.
91
Siehe [Nastansky et al. 2002], S. 252.
92
Vgl. [Nastansky et al. 2002], S. 253.
3 Plattform IBM Lotus Notes/Domino
32
schiedener Art und Weise zugänglich gemacht werden. Zum Anzeigen der Daten werden
Forms verwendet, die als Schablone über die Dokumente gelegt werden. Eine Form enthält
Platzhalter, die ebenfalls als Felder bezeichnet werden. Es werden dem Benutzer aspektorientiert immer nur die Informationen angezeigt, bei denen die Feldnamen der Form mit dem
Feldnamen des Dokuments übereinstimmen. Der Benutzer kann die Dokumente über den
Webbrowser, sofern die Anwendung für das Internet freigegeben wurde, oder über den Lotus
Notes Client betrachten und bearbeiten. Wird der Lotus Notes Client verwendet, bietet sich
dem Benutzer die Möglichkeit, Datenbanken als lokale Replik zu speichern. Die Anwendungen des Domino-Servers können so ohne Verbindung zu einem Domino Server genutzt werden. Beim Prozess der Replikation wird ein Abbild der Datenbank auf der lokalen Festplatte
des Klienten abgelegt. Diese bekommt dann eine eindeutige Identifikationsnummer, die Replikations-ID. Damit zwei Datenbanken miteinander synchronisiert werden können, müssen die
Replikations-IDs der beiden Datenbanken übereinstimmen. Um ein höchstmögliches Maß an
Datenintegrität zu unterstützen, existieren Replikationsmechanismen 93 , die für den Abgleich
der Datenbanken sowohl unter den Servern als auch zwischen Client und Server verantwortlich sind. Dies entspricht auch dem, was Nastansky schreibt: „Leistungsfähige GroupwareSysteme verfügen über eine Architektur, die Client-Server-Konfigurationen und verteilte
Datenbanken unterstützt.“ 94
Die Replikation ist ein Mechanismus, bei dem Daten zwischen einem oder mehreren Speichermedien abgeglichen werden. Dieser Mechanismus wird auch bei verteilten Datenbanken
angewendet und garantiert so identische Daten in allen zugehörigen Datenbankrepliken.
Damit eine Datenkonsistenz gewährleistet ist, werden die Datenbanken regelmäßig abgeglichen. Es werden immer nur neue und geänderte Daten übertragen, wenn ein Rich-Client oder
Domino-Server mit einem Domino-Server repliziert. Dabei ist der Replikationsmechanismus
im Laufe der Zeit immer weiter verfeinert worden, so dass der Abgleich heute bis auf Feldebene hinunter geht. 95 Darüber hinaus bietet das Replikationskonzept unter Lotus Notes/Domino die Möglichkeit der selektiven Replikation. Eine Auswahl der zu replizierenden
Daten kann getroffen werden, so dass nicht alle Daten abgeglichen werden müssen. Dies hat
93
Vgl. [Nastansky et al. 2002], S. 250.
94
Siehe [Nastansky et al. 2002], S. 250.
95
Vgl. [Ebel 2006], S.53.
3 Plattform IBM Lotus Notes/Domino
33
Vorteile bei der Nutzung von großen Applikationen, da nicht jedes Mal das gesamte Datenvolumen übertragen werden muss.
Im Folgenden wird auf Sicherheitsaspekte von Lotus Notes/Domino eingegangen. Nastansky
et al. äußern sich zur Sicherheit von Groupware-Systemen wie folgt: „Da in Büroinformations- und Kommunikationssystemen wichtige interne Daten übertragen und gespeichert werden, bedürfen Groupware-Systeme differenzierter Zugriffs- und Sicherheitsmechanismen, die
allen an einem spezifischen Arbeitsprozess beteiligten Teammitgliedern den abgestuften
Zugriff auf die für sie relevanten Teilmengen der Informationen im Rahmen einer skalierbaren Zugriffskontrolle ermöglichen.“ 96 Lotus Notes/Domino als Groupware-Plattform bietet in
diesem Zusammenhang ein detailliertes Sicherheits- und Rollenkonzept. Grundsätzlich ist
dieses aufgeteilt in physikalische Sicherheit, Netzwerksicherheit und Notes-Sicherheit 97 (vgl.
Abbildung 9).
Abbildung 9: Drei Typen der Sicherheit 98
Die physikalische und die Netzwerk-Sicherheit beziehen sich hier auf die Hardware und
Umgebungskomponenten, die für diese Arbeit nicht relevant sind und daher an dieser Stelle
nicht näher behandelt werden. Die Lotus Notes Sicherheit befasst sich mit Mechanismen, um
Daten vor unbefugten Zugriffen von außen zu schützen, sowie insbesondere damit, Zugriffsrechte auf Daten so zu skalieren, dass verschiedene Anwendergruppen unterschiedliche Sich96
Siehe [Nastansky et al. 2002], S. 255.
97
Vgl. [Twomarek et al. 2004], S. 416.
98
Vgl. [Twomarek et al. 2004], S. 416.
3 Plattform IBM Lotus Notes/Domino
34
ten auf Daten bekommen können. Die Datenzugriffsrechte werden im Folgenden genauer
betrachtet, da diese zum Einen, wie oben schon angedeutet, ein Groupwaremerkmal bilden
und zum Anderen eine relevante Eigenschaft für das im weiteren Verlauf folgende Konzept
darstellen.
Lotus Notes/Domino erlaubt Entwicklern und Administratoren mit Hilfe von hierarchischen
Strukturen, auf mehreren Ebenen Zugriffsrechte zu definieren. Dabei reicht das Spektrum der
Rechtevergabe vom allgemeinen Zugriff auf den Server über den Zugriff auf Datenbanken bis
hin zur Rechtevergabe für verschiedene Designelemente, Dokumente und sogar einzelne
Felder in Dokumenten. Der Zugriff auf den Server basiert dabei auf leistungsfähigen LoginKonzepten, Namensverzeichnissen sowie Verschlüsselungskonzepten. 99 Der Benutzer authentifiziert sich beim Server mit seiner Benutzer-ID und dem darin enthaltenen Zertifikat. Beim
Zugriff auf die Datenbanken kommt die Access Control List (kurz ACL) zum Einsatz. Über
die ACL wird bestimmt, welche Personen, Personengruppen, Server, Server-Gruppen auf die
jeweilige Datenbank zugreifen und welche Aktionen dort ausgeführt werden dürfen. 100 Zusätzlich können in der ACL Rollen definiert werden, mit deren Hilfe der Zugang zu Informations- und Designelementen konfiguriert werden kann. 101
3.2 Unterschiede zwischen Templates und Datenbanken
Lotus Notes/Domino unterscheidet zwischen zwei Arten von Datenbanken: Lotus Notes
Datenbanken und Domino Schablonen Datenbanken oder kurz Templates. Die Lotus Notes
Datenbanken haben die Dateiendung „.nsf“ (Notes Storage Facility). Durch die Endung wird
auf die Aufgabe der Datenbanken verwiesen: die Möglichkeit Notizen aufzunehmen. 102 Diese
Notizen enthalten die Informationen und Applikationen, die dann in Lotus Notes/Domino
verwendet werden können. Templates besitzen im Unterschied dazu die Endung „.ntf“. Strukturell gesehen sind die beiden Datenbanktypen identisch, inhaltlich betrachtet, enthalten
Templates allerdings ausschließlich Design Elemente und Konfigurationsdokumente. Die
99
Vgl. [Nastansky et al. 2002], S. 255.
100
Vgl. [Kolm / Böck / Humpert 2002], S. 430.
101
Vgl. [Elliot 2007], S. 565.
102
Vgl. [Ebel 2006], S. 49-51.
3 Plattform IBM Lotus Notes/Domino
35
Anwendungsdatenbanken enthalten neben diesen zusätzlich die Dokumente, die von den
Benutzern mit Informationen versehen worden sind, und bilden somit die Anwendung selbst.
Die Kardinalität zwischen Templates und Datenbanken ist 1:n. Das bedeutet ein Template
kann als Vorlage für n Datenbanken gelten. (siehe Abbildung 10)
Master Database
„Template 1.0"
Discussion Forum
A
Discussion Forum
B
Discussion Forum
C
Discussion Forum
D
Inherit from:
„Template 1.0"
Inherit from:
„Template 1.0"
Inherit from:
„Template 1.0"
Inherit from:
„Template 1.0"
Abbildung 10: Ein Template kann Vorlage für mehrere Datenbanken sein 103
3.3 Designelemente unter Lotus Notes/Domino
Die Designelemente unter Lotus Notes / Domino spielen in dieser Arbeit eine primäre Rolle.
Daher werden diese im Folgenden genauer betrachtet. Designelemente sind unter Lotus Notes/Domino dafür verantwortlich, dass aus einem reinen Speichercontainer, der Datenbank,
eine vollwertige Applikation wird. Sie existieren in jeder Lotus Notes Datenbank und liegen
dort, wie vorher angedeutet, in Form von speziellen Dokumenten vor. Diese Dokumente sind
in der Regel für den „normalen“ Benutzer nicht zugänglich, außer er hat die benötigten Zugriffsrechte und einen Domino Designer Client. Denn nur mit dem Domino Designer können
Designelemente erstellt, bearbeitet oder gelöscht werden. Für den „normalen“ Benutzer liefern sie nur das Benutzer-Interface und die Logik der einzelnen Lotus Notes/Domino Anwen103
Vgl. [Elliot 2007], S. 600.
3 Plattform IBM Lotus Notes/Domino
36
dungen. In der Tabelle zwei sind die für diese Arbeit relevanten Designelemente, aufgeführt
und kurz beschrieben.
Design Element
Beschreibung
Frameset:
In einem Frameset können mehrere voneinander unabhängige
Seiten angezeigt werden. Jede Seite wird dabei in einem eigenen Frame dargestellt.
Mit einer Page können Informationen angezeigt werden. Im
Gegensatz zu einer Form, mit der Informationen gesammelt
werden, werden mit einer Page Informationen dargestellt.
Eine Form ist ein Gerüst, um Benutzer aufzufordern Informationen einzugeben. Dies kann entweder geschehen, indem sie die
Informationen eintippen oder durch einfaches Benutzen verschiedenster Knöpfe.
In einer View werden alle Dokumente, die in einer Domino
Datenbank gespeichert sind, aufgelistet. Sie kann als ein „Inhaltsverzeichnis“ einer Datenbank angesehen werden. Die
Informationen einer Zeile repräsentieren Informationen aus
einem einzigen Dokument. Die Spalten beinhalten Informationen oder Kombinationen von Informationen aus Feldern des
Dokumentes.
Mit Foldern können sinngemäß zusammenhängende Dokumente verwaltet und gespeichert werden. Außerdem können die
Dokumente per Drag and Drop in Foldern abgelegt werden. Das
Aussehen von Foldern ist das gleiche wie bei Views. Der
Hauptunterschied zwischen Foldern und Views ist, dass Views
eine Selektions-Formel dafür benötigen, welche Dokumente
dargestellt werden sollen, während Folder die in ihnen gespeicherten Dokumente automatisch anzeigen.
Mit Agents kann man verschiedenste Aufgaben in Domino
automatisieren. Sie sind eigenständige Programme, die spezielle
Aufgaben für den Benutzer erledigen (zum Beispiel Senden von
E-Mails, oder Ausfüllen und Speichern von Dokumenten).
Agenten sind die flexibelste Lösung, Programme in Lotus Notes
/Domino zu automatisieren, da sie von den Benutzern verwendet werden, aber auch im Hintergrund per Ereignis gestartet
werden können.
Eine Outline ermöglicht dem Benutzer, durch die Anwendung
zu navigieren.
Eine Subform bietet dem Entwickler die Möglichkeit, Teilbereiche einer Form auszugliedern und in einer Subform zu speichern. Diese können dann in anderen Forms wieder verwendet
werden.
Ein Shared Field gibt dem Entwickler die Option, Felder einmalig abzulegen und in mehreren Forms und Subforms wieder zu
verwenden.
Über eine Shared Action kann der Entwickler Actions zentral
speichern und wieder verwenden. Actions geben dem Benutzer
Page:
Form:
View:
Folder:
Agent:
Outline:
Subform:
Shared Fields:
Shared Actions:
3 Plattform IBM Lotus Notes/Domino
Script Libraries:
Images:
Applets:
Help Using Document:
Help About Document:
Data Connection:
37
die Möglichkeit, in Forms und Views mit der Anwendung zu
interagieren.
Script Libraries sind Program Code Bibliotheken, die für die
Lotus Script Programmierung hinterlegt werden können. Es
können eigene Klassen programmiert und gespeichert werden.
Alle programmierbaren Design Elemente, die in Lotus Script
programmiert sind, können auf die Script Libraries zugreifen.
Images können direkt in der Datenbank gespeichert werden.
Das ist ein hilfreiches Merkmal in Bezug auf das Kopieren und
Replizieren von Datenbanken auf verschiedene Server. Es
müssen keine Images einzeln von Server zu Server kopiert
werden, so dass die Anwendung anschließend einwandfrei
läuft.
Java Applets können ebenso wie Images in der Datenbank
gespeichert werden, so dass sie zentral verwaltet werden. Werden Veränderungen am Applet vorgenommen so muss dies nur
zentral an einer Stelle geschehen und die Änderungen werden
von allen Design Elementen verwendet, die dieses Applet benutzen.
Das Help Using Document ist ein spezielles Dokument in der
Datenbank, das Informationen darüber enthält, wie die Datenbank zu nutzen ist. Es gibt einen kleinen Überblick über die
Datenbank und kann zusätzlich spezielle Informationen über
Forms und Views der Datenbank enthalten.
Das Help About Document ist ebenso wie das Help Using
Document ein spezielles Dokument, das den Zweck der Datenbank beschreibt. Es kann beim Öffnen der Datenbank automatisch angezeigt werden.
Die Data Connection Ressource (DCR) gibt dem Entwickler die
Möglichkeit, mit Hilfe der Technologie des Domino Enterprise
Connector Services (DECS) Informationen aus externen Datenquellen, wie relationalen Datenbanken, zu verwenden und
anzuzeigen. Die Data Connection ist auch eine gemeinsame
Komponente - sie muss nur einmal eingerichtet werden, so und
kann dann wiederverwendet werden
Tabelle 3: Designelemente von Lotus Notes/Domino 104
Die Abbildung 11 gibt einen Überblick über die Beziehungen zwischen den Daten einer Notes
Datenbank und den allgemeinen Designelementen. Navigators können auf Daten zugreifen
und diese darstellen. Views greifen ebenfalls auf den Datenbestand zu, zeigen diesen jedoch in
Form von Documents an. Documents wiederum stellen Daten anhand von Fields dar. Agents
104
Vgl. [Tulisalo et al. 2002], S. 32-36 und [Lotus 2005-2]
3 Plattform IBM Lotus Notes/Domino
38
greifen auf Daten zu und können diese dann, je nach Wunsch des Programmierers, erstellen,
ändern oder gar löschen.
Abbildung 11: Beziehungen zwischen allgemeinen Design Elementen und Daten 105
3.4 Standard Deploy Mechanismus von Lotus Notes/Domino
Da sich diese Arbeit mit der Entwicklung eines Prototypen zur Unterstützung der Deploymentprozesse unter Lotus Notes/Domino befasst, soll an dieser Stelle ein kurzer Überblick
über die Standardmechanismen des Deployments unter Lotus Notes/Domino gegeben werden.
Wir betrachten hier die zwei Standardfälle, Software auszuliefern. Der erste Fall ist ein Software Update für eine bestehende Software, der zweite Fall besteht darin, neu angeschaffte
oder entwickelte Software auszuliefern. Es wird hier nur die Server-Seite betrachtet, denn die
Benutzer erhalten die Aktualisierungen, die auf dem Domino Server getätigt wurden, automatisch bei der nächsten Replizierung.
105
Vgl. [Elliot 2007], S. 35.
3 Plattform IBM Lotus Notes/Domino
39
Betrachten wir den ersten Fall, das Software-Update, sind dort zwei Verfahren möglich: Zum
Einen ein manuelles Verfahren, bei dem der Administrator oder Entwickler die Aktualisierung der Anwendung selbst auslöst, und zum Anderen ein auf dem Server automatisch angestoßener Aktualisierungsprozess. Der Administrator benutzt einen in Lotus Notes integrierten
Mechanismus, der das Datenbank Design aktualisiert. Bei diesem Mechanismus wird das
Design der Datenbank mit dem Design des Templates abgeglichen und alle Änderungen, die
im Template vorgenommen wurden, werden übernommen. Dies funktioniert nur dann, wenn
in den Datenbankeigenschaften das Design-Template eingetragen wurde. Den gleichen Mechanismus nutzt der Administrator beim manuellen Aktualisieren. Sollte das Design-Template
nicht in den Datenbankeigenschaften eingetragen sein, so kann der Administrator einen weiteren Mechanismus wählen, mit dem das Design ersetzt wird. Bei dieser Vorgehensweise werden nicht die vorhandenen Design-Elemente aktualisiert, sondern es wird das komplette
Design ersetzt. 106
Zum zweiten Fall, der Auslieferung der neuen Software, gibt es keinerlei Automatisierung,
der Administrator bzw. Entwickler muss den Prozess der Installation manuell anstoßen. Dies
bedeutet, dass der Administrator eine neue Datenbank anlegen und diese anschließend vollständig konfigurieren muss.
3.5 Extensible Markup Language unter Lotus Domino
Lotus Domino bietet seit der Version 6 eine Unterstützung für XML. 107 Im Lotus Domino
Umfeld wird im Allgemeinen von DXL (Domino XML) gesprochen. Die Daten werden strukturiert in Dokumenten gespeichert, XML ist eine Sprache, um Daten strukturiert abzulegen108 .
Diese Eigenschaft macht es Lotus Domino möglich, seine Daten ebenfalls in einer XML
konformen Struktur auszugeben. Ein weiteres gemeinsames Merkmal, das Lotus Domino mit
XML gemeinsam hat, ist, dass die Daten getrennt vom Design abgelegt werden. Unter Lotus
Domino werden die Daten in Dokumenten abgelegt und mit Hilfe von Forms dem User angezeigt. Bei XML ist es ähnlich, hier liegen die Daten im eigentlichen XML-Dokument und
106
Vgl. [Ebel 2006], S. 1081ff.
107
Vgl. [Lotus 2005-1], S.329ff.
108
Vgl. [Lotus 2005-3], S. 1 und [Morrison et al. 2000], S. 43.
3 Plattform IBM Lotus Notes/Domino
40
werden anschließend mit Hilfe eines XSL-Stylesheets angezeigt bzw. aufgewertet (vgl.
Abbildung 12).
Abbildung 12: Vergleich XML und Domino Architektur 109
Für Lotus Domino existiert eine detaillierte DTD, die die Struktur von DXL beschreibt 110 .
Die Daten von DXL sind also Lotus Domino Daten in XML-Form und der Struktur der Domino DTD.
Um Daten von Lotus Notes/Domino nach XML zu exportieren oder umgekehrt von XML
nach Lotus Notes/Domino zu importieren, bietet Lotus Notes zwei Ansätze: Lotus Script, eine
in Lotus Notes/Domino integrierte Scriptsprache, oder Java. Lotus Script weist insofern eine
Einschränkung auf, als die Sprache nur innerhalb der Applikation lauffähig ist, während mit
Java auch von außen über eine COM Schnittstelle von Lotus Notes/Domino auf die Daten
zugegriffen werden kann. Zum Bearbeiten der XML-Strukturen besteht die Option, die in
Lotus Notes/Domino integrierten DOM- und SAX Parser zu nutzen. Die Abbildung 13 zeigt
109
Vgl. [Morrison et al. 2000], S. 44.
110
Vgl. [Lotus 2005-4].
3 Plattform IBM Lotus Notes/Domino
41
anhand eines Beispiels, wie Domino Daten durch DXL geändert werden können. Zuerst
werden die Daten exportiert, dann bearbeitet und anschließend wieder importiert.
Abbildung 13: Ändern von Domino Objekten per DXL 111
111
Vgl. [Morrison et al. 2000], S. 57.
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
42
4 Konzeption eines Systems zur Unterstützung der DeploymentProzesse
In diesem Kapitel wird das Konzept beschrieben, auf dem der zu entwickelnde Prototyp basiert. Zuerst wird das bestehende Problem untersucht. Dazu werden die Eigenschaften von
Deployment im Allgemeinen und die bestehenden Möglichkeiten von Lotus Notes/Domino
analysiert. Basierend auf den Ergebnissen werden die Anforderungen für ein System definiert,
das die Deployment-Prozesse unter Lotus Notes/Domino unterstützt. Bei diesem Punkt wird
darauf eingegangen, wie die allgemeinen Eigenschaften von Deployment unter Lotus Notes
umgesetzt werden können. Zum Ende des Kapitels wird der Entwurf der Software erarbeitet,
so dass in Kapitel 5 die Implementierung der Software beschrieben werden kann.
4.1 Problemanalyse
Die Groupware Plattform Lotus Notes/Domino bietet standardmäßig nur einfachste Mittel an,
um neue Anwendungen in größere Umgebungen zu verteilen. Dazu kommt, dass es gerade in
verteilten Arbeitsumgebungen, die im Zusammenhang mit Groupware häufiger zu finden
sind, sinnvoll ist einen Überblick über die vorhandenen Anwendungen zu haben. Dies bezieht
sich vor allem darauf, in welchen Umgebungen die Anwendungen der verschiedenen Templates zu finden sind und wie viele produktive Instanzen, basierend auf einzelnen Templates,
existieren. So ist es erheblich leichter diese zu verwalten und im Bedarfsfall die Zusammenhänge zu erkennen.
4.1.1 Analyse der allgemeinen Deployment-Prozesse
Zunächst werden nochmals die Vorraussetzungen aufgegriffen, die in Kapitel 2.4 für den
allgemeinen Deployment-Prozess gelten:
•
Fertig programmierte und kompilierte Software
•
Verteiler muss die Software erhalten
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
•
Die Zielumgebung muss eine verteilte Umgebung sein
•
Es muss ein Repository existieren, in dem die Software abgelegt werden kann
43
Jetzt stellt sich die Frage, inwiefern die Standard-Möglichkeiten für Deployment von Lotus
Notes/Domino diese Vorraussetzungen bereits erfüllen.
Die erste Voraussetzung, dass die auszuliefernde Software ein fertiges Produkt ist, bedarf
keiner größeren Analyse, denn ohne ein fertiges Software-Produkt ist kein Deployment erforderlich. Da unter Lotus Notes/Domino die Templates mit ihren integrierten Programmcodes
nicht extra kompiliert werden müssen, ist auch diese Voraussetzung erfüllt. Der zweite Punkt
ist auch mehr ein organisatorisches als ein technisches Problem. Daher ist dieser Punkt auch
im Umfeld eines Software-Projektes zu klären und für dieses Konzept irrelevant. Punkt drei
ist ebenfalls durch Systemeigenschaften von Lotus Notes/Domino geklärt. Da Lotus Notes/Domino auf einer Client-/Server-Architektur basiert, ist auch diese Voraussetzung erfüllt.
Der vierte und letzte Punkt ist allerdings etwas schwieriger zu erläutern. Ein spezielles Repository, um das Softwareprodukt abzulegen, existiert nicht. Man könnte das Datenverzeichnis
des Domino-Servers eventuell als solches ansehen. In Bezug auf die Voraussetzung für das
Repository würde dies bei aktivierter automatischer Designaktualisierung auf dem DominoServer nicht zutreffen, da der Sinn des Repositories verfehlt würde. Das Softwareprodukt soll
im Repository abgelegt werden, damit Konfigurationen an diesem vorgenommen und Entscheidungen in Bezug auf die Verteilung und den Einsatz der Software getroffen werden
können. Grundsätzliche Voraussetzungen in Bezug auf den Deployment-Prozess sind also
gegeben. Der Punkt „Repository“ ist allerdings verbesserungswürdig.
Nachdem die Voraussetzungen von Lotus Notes/Domino für den Deployment-Prozess analysiert wurden, wird nun näher betrachtet, wie der Deployment-Prozess unter Lotus Notes/Domino umzusetzen ist. Dazu wird zunächst der Standard-Mechanismus für Deployment
unter Lotus Notes/Domino nochmals betrachtet, um zu sehen, welche Mängel oder vielleicht
auch Vorteile diese Vorgehensweise hat. Anschließend werden die Unterschiede zwischen
beiden Prozessen untersucht.
Die Vorgehensweise, um neue Datenbanken unter Lotus Notes/Domino auszurollen, ist nicht
sehr ausgeprägt, wie im Kapitel 3.4 beschrieben. Sobald die Entwicklung des neuen Softwareproduktes in Form von einem oder mehreren Templates abgeschlossen ist, wird die neue
Applikation in der Lotus Notes/Domino Zielumgebung auf einem Domino-Server abgelegt.
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
44
Auf dieser Basis werden manuell neue Datenbanken erstellt und diese dann ebenfalls durch
einen manuell angestoßenen Vorgang, der Replikation, auf die Clients verteilt.
Die Verteilung der Anwendungen auf die Clients ist aufgrund der einfachen Verteilung durch
die Replikation nicht der Gegenstand dieser Arbeit. Vielmehr ist die Auslieferung der Software aus einem Repository an den oder die Domino-Server in der Zielumgebung zu untersuchen.
Versucht man mit Hilfe der standardmäßigen Möglichkeiten von Lotus Notes/Domino diese
Vorgehensweise in die Phasen des allgemeinen Deployment-Prozesses Installation, Konfiguration, Planung, Vorbereitung und Einführung einzuteilen, kommt man zu folgendem Ergebnis (siehe Tabelle 4):
Installation
Da im eigentlichen Sinn kein echtes Repository existiert, würde diese Phase wegfallen. Man
könnte aber das Einspielen des Templates in das Datenverzeichnis eines extra als Repository
fungierenden Domino-Servers als Aktion in dieser Phase ansiedeln können.
Konfiguration
In dieser Phase können Konfigurationen an dem Template vorgenommen werden, die später
in die produktive Anwendung übernommen werden. Allerdings besteht hier keine Möglichkeit mehrere Konfigurationspakete für verschiedene Umgebungen zu hinterlegen, es sei denn
es würde für jede Umgebung eine Kopie des Templates angelegt.
Planung
In der Planungsphase soll nach dem Standard Prozess entschieden werden, wie und wo die
Software installiert wird. Das Wie kann durch den Replikationsmechanismus übernommen
werden. Das Wo, also die Zielumgebung, steht zu diesem Zeitpunkt auch schon fest. Hier
stellt sich dann vielmehr die Frage, wer darf später auf die Anwendung zugreifen. Auf diesem
Hintergrund können Rechte vergeben werden. Die Frage der zur Verfügung stehenden Ressourcen spielt an dieser Stelle ebenfalls eine eher untergeordnete Rolle. Wichtiger ist hier die
Frage, welche Server- und Client-Versionen von Lotus Notes/Domino in der Zielumgebung
als Mindestvoraussetzung benötigt werden und welche aktuell dort installiert sind.
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
45
Vorbereitung
Die Vorbereitung, wie zum Beispiel das Kopieren der Dateien von den Domino-Servern in
der Zielumgebung auf die einzelnen Client-PCs, ist unter Lotus Notes/Domino nicht erforderlich und wird durch den Replikationsmechanismus übernommen. Sofern man einen DominoServer als Repository verwendet, kann der Mechanismus auch verwendet werden, um die
Software aus dem Repository an die Domino-Server in der Zielumgebung zu verteilen. In
dieser Phase ist als Aktion vielmehr das Aktualisieren der Domino-Server- und ClientVersionen von Lotus Notes/Domino anzusiedeln, falls erforderlich.
Einführung
In dieser Phase wird die Anwendung auf den Domino-Servern und Client-PCs in der Zielumgebung in einen lauffähigen Zustand versetzt. Zusätzlich werden letzte Konfigurationen und
Einstellungen vorgenommen.
Aktivitäten in den einzel-
Standard Deployment-
Deployment unter Lotus
nen Phasen
Prozess
Notes/Domino
Installation
•
Software wird in dem Verteiler
•
in einem Repository zur Verfügung gestellt
Templates werden dem Verteiler übergeben
•
Es existiert kein echtes Repository
Konfiguration
•
Anwendung wird konfiguriert
•
Anwendung wird konfiguriert
•
Möglichkeit zum Speichern
•
Keine Möglichkeit zum
von Konfigurationspaketen
Ablegen von Konfigurationspaketen
Planung
•
Verteilung der Software in der
•
Zielumgebung planen
•
Ressourcen der Zielumgebung
Die Zielumgebung ist vorgegeben
•
überprüfen
Zugriff und Verteilung durch
Rechtevergabe einschränken
•
Server- und Client-Versionen
von Lotus Notes/Domino überprüfen
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
Vorbereitung
•
Vorbereitungen für das Aus-
•
rollen des Softwareproduktes
treffen, wie Kopieren der In-
46
Aktualisierung der Server und
Clients, wenn notwendig
•
stallationsdateien in die Ziel-
Keine explizite Verteilung
notwendig
umgebung
Einführung
•
Software einrichten
•
Software einrichten
•
Endkonfiguration herstellen
•
Endkonfiguration herstellen
•
Lauffähigen Zustand herstellen
•
Lauffähigen Zustand herstellen
Tabelle 4: Vergleich der Aktivitäten beim Deployment zwischen dem allgemeinen Deployment Prozess
und dem Standard Lotus Notes/Domino Deployment Prozess
Vergleicht man nun die beiden Prozesse miteinander, so sind einige Gemeinsamkeiten zu
entdecken, allerdings auch einige Unterschiede. Die Unterschiede werden im Folgenden
hervorgehoben und bilden die Grundlage für die Anforderungen an das System. Als erstes ist
an dieser Stelle zu nennen, dass unter Lotus Notes/Domino kein Repository existiert, um das
Softwareprodukt dem Verteiler bereitzustellen. Des Weiteren fehlt unter Lotus Notes/Domino
die Möglichkeit Konfigurationspakete zu speichern, um das Ausrollen und Verteilen der
Software in mehreren unterschiedlichen Zielumgebungen mit unterschiedlichen Konfigurationen zu ermöglichen. Die Aktivitäten und Aktionen im Bereich der Planung unterscheiden sich
gänzlich, weil sich die Aussagen für den allgemeinen Deployment-Prozess auf die Client-PCs
und deren Ressourcen-Ausstattung beziehen. Da beim Einsatz der Plattform Lotus Notes/Domino auf jedem Client-PC der Lotus Notes Client installiert ist, sind in der Regel auch
alle Anwendungen unter Lotus Notes auf diesen PCs lauffähig. Das gleiche gilt für die Serverseite. Voraussetzung ist, dass die Anwendung für die installierte Version des Lotus Notes/Domino freigegeben ist. Ist nicht der Fall, muss die Version der Lotus Notes/Domino
Software aktualisiert werden. Die Verteilung des Softwareproduktes an die Clients ist nicht
notwendig. Diese Funktionalität wird unter Lotus Notes/Domino vom Replikationsmechanismus abgedeckt. Allerdings muss, wie vorher schon angedeutet, die Software auf einen
Server in der Zielumgebung gelangen. Diese Aktion ist an dieser Stelle vorzunehmen. In der
letzten Phase existieren keine Unterschiede in den Aktionen, da in beiden Fällen der lauffähige Zustand in der Zielumgebung herzustellen ist.
Nachdem die Unterschiede und Differenzen der Deployment-Prozesse herausgearbeitet
wurden, werden an dieser Stelle spezielle Punkte der Plattform Lotus Notes/Domino in Bezug
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
47
auf Deployment untersucht, um weitere Schwachpunkte zu entdecken und diese später in die
Liste der Anforderungen aufnehmen zu können. Dazu wird folgender Fall eines SoftwareUpdates betrachtet: Es existiert eine Anwendung unter Lotus Notes/Domino, die auf einer
Standard-Software basiert. Dies bedeutet, dass alle Designelemente in allen Installationen
identisch sind. Da allerdings in einigen Fällen das Standard-Produkt nicht immer ausreichend
ist für den geplanten Einsatz, sind einige Designelemente in diesem Produkt verändert worden, und das Produkt ist mit diesen leichten Veränderungen in der produktiven Zielumgebung
zum Einsatz gekommen. Das Problem, das auftritt, wenn ein Softwareupdate unter Lotus
Notes/Domino für diese Software eingespielt werden soll, ist, dass bei einer Aktualisierung in
der Regel alle Designelemente angepasst werden. Dies würde bedeuten, dass beim Einspielen
eines vom Hersteller zur Verfügung gestellten Software-Updates, alle Änderungen überschrieben würden, die für den produktiven Einsatz vorgenommen wurden. Es gibt zwar die
Möglichkeit, wie in Kapitel 3.4 beschrieben, diese Aktualisierung der Elemente auszuschließen, das ist jedoch umständlich, da dies in jeder Installation der Software berücksichtigt und
manuell vorgenommen werden muss. Es wäre in diesem Zusammenhang hilfreich, wenn die
Einstellungen für die Designelemente bei einem Software-Update automatisch berücksichtigt
würden, besonders bei der Verwendung von mehreren Instanzen einer Software in verschiedenen Zielumgebungen.
Eine weitere Anforderung, die ein solches System mitbringen sollte, ist eine integrierte Datenbank- und Template-Verwaltung. Mit ihrer Hilfe sollte es dem Benutzer des Systems
erleichtert werden den Überblick über die vorhandenen Templates und die damit erzeugten
Anwendungen in den unterschiedlichen Umgebungen zu behalten.
4.2 Anforderungen an das neue System
Nachdem die Unterschiede zwischen dem Allgemeinen Deployment-Prozess und dem Standard-Deployment-Prozess unter Lotus Notes/Domino herausgearbeitet wurden, werden in
diesem Kapitel die Anforderungen an das neue System bzw. den Prototypen definiert. Diese
werden zunächst grob abgewogen und im Unterkapitel „Kernfunktionalitäten“ genauer beschrieben. Die erlangten Erkenntnisse bilden die Grundlage für die Anforderungen. Auf ihrer
Basis wird abgewogen, ob es sinnvoll ist, diese im zu erstellenden Prototypen zu berücksichtigen, bzw. die Unterschiede auszugleichen.
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
48
Angefangen bei den Unterschieden soll der Schwerpunkt zunächst auf der Installation und
dem fehlenden Repository liegen. Es ist sicherlich sinnvoll diese Funktionalität im neu zu
schaffenden Prototypen zu berücksichtigen in Bezug auf die besseren Möglichkeiten einer
vorherigen Konfiguration und der Widerverwendbarkeit, speziell wenn Anwendungen in
mehreren Zielumgebungen zum Einsatz kommen sollen. Des Weiteren können in einem
Repository mehrere Versionen einer Software abgelegt werden, so dass jederzeit ein Überblick über ältere Versionen vorhanden ist. Die Möglichkeit, Konfigurationspakete abzulegen,
fehlt unter Lotus Domino ebenfalls. Dies sollte im Prototypen berücksichtigt werden. Das
Beispiel mit mehreren produktiven Zielumgebungen ist auch hier zutreffend. Soll eine Anwendung in mehreren Zielumgebungen zum Einsatz kommen, macht es Sinn für jede Umgebung Konfigurationen in Bezug auf umgebungsspezifische Eigenschaften abzulegen, wie zum
Beispiel Serververbindung und Benutzerrechte. Als Ablage kann für die Konfigurationspakete
das Repository dienen. Der nächste gravierende Unterschied ist, dass unter Lotus/Domino in
der Planungsphase definiert werden muss, welche Clients bzw. Benutzer die Anwendung
später nutzen sollen. Dazu müssen Benutzerrechte definiert werden. Sollte eine Softwareinstallation anstehen, ist es sehr hilfreich wenn in diesem Zusammenhang auf vordefinierte
Pakete mit Benutzerrechten zurückgegriffen werden kann. Diese könnten ebenfalls im Repository gespeichert werden und auch als Basis für unterschiedliche Anwendungen dienen. Die
Überprüfung sowie Aktualisierung, wenn notwendig, der Domino-Server- und ClientVersionen von Lotus Notes in der Zielumgebung sind eher ein organisatorisches als ein technisches Problem und können in diesem Zusammenhang nicht berücksichtigt werden. Daher
sind für die Vorbereitungsphase keine zusätzlichen Anforderungen notwendig. Das Gleiche
gilt auch für die Einführungsphase. Da hier der lauffähige Zustand der Anwendung hergestellt
werden muss, sind die vorzunehmenden Einstellungen in der Regel sehr speziell und können
nicht mit Standardkonfigurationen abgedeckt und damit auch schwer automatisiert werden.
Nach der Abwägung der Unterschiede aus den Phasen zwischen dem allgemeinen Deployment und den Standard Möglichkeiten unter Lotus Notes/Domino werden im Folgenden die
speziellen Anforderungen von Lotus Notes/Domino betrachtet. Die Problematik, die im vorangegangenen Kapitel beschrieben ist, zeigte Nachholbedarf im Bereich der Designaktualisierung auf, speziell im Zusammenhang mit einzelnen Designelementen. Dieses Problem
sollte ebenfalls durch ein System gelöst werden, das Deployment unter Lotus Notes unterstützen soll.
Eine weitere Schwierigkeit ist, dass spezielle Vorgänge nicht abgedeckt werden können.
Dieses Problem haben in der Regel Anwendungen, die möglichst allgemein einsetzbar sein
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
49
sollen. Ein Beispiel ist, wenn zum Erstellen der Standardkonfiguration in den neuen Anwendungen zusätzlich Funktionen ausgeführt werden müssen, damit die Konfigurationen wirksam
werden. Solche Spezialfälle kann ein Standardprodukt normalerweise nicht abdecken. Daher
besteht Bedarf an einer Möglichkeit, diese Anwendung für spezielle Fälle anzupassen.
Nachdem die Anforderungen formuliert wurden, werden im folgenden Kapitel die daraus
resultierenden Funktionalitäten aufgezeigt und beschrieben.
4.2.1 Kernfunktionalitäten
Die Kernfunktionalitäten eines Systems, das Deployment-Prozesse unter Lotus Notes/Domino
unterstützt, sind auf der Basis der gerade getroffenen Anforderungen wie folgt zu beschreiben. Ein solches System muss ein Repository bereitstellen, in dem fertig entwickelte Anwendungen, in diesem Fall Templates, nach ihren Versionen abgelegt werden können. Außerdem
muss eine Möglichkeit existieren, unterschiedliche Konfigurationspakete zu den einzelnen
Versionen zu speichern. Diese Konfigurationspakete enthalten Standardkonfigurationen, die
verschiedene Grundeinstellungen für das System enthalten und für verschiedene Einsatzzwecke vordefiniert sind. Ein weiterer Punkt ist die Unterstützung von Rechtepaketen. Diese
sollen anwendungsübergreifend abgelegt und im Bedarfsfall den zu verteilenden Anwendungen zugeordnet werden können. Außerdem sollte ein Mechanismus existieren, der neue Anwendungen auf der Basis der Templates aus dem Repository in die Zielumgebung kopieren
kann sowie existierende Anwendungen mit neueren Versionen der Templates aktualisiert. Bei
der Aktualisierung von Anwendungen sollte das Problem mit den Designelementen, wie
vorher beschrieben, berücksichtigt werden. Dies bedeutet, dass bei einer Aktualisierung vorher ausgewählte Designelemente nicht angepasst werden. Zudem sollte das System eine
Verwaltung der Vorlagen und Anwendungen sowie die dazugehörigen Rechte und Konfigurationen ermöglichen. In diesem Zusammenhang sind besonders die Versionierung der einzelnen Elemente sowie der Speicherort der Datenbanken zu nennen, damit jederzeit auf die
Originale zugegriffen werden kann.
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
50
4.3 Entwurf für die Erstellung einer solchen Software
Auf der Basis der Anforderungen mit ihren Funktionalitäten wird in diesem Kapitel ein Entwurf für den zu erstellenden Prototypen vorgestellt. Dies geschieht unter Berücksichtigung
der technischen Möglichkeiten von Lotus Notes/Domino. Angefangen bei der Architektur für
einen solchen Prototypen (siehe Abbildung 14 und Abbildung 15) bietet es sich an, diesen auf
der Basis einer Datenbank abzubilden.
Abbildung 14: Architektur des zu erstellenden Systems mit Repository in der Zielumgebung
Diese Datenbank ist dann gleichbedeutend mit dem Repository für das Deployment und dient
als Speicherort für Dokumente, die Referenzen auf Templates enthalten. Ebenso wird mit den
Anwendungen verfahren. Auch diese werden als Referenz in der Datenbank abgelegt; als
Referenz deshalb, weil es größenbedingt durch die einzelnen Dateigrößen der Templates und
vor allem der späteren Anwendungen keinen Sinn machen würde, diese komplett in der Datenbank zu speichern. Außerdem ist es nicht sinnvoll die Anwendungen komplett zu spei-
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
51
chern, da sie sich in der produktiven Umgebung ständig verändern und nur mit viel Aufwand
im Repository auf einem aktuellen Stand gehalten werden können. Die Referenzdokumente
können die Verwaltung der einzelnen Vorlagen und Anwendungen sowie deren Versionierung ermöglichen. Die Konfigurations- und Rechtepakete werden ebenfalls in der Datenbank
gespeichert und sind den Vorlagen und Anwendungen zuzuordnen. Der Speicherort des Repositories spielt eher eine untergeordnete Rolle. Dieser kann identisch mit der Zielumgebung
(siehe Abbildung 14) sein oder sich in einer externen Lotus Notes/Domino-Drittumgebung
befinden (siehe Abbildung 15). Wichtig ist nur, dass später genügend Zugriffsrechte für die
Zielumgebung existieren, damit die neue Anwendung ordnungsgemäß bereitgestellt werden
kann.
Abbildung 15: Architektur des zu erstellenden Systems mit Repository in einer Drittumgebung
Auf Grund der automatischen Design-Aktualisierung der Domino-Server ist es empfehlenswert die Template-Datenbanken in einer externen Drittumgebung zu speichern.
Nachdem der Rahmen für eine Architektur aufgezeigt wurde, widmen sich die folgenden
Ausführungen den einzelnen Mechanismen zum Erstellen und Aktualisieren von Anwendungen. Wenn eine neue Anwendung erstellt werden soll, läuft ein Prozess ab, der wie folgt
beschrieben werden kann (siehe Abbildung 16). Am Anfang muss die Aktion zum Erstellen
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
52
der neuen Anwendung ausgelöst werden. Anschließend ist ein Template zu wählen, auf dessen Basis die Anwendung erstellt werden soll. Ist dies geschehen, stellt sich die Frage ob ein
Konfigurationspaket gewählt wird oder nicht. Unabhängig von dieser Entscheidung muss im
Anschluss entschieden werden, ob ein Rechtepaket verwendet werden soll. Sind beide Entscheidungen getroffen, wird die Anwendung in der neunen Zielumgebung bereitgestellt.
Abhängig von den Entscheidungen über Konfigurations- und Rechtepakete werden jetzt die
Konfigurationen und Rechte in die Anwendung übernommen. Zum Schluss wird das Dokument mit einem Link auf die Anwendung und Versionsnummer zur Verwaltung abgelegt.
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
Aktion neue
Anwendung erstellen
ausgelöst
Template wählen
Template gewählt
53
Konfigurationspaket
auszuwählen
XOR
Keine
Konfigurationspaket
gewählt
Konfigurationspaket
gewählt
Rechtepakete
auswählen
Rechtepakete
auswählen
XOR
XOR
Rechtepaket nicht
gewählt
Rechtepaket gewählt
Rechtepaket nicht
gewählt
Rechtepaket gewählt
Neue Anwendung in
Zielumgebung
erstellen
Neue Anwendung in
Zielumgebung
erstellen
Neue Anwendung in
Zielumgebung
erstellen
Neue Anwendung in
Zielumgebung
erstellen
Neue Anwendung
erstellt
Neue Anwendung
erstellt
Neue Anwendung
erstellt
Neue Anwendung
erstellt
Rechtedokumente in
die Anwendung
übernehmen
Konfigurationsdokumente in die
Anwendung
übernehmen
Konfigurations- und
Rechtedokumente in
die Anwendung
übernehmen
Rechtedokumente
übernommen
Konfigurationsdokumente
übernommen
Konfigurations- und
Rechtedokumente
übernommen
XOR
XOR
XOR
Anwendungsdokument im
Repository erstellen
Anwendungsdokument erstellt
Abbildung 16: Mechanismus zum Verteilen neuer Anwendungen
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
54
Im Fall einer Aktualisierung des Designs einer Anwendung hat der Benutzer, wie oben beschrieben, die beiden Optionen, das Design entweder vollständig oder teilweise unter Ausschluss gewählter Designelemente zu aktualisieren. Die Prozesse dazu sind in Abbildung 17,
Abbildung 18 und Abbildung 19 dargestellt. Abbildung 17 stellt den gesamten Prozess der
Aktualisierung dar, während in Abbildung 18 und Abbildung 19 die Unterprozesse beschrieben werden, in denen die eigentliche Aktualisierung des Designs durchgeführt wird.
Abbildung 17: Prozess zum Aktualisieren bestehender Anwendungen allgemein
Der gesamte Prozess beginnt mit der Auslösung der Aktion zum Aktualisieren des Designs
einer Anwendung. Als erstes muss eine Anwendung gewählt werden, die dann geladen wird.
Anschließend wird ein Template gewählt, das als Basis für die Aktualisierung des Designs
dient. Ist dies geschehen, wird das Template geladen und als Nächstes die Aktualisierungsmethode gewählt. Die Auswahlmöglichkeiten sind Designaktualisierung mit oder ohne Ausschluss von Designelementen. Ist die Entscheidung getroffen, wird die Aktualisierung,
abhängig von der Auswahl, durchgeführt. An dieser Stelle spaltet sich der Prozess und es wird
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
55
einer der beiden möglichen Pfade gegangen. Wurde die Option zur kompletten Designaktualisierung gewählt, wird der dazugehörige Unterprozess ausgeführt (siehe. Abbildung 18).
Abbildung 18: Unterprozess zum Aktualisieren ohne Ausschluss von Designelementen
In diesem Fall kann zur Aktualisierung die unter Notes zur Verfügung gestellte Standardfunktionalität genutzt werden, die das Design komplett aktualisiert. Wurde die Option zur partiellen Aktualisierung des Designs gewählt, wird der andere Pfad im Prozess eingeschlagen und
der Unterprozess zur partiellen Aktualisierung wird ausgeführt (siehe Abbildung 19). Bei
diesem Unterprozess müssen zuerst die Informationen über die ausgeschlossenen Designelemente gelesen werden und diese anschließend von der Aktualisierung ausgeschlossen werden.
Jetzt kann die Aktualisierung durchgeführt und damit der Unterprozess abgeschlossen werden. Die beiden Pfade werden wieder zusammengeführt, wenn das Design aktualisiert wurde.
Zuletzt muss noch die Versionsnummer im Anwendungsdokument des Repositories auf den
neuen Stand gebracht werden. Damit ist der Prozess der Designaktualisierung abgeschlossen.
Abbildung 19: Unterprozess zum Aktualisieren bestehender Anwendungen unter Ausschluss ausgewählter Designelemente
Nachdem die wichtigsten Prozesse, die sich dem Verteilen von Software widmen, beschrieben
wurden, sollen im Folgenden die Anpassungsmöglichkeiten für eine Anwendung betrachte
werden, um auf spezielle Fälle reagieren zu können. Hier bietet sich ein Mechanismus von
Lotus Notes/Domino an, der in Abbildung 20 dargestellt und wie folgt zu beschreiben ist. Es
existiert ein Template, in der Abbildung 20 als „Master-Template 1.0“ bezeichnet, das die
Standardfunktionalitäten für ein Repository enthält. Von diesem Template wird die produkti-
4 Konzeption eines Systems zur Unterstützung der Deployment-Prozesse
56
ve Version des Repositories erstellt. Die produktive Version hat als Aktualisierungsgrundlage
für spätere Designaktualisierungen das „Master-Template 1.0“ in den Eigenschaften eingetragen. Das „Master-Template 1.0“ wiederum hat als Aktualisierungsgrundlage ein weiteres
Template eingetragen, in der Abbildung 20 als „MT Erweiterungen 1.0“ bezeichnet, in dem
spezielle Funktionalitäten hinterlegt sind, die das Standard-Template erweitern. So kann das
Standard-Template um Funktionalitäten ergänzt werden ohne das es selbst verändert wird.
„Erweiterungsdatenbank“
Name: MT Erweiterungen 1.0
erweitert
„Repository-Template“
Name: Master Template 1.0
Template: MT Erweiterungen 1.0
„produktives
Repository“
aktualisiert
Template: Master Template 1.0
Abbildung 20: Architektur zur Implementierung von speziellen Funktionen
Damit sind die Architektur und die Prozesse der Funktionalitäten für ein System zur Unterstützung der Deployment Prozesse unter Lotus Notes/Domino beschrieben, so dass im folgenden Kapitel die prototypische Implementierung erläutert werden kann.
5 Prototypische Umsetzung
57
5 Prototypische Umsetzung
Dieses Kapitel beinhaltet die prototypische Umsetzung des Entwurfs aus Kapitel 4.3. Zunächst wird kurz auf die Architektur und die Umgebung des Prototyps eingegangen. Anschließend wird die Implementierung der geforderten Funktionalitäten in den Prototyp
genauer beschrieben. An dieser Stelle ist darauf hinzuweisen, dass nicht jede Anforderung
implementiert wurde, die Gründe sind im Kapitel 6 Fazit und Ausblick zu finden und werden
dort erläutert.
Als Testgrundlage für die Umsetzung dient der am Groupware Competence Center der Universität Paderborn, kurz GCC, entwickelte Knowledge Pool, im weiteren Verlauf K-Pool
genannt. Der K-Pool ist eine Lotus Notes Anwendung, die im Bereich Groupware anzusiedeln
ist.
5.1 Umsetzung der Architektur
Die Architektur ist aus dem Entwurf übernommen worden (siehe Abbildung 14 und
Abbildung 15). Das Repository wird durch eine Datenbank abgebildet, die Template-, Datenbank- und Konfigurationsdokumente enthält. Die Template- und Datenbankdokumente enthalten Links zu den Template- und Anwendungsdatenbanken. Dadurch wird zum einen die
Anwendung selbst nicht zu groß und zum anderen wird das im Entwurf beschriebene Problem, das bei der Aktualisierung der Daten entsteht, umgangen.
Im Prototyp sind weitestgehend alle Anforderungen, die in Kapitel 4.2 erarbeitet wurden
sowie die sich daraus ergebenen Funktionalitäten implementiert worden. Probleme traten
jedoch bei der Umsetzung der Anforderung zur partiellen Designaktualisierung auf, darauf
wird in Kapitel 6 näher eingegangen. Der Prototyp kann Templates und Anwendungen sowie
die dazugehörigen Konfigurationsdokumente verwalten. Ebenso ist das Verteilen und Aktualisieren der Anwendungen auf Basis der im Prototyp verwalteten Datenbanken möglich.
5 Prototypische Umsetzung
58
5.2 Template- und Datenbankenverwaltung
Die Applikation bietet dem Anwender eine übersichtliche Struktur über die zu verwaltenden
Templates und Datenbanken. Dazu existieren Ansichten, die die Datenbanken und Templates
nach verschiedensten Aspekten kategorisieren und so einen Überblick über die vorhandenen
Daten verschaffen. Diese Ansichten sind in die drei Oberkategorien (siehe Abbildung 21),
„Templates“, „Datenbanken“ und „Gemischt“ gegliedert. Zusätzlich gibt es zur Kontrolle eine
Ansicht „Alle Dokumente“.
Abbildung 21: Einstiegspunkte zu den Kategorien
Unter der Kategorie „Templates“ sind nur die Templates zu finden, die in der Anwendung
erfasst sind. Damit der Benutzer sich über diese einen Überblick verschaffen kann, sind die
Templates in verschiedenen Ansichten nach unterschiedlichen Aspekten kategorisiert:
•
Kategorie der Anwendung
•
Server auf dem das Template abgelegt ist
•
Version
Ein Beispiel ist in Abbildung 22 zu sehen. Dort werden die Templates nach Servernamen
kategorisiert, auf denen sie abgelegt sind. Zusätzlich findet man relevante Informationen, wie
den Namen, die Version und den Kategorienamen, zu dem das Template abgelegt wurde. Alle
Templates sind über die gesamte Anwendung hinweg mit dem Piktogramm
net.
gekennzeich-
5 Prototypische Umsetzung
59
Abbildung 22: Kategorisierung von Templates nach Server
Der Inhalt des Ordners Datenbanken stellt nur Ansichten dar, die ausschließlich Datenbankdokumente anzeigen. Diese sind genau wie bei den Templates in Kategorie, Server und Version gegliedert (siehe Abbildung 23). So kann der Anwender die Datenbanken gut
überschauen sowie schnell und zielgerecht darauf zugreifen.
Abbildung 23: Verwaltung von Datenbanken
Das Symbol
steht für die Einträge der Anwendungsdatenbanken und ist wie das Symbol
der Templates über die gesamte Anwendung einheitlich. Abschließend ist eine Rubrik implementiert worden, in der sowohl Templates und Datenbanken, als auch Konfigurationsdokumente angezeigt werden. In dieser Datenbank werden Zusammenhänge zwischen den
einzelnen Templates, den Datenbanken und den Konfigurationsdokumenten sichtbar.
5 Prototypische Umsetzung
60
Abbildung 24: Gemischte Ansicht mit Template-, Datenbank- und Konfigurationsdokumenten
In Abbildung 26 ist eine gemischte Ansicht dargestellt. Es sind auch die zuvor beschriebenen
Symbole für Datenbank- und Templatedokumente zu erkennen sowie das Symbol für Konfigurationsdokumente
. Hier werden die jeweils zusammengehörigen Dokumente in Katego-
rien dargestellt.
5.3 Anlegen von Templatedokumenten
Um den Prototyp sinnvoll als Anwendung nutzen zu können, müssen zunächst Templatedokumente eingepflegt werde, die Informationen über die zu verwaltenden Templates enthalten.
In Abbildung 25 ist ein solches Templatedokument dargestellt. Folgende Informationen werden benötigt, damit die gewünschte Funktionalität hergestellt werden kann:
•
Kategorie
•
Name
•
Version
•
Pfad
•
Server
•
Replikations-ID
•
Ob Konfigurationsdokumente zu dem Template abgelegt werden können
•
Template-Typ
5 Prototypische Umsetzung
61
Abbildung 25: Form zum Erfassen von Templatedokumenten
Beim Feld Kategorie kann man das Template einer bereits bestehenden Kategorie zuordnen
oder eine neue Kategorie eintragen und eröffnen. Das Feld Name wird automatisch durch den
Templatenamen gefüllt. Im Feld Version ist vom Benutzer die Versionsnummer des anzulegenden Templates einzutragen. Um den Link zur Template-Datenbank in das Templatedokument zu bekommen muss der Benutzer den Pfad zur Template-Datenbank eintragen. Hierzu
wird ihm ein Mechanismus zur Verfügung gestellt, der durch Auswahl der TemplateDatenbank automatisch den Namen, den Pfad, den Server und die Replikations-ID in das
Dokument einträgt. Außerdem besteht die Möglichkeit an dieser stelle zu erlauben, dass
diesem Template zu einem späteren Zeitpunkt Konfigurationsdokumente zugewiesen werden
können. Die letzte Einstellung, die der Benutzer in diesem Dokument vornehmen kann ist die
Auswahl des Template-Typs. Dies hat mit den in Kapitel 5.7 beschriebenen Anpassungsmöglichkeiten zu tun. Es wird an dieser Stelle ausgewählt, welche zusätzlichen Felder, die vorher
hinterlegt wurden, im Konfigurationsdokument angezeigt werden.
5.4 Erstellen von Konfigurationsdokumenten
Eine Anforderung an den Prototyp bzw. eine Software, die Deployment unterstützen soll, ist,
dass die Ablage von Konfigurationsdokumenten, bzw. Paketen möglich ist. Als erstes wird
auf die Dokumente eingegangen die angelegt werden müssen. Das Problem, das bei einer
Software auftritt, die andere Software organisieren soll, ist die Allgemeingültigkeit für die
Erfassung solcher Dokumente. Dies bedeutet, es kann nicht eine Maske zur Erfassung von
5 Prototypische Umsetzung
62
Konfigurationsdokumenten existieren, die für alle Anwendungen gültig ist. Als Beispiel
benötigt die eine Anwendung das Feld „Anschrift“ eine andere benötigt aber die Felder
„Strasse“ und „Hausnummer“. Es gibt die Möglichkeit an dieser Stelle eine dynamische
Lösung zu finden, die eine Eingabemaske nach Regeln erstellt. Allerdings müssten dann jedes
Mal, wenn in einer neuen Version der Anwendung ein Konfigurationsdokument geändert
wird, diese Regeln auch im Dokument angepasst werden. Dies bedeutet zusätzlichen Aufwand und eine Redundanz der Daten. Dieser Prototyp bietet eine andere Lösung: er liest
vorhandene Konfigurationsdokumente aus und speichert diese in dem Konfigurationsdokument. Deshalb muss mindestens eine konfigurierte Anwendung existieren. Der Mechanismus
bedient sich dabei an dem in Lotus Notes/Domino integrierten Mechanismus der Doc-Links.
Ein Doc-Link ist ein Link auf ein Dokument einer Datenbank. Mit Hilfe eines Doc-Links
kann ein Dokument eindeutig in einer Lotus Notes/Domino Umgebung identifiziert werden.
Abbildung 26: Form zum Erfassen von Konfigurationsdokumenten
In Abbildung 26 ist eine Form zum Erfassen von Konfigurationsdokumenten dargestellt. Es
ist zu erkennen, dass es zwei Abschnitte zum Erfassen gibt. Der obere Abschnitt „Konfiguration“ wird standardmäßig bei allen Konfigurationen eingeblendet. Der untere Abschnitt ist das
Ergebnis einer Anpassung, die für eine spezielle Datenbank, in diesem Fall den „K-Pool“,
vorgenommen wurde. An dieser Stelle wird abhängig von der Einstellung unter Template-Typ
5 Prototypische Umsetzung
63
im Templatedokument, der jeweilige Abschnitt mit Feldern dargestellt. Es werden folgende
Informationen zum Anlegen eines Standardkonfigurationsdokumentes benötig:
•
Kategorie
•
Name
•
Version
•
Doc-Link zum Original
Mit dem Feld Kategorie wird die Zuordnung in den Ansichten sichergestellt. Das Feld Name
soll das Konfigurationsdokument treffend beschreiben und einen Wiedererkennungswert
gewährleisten. Die Version der Anwendung sollte immer im Feld Version eingetragen werden
und gleichzeitig im Feld Doc-Link der entsprechende Doc-Link zum Original des Konfigurationsdokuments gespeichert werden. Anschließend kann das Dokument über die „Anlegen“Schaltfläche generiert werden. Hierbei werden alle Funktionen aus dem Originaldokument in
das neue Dokument übernommen.
Abbildung 27: Defektes Konfigurationsdokument
Sollte beim Erstellen ein Fehler auftreten wird dieser gemeldet. Das Konfigurationsdokument
wird als defekt gekennzeichnet und kann nicht verwendet werden. Diese Kennzeichnung ist
sowohl im Dokument (siehe Abbildung 27) durch einen großen roten Schriftzug zu erkennen,
als auch in der Ansicht (siehe Abbildung 28). Dort werden fehlerhafte Konfigurationsdokumente mit diesem
Symbol gekennzeichnet.
5 Prototypische Umsetzung
64
Abbildung 28: Ansicht mit fehlerhaftem Konfigurationsdokument
5.5 Anlegen von Datenbankdokumenten
Nachdem beschrieben wurde, wie Template- und Konfigurationsdokumente in der Anwendung erstellt werden können, wird in diesem Kapitel erläutert, wie die Datenbankdokumente
in der Anwendung zu handhaben sind. Es existieren zwei Möglichkeiten Datenbankdokumente zu erstellen. Die erste Möglichkeit ist für bereits existierende Datenbanken gedacht. Es
können auch Anwendungen, die bereits im produktiven Einsatz sind, in die Datenbank zur
Verwaltung und besseren Übersicht aufgenommen werden. Die zweite Möglichkeit ist das ein
Dokument für eine neue, zu verteilende Anwendung erstellt wird. Diese beiden Möglichkeiten
werden jetzt genauer beschrieben.
5.5.1 Erstellen von Datenbankdokumenten für vorhandene Anwendungen
Anwendungen, die bereits im produktiven Einsatz sind, können ebenfalls in das Werkzeug
aufgenommen werden. Dadurch hat der Benutzer einen besseren Überblick über seine Anwendungen und er hat zu einem späteren Zeitpunkt bessere Möglichkeiten Aktualisierungen
der Anwendungen durchzuführen. Um eine Anwendung aufzunehmen muss ein Datenbankdokument erstellt werden. Beim Erstellen wird gefragt, welchem Template das neue Dokument zugeordnet werden soll. Ist diese Auswahl erfolgt kann die Datenbank ausgewählt
werden, die in die Anwendung aufgenommen werden soll. Die sich anschließend öffnende
5 Prototypische Umsetzung
65
Form (siehe Abbildung 29) zeigt das Datenbank-Dokument mit den getroffenen Eingaben und
den Eigenschaften der hinzugefügten Datenbank. An dieser Stelle kann nun noch die Auswahl
getroffen werden, ob die zukünftigen Designaktualisierungen vollständig oder partiell erfolgen sollen. Wenn gewünscht kann auch noch eine kurze Beschreibung der Anwendung in das
Dokument aufgenommen werden. Durch das Speichern des Dokumentes wird der Vorgang
abgeschlossen.
Abbildung 29: Erstellen eines Datenbankdokuments
5.5.2 Erstellen von Datenbankdokumenten für neue Anwendungen
An dieser Stelle wird beschrieben, wie Anwendungen erstellt und verteilt werden können.
Dieses Funktionsmerkmal ist schließlich im eigentlichen Sinn als Deployment zu bezeichnen
und Schwerpunkt der Arbeit.
Der Mechanismus zum Verteilen neuer Datenbanken ist durch folgende Lösung in die Software implementiert worden (siehe Abbildung 30).
5 Prototypische Umsetzung
K
K
66
Abbildung 30: Vorgang zum Erstellen neuer Anwendungen
Das Repository enthält einen Link auf das Template, das die Basis für die neue Anwendung
bildet. Wird die Aktion zum Bereitstellen einer Anwendung ausgelöst, so wird im ersten
Schritt (1), mit Hilfe des Links aus dem Repository, das Template geladen. Als Zweites (2)
werden auf der Basis des Templates die neue Anwendungsdatenbank in der Zielumgebung
erstellt und die Konfigurationsdokumente in die Datenbank kopiert und dort gespeichert. Im
dritten Schritt (3) wird der Link auf die neue Anwendung zurückgegeben, damit in Schritt vier
(4) das Dokument für die Anwendung im Repository erstellt werden kann, inklusive dem
Link auf die Anwendungsdatenbank. Der Benutzer hat im letzten Schritt nochmals die festzulegen, ob die Anwendung in Zukunft vollständig oder partiell aktualisiert werden soll.
5.6 Designaktualisierung vorhandener Datenbanken
Zum Aktualisieren von Datenbanken existieren zwei Möglichkeiten: entweder es wird eine
vollständige Designaktualisierung durchgeführt oder das Design wird nur teilweise aktualisiert.
Die vollständige Designaktualisierung einer bestehenden Datenbank ist durch folgenden
Mechanismus abzubilden (siehe Abbildung 31). Der Benutzer wählt in Schritt eins (1) die
Anwendung, die aktualisiert werden soll und das Template mit dem neuen Design. Anschlie-
5 Prototypische Umsetzung
67
ßend wird in Schritt zwei (2) die Anwendung geladen. Danach wird dir Aktualisierung durchgeführt und die Datenbank wieder abgelegt (3). In Schritt vier (4) wird das Anwendungsdokument im Repository aktualisiert.
Domino Directory
Domino Directory
Transformation
Repository
T
DB
T
A
1
T
2
T
A
A
K
T
T
DB
DB
A
DB
4
3
A
Legende:
A
Anwendung
K
Konfiguration
Link
T
Template
Datenfluss
Abbildung 31: Vorgang zum Aktualisieren von Anwendungen
5.7 Anpassungsmöglichkeiten
Der Prototyp besitzt eine Möglichkeit zum Anpassen der Standardfunktionalitäten, wie es
vorher schon in Kapitel 5.3 erwähnt wurde. Diese Funktionalität soll es dem Benutzer erlauben die Standard-Funktionalitäten des Prototyps zu erweitern. Vorgesehen ist dies vor allem
für die Konfigurationsdokumente. Dies ist ebenfalls im vorhergehenden Text schon einmal
kurz angesprochen worden. Die Problematik, die im Zusammenhang mit Konfigurationsdokumenten existiert ist, dass diese in verschiedenen Anwendungen nie gleich sind. Dazu
kommt, dass bei der Konfiguration von Anwendungen teilweise Aktionen ausgeführt werden
müssen, die man nicht mit einem Standardprodukt abdecken kann. Dafür benötigt man Anpassungsmöglichkeiten um diesen Problemen gewachsen zu sein. Die Lösung dieses Problems ist in dem Prototyp wie folgt implementiert worden (siehe Abbildung 32). Es existiert
zum einen das Standard-Template, im folgenden Repository-Template genannt, welches die
Standard Funktionalitäten des Prototyps enthält. Zusätzlich existiert ein Erweiterungstemplate, das das Design des Repository-Templates erweitert. So können grundsätzlich alle Anpas-
5 Prototypische Umsetzung
68
sungen im Erweiterungstemplate vorgenommen werden, so dass das Repository-Template
unangetastet bleibt. Ein weiterer Vorteil ist das Erhalten der Anpassungen, wenn eine neue
Version des Repository-Templates ausgeliefert werden sollte. Wären in diesem Falle die
Anpassungen im Original-Template gemacht worden, so könnte es schwierig sein, diese
nachzuvollziehen und in das neue Template zu übertragen. Mit Hilfe des Erweiterungstemplate ist dies kein Problem, da die Anpassungen getrennt vorliegen und nur erneut in die neue
Version des Templates eingespielt werden müssen.
„Erweiterungstemplate“
Name: MT Erweiterungen 1.0
erweitert
„Repository-Template“
Name: Master Template 1.0
Template: MT Erweiterungen 1.0
„produktives
Repository“
aktualisiert
Template: Master Template 1.0
Abbildung 32: Architektur für Anpassungsmöglichkeiten
Um Anpassungen im produktiv eingesetzten Repository anzusprechen und zu verwenden
müssen drei Dinge beachtet werden. Als erstes existieren im Ordner Konfiguration Schlüsselwortlisten und Schlüsselworte. Es existiert eine spezielle Schlüsselwortliste mit dem Namen „Customized Datenbanken“ dort ist das Schlüsselwort für die Anwendung, für die
Anpassungen vorgenommen wurden, einzutragen. Zweitens existiert im Erweiterungstemplate
eine Script-Libary, bei der mit einer Abfrage die Anpassung abgefragt wird, an dieser Stelle
ist der entsprechende Code zu ergänzen, der ausgeführt werden soll. Als dritter und letzter
Punkt besteht die Möglichkeit über eine Subform die Konfigurationsdokumente zu erweitern.
Diese muss das Schlüsselwort aus der Liste als Namen eingetragen haben, damit sie angezeigt
wird.
6 Zusammenfassung und Ausblick
69
6 Zusammenfassung und Ausblick
Die Zielsetzung der vorliegenden Arbeit war die Konzeption einer Architektur für ein System
zur Unterstützung der Deployment Prozesse unter Lotus Notes/Domino. Unter Deployment
ist in dieser Arbeit das Verteilen und Aktualisieren von Anwendungen in verteilten Umgebungen zu verstehen. Dieser Prozess wird in der Literatur nur selten separat betrachtet und ist
in den häufigsten Fällen als Teil des Softwareentwicklungsprozesses beschrieben. Um die
Zielsetzung zu erreichen, wurde Anfangs ein Einblick in das Umfeld und die theoretischen
Grundlagen von Lotus Notes gegeben sowie verwendete Techniken und die Thematik der
Softwareentwicklung und des Deployments beschrieben.
Auf Basis der Grundlagen wurden die Unterschiede zwischen allgemeinem Deployment und
dem Standard Deployment-Prozess unter Lotus Notes/Domino erarbeitet. Dabei ist der Versuch unternommen worden den Standard Deployment-Prozess von Lotus Notes/Domino auf
den allgemeinen Deployment-Prozess, mit den Phasen Installation, Konfiguration, Planung,
Vorbereitung und Einführung, abzubilden. Die sich aus diesem Vergleich ergebenen Unterschiede bilden die Grundlage für die Erstellung eines Anforderungskataloges.
Auf Basis der Anforderungen ist ein Entwurf für eine Architektur und ein Lösungsansatz für
die geschilderte Problematik, in Bezug auf Deployment, erarbeitet worden. Dieser berücksichtigt die technischen Gegebenheiten, wie zum Beispiel Dokumenten basierte Datenbanken und
die Client-/Server-Struktur, die im Zusammenhang mit der Plattform Lotus Notes/Domino zu
finden sind.
Aus den Ergebnissen des Entwurfs ist als Abschluss der Arbeit eine prototypische Umsetzung
erfolgt. Diese soll einen Lösungsweg aufzeigen, mit dem Deployment in Lotus Notes basierten Arbeitsumgebungen vereinfacht und strukturierter gestaltet werden kann. Der Prototyp
sollte alle an ihn gestellten Anforderungen abdecken. Auf Grund von diversen Problemen im
Umgang mit XML unter Lotus Notes ergaben sich bei der Implementierung jedoch folgende
Schwierigkeiten, die dazu führten, dass die beiden Anforderungen „Ausschluss ausgewählter
Designelemente bei einer Aktualisierung“ und „Rechteverwaltung für zu verteilende Anwendungen“ nicht umgesetzt werden konnten.
Folgende Gründe sind für die Nichtberücksichtigung im Prototyp zu nennen:
Bei allen Versuchen das Design nach XML zu konvertieren ist der Prozess mit einer Fehlermeldung, unterbrochen worden. Die Ursache konnte nicht genau geklärt werden, allerdings
6 Zusammenfassung und Ausblick
70
liegt die Vermutung nahe, dass ein Zusammenhang mit der Größe der Beispielanwendung
„K-Pool“ besteht. Der Prozess generiert eine XML-Datei, die bei Abbruch jeweils größer als
30 Megabyte war. Die Größe war allerdings bei den Versuchen nicht immer identisch, so dass
nicht von einem Fehler in der Beispiel-Anwendung ausgegangen werden kann. Auf Grund des
fortgeschrittenen Zeitpunktes, zu dem dieses Element implementiert werden sollte, gab es
keine Möglichkeit diese Funktionalität vollständig fertig zu stellen. Einzelne Teile sind allerdings vorhanden, so dass in kleineren Anwendungen die Auswahl der auszuschließenden
Designelemente möglich ist. Bei größeren Anwendungen schlägt der Versuch beim Auslesen
des Designs fehl. Dieser Fehler hat die gleiche Ursache, wie der Vorherige, da auch das Auslesen der Designelemente auf XML-Basis besteht.
Für die Nichtberücksichtigung der „Rechteverwaltung“ ist der vorangegangene Fehler die
Ursache. Auf Grund des Fehlers auf der XML-Ebene beim Auslesen der Designelemente, war
für diese Anforderung ebenfalls die Zeitkomponente der kritische Faktor. Der Versuch eine
Lösung für das Problem zur Designaktualisierung zu finden hat die zur Verfügung stehende
Zeit voll ausgeschöpft. Daher ist auch dieses Element bei der Implementierung nicht berücksichtigt worden.
Es existieren Ansätze im Prototyp, die weiter verfolgt werden können, falls die nicht vorhandenen Funktionalitäten nachträglich implementiert werden sollen. Diese Ansätze sind zum
einen die mögliche Auswahl von Designelementen bei kleineren Anwendungen und zum
anderen die Rechteverwaltung. Dafür ist ein sehr interessanter Ansatz in der Diplomarbeit
„Konzeption und prototypische Implementierung einer Architektur zur Modularisierung von
Groupware- Applikationen“ von Michael Klages zu finden. Dort wird die Access-ControlList von Lotus Notes Datenbanken in eine XML-Datei exportiert und kann als Rechtepaket
wieder verwendet werden. Diese lassen sich zu einem späteren Zeitpunkt auf gleichem Wege
in andere Datenbanken importieren.
7 Quellenverzeichnis
71
7 Quellenverzeichnis
[Balzert 2000]
Balzert, Helmut: Lehrbuch der Software-Technik – Software-Entwicklung, Spektrum
Akademischer Verlag, Heidelberg 2000
[Beck / Fowler 2001]
Beck, Kent; Fowler, Martin: Planning Extreme Programming, Addison-Wesley, Boston
2001
[Behme / Mintert 2000]
Behme, Henning; Mintert, Stefan: XML in der Praxis, Addison-Wesley, München 2000
[Bennatan 1992]
Bennatan, Edwin M.: Software Project Management: A Pactitioner´s Approach,
MrGRAW-HILL Book Company Europe 1992
[Bishop 2002]
Bishop, Judith (Ed.): Component Deployment, Springer-Verlag Berlin 2002
[Boehm 1988]
Boehm, Barry W.: A Spiral Modell of Software Development and Enhancement, TRW
Defense Systems Group 1988
http://www.sce.carleton.ca/faculty/ajila/4106-5006/Spiral%20Model%20Boehm.pdf
(am 23.04.2007)
[Bundschuh / Fabry 2004]
Bundschuh, Manfred; Fabry, Axel: Aufwandsschätzung von IT-Projekten, 2. Auflage,
mitp-Verlag, Bonn 2004
[Deployment 2003]
(Ohne Verfasser): Specification for Deployment and Configuration of Componentbased Distributed Applications, Fraunhofer FOKUS, Mercury Computer Systems,
Rockwell Collins 2003
http://www.omg.org/docs/mars/03-05-08.pdf (am 23.04.2007)
7 Quellenverzeichnis
72
[Dierker / Sander 1998]
Dierker, Markus; Sander, Martin: Lotus Notes 4.6 und Domino – Integration von
Groupware und Internet, Addison-Wesley, München 1998
[Ebel 2006]
Ebel, Nadin: Lotus Notes Domino 7-Administration Band 1+2, Addison-Wesley,
München 2006
[Elliot 2007]
Elliot, Mark: Lotus Notes Developer´s Toolbox – Tips for Rapid and Successful Deployment, IBM, 2007
[Emmerich / Wolf 2004]
Emmerich, Wolfgang; Wolf, Alexander L.: Component Deployment, Springer-Verlag
Berlin 2004
[Frick 1995]
Fick, Andreas: Der Software-Entwicklungsprozeß – Ganzheitliche Sicht – Grundlagen
zu Entwicklungs-Prozeß-Modellen, Carl Hanser Verlag München Wien 1995
[Goldfarb / Prescod 2000]
Goldfarb, Charles F.; Prescod, Paul: Das XML-Handbuch, Addison-Wesley, München
2000
[Greif 1988]
Greif, Irene (Hrsg.): Computer Supported Cooperative Work: A Book of Readings;
Morgan Kaufmann Publishers, San Mateo, California 1988
[Harold 1998]
Harold, Elliotte Rusty: XML – Extensible Markup Language, IDG Books Worldwide
Inc., Foster City, CA, 1998
[Hasenkamp / Kirn / Syring 1994]
Hasenkamp, Ulrich; Kirn, Stefan; Syring, Michael (Hrsg.): CSCW – Computer Supported Co-operative Work. 1. Auflage, Addison Wesley GmbH, Bonn 1994
[IBM 2007-1]
http://www.ibm.com/de (am 30.03.2007)
7 Quellenverzeichnis
73
[Johansen 1988]
Johansen, Robert: Groupware: Computer Support for Business Teams. 2. Auflage, Free
Press, New York 1988
[Lewis 1996]
Lewis, Ted: Deploying Distributed Business Software, SIGS Books, New York 1996
[Ludewig / Lichter 2007]
Ludewig, Jochen; Lichter, Horst: Software Engineering – Grundlagen, Menschen, Prozessse, Technien, dpunkt.verlag GmbH, Heidelberg 2007
[Kolm / Böck / Humpert 2002]
Kolm, Klaus-Dieter; Böck, Monika; Humpert, Hubert: Lotus Notes 6 und Domino –
Arbeiten im Team, arbeiten im Web, Addison-Wesley, München 2003
[Lotus 1995]
(Ohne Verfasser).: Groupware - Communication, Collaboration, Coordination (1995).
http://gcc.upb.de/www/WI/WI2/wi2_lit.nsf/0/5098c20fcf549d15412564ca00333bc2/$F
ILE/Groupwar.pdf (am 16.04.2007)
[Lotus 2005-1]
(Ohne Verfasser): Application Development with Lotus Domino Designer, IBM 2005
http://doc.notes.net/uafiles.nsf/docs/DESIGNER70/$File/appdev.pdf (am 30.03.2007)
[Lotus 2005-2]
(Ohne Verfasser): Programming Guide, Volume 1: Overview and Formula Language,
IBM
2005
http://doc.notes.net/uafiles.nsf/docs/DESIGNER70/$File/prog1.pdf
(am
30.03.2007)
[Lotus 2005-3]
(Ohne Verfasser): Programming Guide, Volume 4: XML, Domino DTD, and JSP Tags,
IBM 2005 http://doc.notes.net/uafiles.nsf/docs/DESIGNER70/$File/prog4.pdf
(am 30.03.2007)
7 Quellenverzeichnis
74
[Lotus 2005-4]
(Ohne Verfasser): Lotus Domino Designer 7 Help, IBM 2005
http://doc.notes.net/uafiles.nsf/docs/designer70/$File/help7_designer.exe
(am 30.03.2007)
[Lotus 2005-5]
(Ohne Verfasser): Messaging und Collaboration auf Großunternehmensniveau für kleine und mittlere Unternehmen, IBM 2005
http://www.software-express.de/telig-c/info3/ibm/lotus/lotus-domino-notescollaboration-express-7-produktblatt.pdf (am 14.05.2007)
[Lotus 2007-1]
http://www.ibm.com/software/de/lotus (am 30.03.2007)
[Morrison et al. 2000]
Morrison, David; Benz, Brian; Calhoun, Paul; Murakami, Yusuke: XML Powered by
Domino - How to use XML with Lotus Domino, IBM Redbook, 2000
[Nastansky et al. 2002]
Nastansky, Ludwig; Bruse, Thomas; Haberstock, Philipp; Huth, Carsten; Smolnik, Stefan: Büroinformations- und Kommunikationssysteme: Groupware, Workflow Management, Organisationsmodellierung und Messaging-Systeme, in: Fischer, Joachim;
Herold, Werner; Dangelmaier, Wilhelm; Nastansky, Ludwig; Suhl, Leena: Bausteine
der Wirtschaftsinformatik, 3. Auflage, Erich Schmidt Verlag, Berlin, 2002
[Petrovic 1993]
Petrovic, Otto: Workgroup Computing – Computergestützte Teamarbeit, Physica Verlag, Heidelberg 1993
[Standish 1995]
Standish Group: Chaos – The Dollar Drain of IT Projects Failure; PC Week, No. 16,
Jan.1995
[Suhl / Blumstengel 2002]
Suhl, Lena, Blumstengel, Astrid: Systementwicklung, in: Fischer, Joachim; Herold,
Werner; Dangelmaier, Wilhelm; Nastansky, Ludwig; Suhl, Leena: Bausteine der Wirtschaftsinformatik, 3. Auflage, Erich Schmidt Verlag, Berlin, 2002
7 Quellenverzeichnis
75
[Teufel et al. 1995]
Teufel, S.; Sauter C.; Mühlherr T.; Bauknecht, K.: Computerunterstützung für die
Gruppenarbeit. Addison-Wesley, Bonn 1995
[Tulisalo et al. 2002]
Tulisalo, Tommi; Carlsen, Rune;Guirard, Andre; Hartikainen, Pekka; McCarthy, Grant;
Pecly, Gustavo: Domino Designer 6 – A Developer´s Handbook, IBM Redbook, 2002
[Tworek et al. 2002]
Tworek, William; Chiesa, George; Dahm, Frederic; Hinkle, David; Mason, Amanda;
Milza, Matthew; Smith, Amy: Lotus Security Handbook, IBM Redbook, 2004
[Winter 2005]
Winter, Mario: Methodische objektorientierte Softwareentwicklung – Eine Integration
klassischer und moderner Entwicklungskonzepte, dpunkt.verlag GmbH, Heidelberg
2005
[XML 2000-1]
http://edition-w3c.de/TR/2000/REC-xml-20001006/ (am 05.04.2007)
[XML 2001-1]
http://www.edition-w3c.de/TR/2001/REC-xmlschema-0-20010502/ (am 09.04.2007)
[XML 2006-1]
http://www.w3.org/XML/Core/#Publications (am 05.04.2007)
7 Quellenverzeichnis
76
Eidesstattliche Erklärung
Ich erkläre hiermit an Eides statt, dass ich die vorliegende Arbeit selbstständig und nur unter
Verwendung der angegebenen Hilfsmittel angefertigt habe; die aus fremden Quellen direkt
oder indirekt übernommenen Gedanken sind als solche kenntlich gemacht.
Die Arbeit wurde bisher keiner anderen Prüfungsbehörde vorgelegt und auch noch nicht
veröffentlicht.
Paderborn, den 15.05.2007. . . . . . . . . . . . . . . . . . . . . . . . . . .
Herunterladen