Rheinische Friedrich-Wilhelms-Universität Bonn
Diplomarbeit
Komponentenbasierte Anpassbarkeit
FlexiBeans zur Realisierung einer
erweiterten Zugriffskontrolle
von
Gunnar Stevens
Institut für Informatik
Abteilung III
Betreuer : Prof. Dr. Armin B. Cremers
Februar 2002
INHALTSVERZEICHNIS
Inhaltsverzeichnis .......................................................................................................... i
1 Einleitung................................................................................................................. 1
2 Gliederung der Arbeit............................................................................................... 5
3 Allgemeine Grundlagen ........................................................................................... 7
3.1 Anpassbarkeit.................................................................................................... 7
3.1.1 Definition................................................................................................. 7
3.1.2 Empirische Studien über die Anpassungsgewohnheiten.......................... 10
3.1.3 Anforderung an die Anpassungsgestaltung ............................................. 14
3.2 Komponentenbasierte Anpassbarkeit ............................................................... 22
3.2.1 Softwarekomponenten............................................................................ 23
3.2.2 Kompositionsbeschreibungssprachen ..................................................... 25
3.2.3 Komponentenbasierte Anpassbarkeit und Anpassungstechniken............. 28
3.3 Der FLEXIBEAN-Ansatz ................................................................................... 30
3.3.1 JavaBeans .............................................................................................. 31
3.3.2 Erweiterungen durch das FlexiBean-Modell ........................................... 33
3.3.3 Component Architecture for Tailorability (CAT).................................... 36
3.3.4 EVOLVE-Plattform und verteilte Anwendungen mittels DCAT ............. 38
3.3.5 Tailoring API und Anpassungsumgebung.............................................. 40
3.4 Der WAM-Ansatz ........................................................................................... 41
3.5 Grundlagen der Zugriffskontrolle .................................................................... 43
3.5.1 Zugriffsmatrix Modell nach Lampson (1974) ......................................... 44
3.5.2 Das Zugriffsmodell von Shen und Dewan (1992) ................................... 45
3.5.3 Gruppenbasiertes Zugriffsmodell nach Sikkel (1997) ............................. 49
3.5.4 Regelbasierte Zugriffskontrolle von Stiemerling (1996) ......................... 51
3.5.5 Vergleich der Zugriffskontroll-Modelle.................................................. 53
3.5.6 Resümee................................................................................................. 55
4 Die Analyse des Anwendungsfelds......................................................................... 57
4.1 Einführung in die Fallstudie und ihre Einordnung in die VO-Diskussion ......... 57
4.2 Forschungsmethodik ....................................................................................... 61
4.3 Analyseergebnisse........................................................................................... 63
4.3.1 Das dialektische Verhältnis von Konkurrenz und Kooperation ............... 63
4.3.2 Chance und Risiko – zwei Kinder des Internets ...................................... 66
4.4 Zusammenfassung der Analyse ....................................................................... 67
4.5 Sonstige Anforderungen an den Prototypen ..................................................... 69
5 Herleitung einer erweiterten Zugriffskontrolle........................................................ 71
5.1 Zugriffskontrolle und Kooperation .................................................................. 71
5.2 Optimistische Zugriffskontrolle....................................................................... 72
5.3 Zugriffskontrolle als Konfliktregelung............................................................. 74
5.4 Zeitpunkt der Kontrolle ................................................................................... 76
5.5 Faktoren für die Zugriffsstrategie .................................................................... 79
5.6 Resümee.......................................................................................................... 80
ii
6 Implementierung des Prototypen ............................................................................ 81
6.1 Umsetzung des WAM-Ansatzes mit Hilfe der FlexiBeans ............................... 81
6.2 Postfach-Metapher .......................................................................................... 84
6.3 Umsetzung, die auf der praktizierten Zugriffskontrolle beruht ......................... 85
6.4 Umsetzung einer erweiterten Zugriffskontrolle................................................ 89
6.4.1 Einstellmöglichkeiten der Sortierer-Komponente ................................... 92
6.4.2 Funktionsweise des Kontrollautomaten .................................................. 94
7 Evaluation.............................................................................................................. 97
7.1 Evaluation des Prototyps ................................................................................. 97
7.1.1 Repräsentations-Ebene ........................................................................... 97
7.1.2 Präsentations-Ebene ............................................................................... 98
7.1.3 Manipulations-Ebene.............................................................................102
7.1.4 Komponentenbasierte Anpassbarkeit und evolutionäre Entwicklung .....102
7.1.5 Resümee................................................................................................103
7.2 Erweiterung des FlexiBean-Ansatz.................................................................103
7.2.1 Persistenz und Identität einer Komponenteninstanz ...............................103
7.2.2 Reflexive Komponenten........................................................................106
7.2.3 WAM-Materialien.................................................................................109
7.2.4 Semantik von SharedObjects .................................................................111
7.2.5 Sonstige Erweiterungsvorschläge ..........................................................116
8 Zusammenfassung und Ausblick ...........................................................................120
Anhang A ..................................................................................................................125
Anhang B ..................................................................................................................126
9 Literaturverzeichnis...............................................................................................128
1 EINLEITUNG
Im Bereich des Computer Supported Cooperative Work (CSCW) wird aktuell über das
Konzept der Anpassbarkeit diskutiert. Anpassbarkeit wird von einigen Autoren als eine
Schlüsseleigenschaft von Groupware-Systemen angesehen [Bentley und Dourish (1995),
Oberquelle (1994), Wulf (1997), ter Hofte (1998), Koch und Teege (1999), Stiemerling
(2000)]. Ein anpassbares System soll dabei so beschaffen sein, dass es während der Nutzung
durch den Anwender an die sich verändernden Situationen angeglichen werden kann, damit
die Software besser seinen Bedürfnissen und seinen Vorlieben im jeweiligen Nutzungskontext
entspricht.
Die Motivation, die hinter der Anpassbarkeit steht, ist sowohl arbeitspsychologischer, wirtschaftlicher, als auch strategischer Natur [Oberquelle (1994)]. Anpassbarkeit soll dabei zum
einen der Forderung nach menschengerechteren und selbstbestimmbaren Arbeitsbedingungen
nachkommen. Zum anderen wird davon ausgegangen, dass eine bessere Abstimmung von
Mensch und Maschine zu produktiveren Systemen führt. Außerdem soll die Software in einer
sich wandelnden Umgebung eingesetzt werden können. Dies soll die Flexibilität von
Organisationen erhöhen, so wie es von der neueren Organisationstheorie gefordert wird [
Kahler (1995)]. Zusätzlich erhofft man sich, dass ein anpassbares System für solche SoftwareProjekte geeignet ist, bei denen der Einsatzkontext in der Regel nicht präzise beschreibbar ist,
und die unterstützenden Aktivitäten so komplex sind, dass die Anforderungen unpräzise und
missverständlich sind [Oberquelle (1994), Henderson und Kyng (1991)].
Eine technische Umsetzung des Konzepts besteht in der komponentenbasierten Anpassbarkeit. Hierbei wird eine Anwendung aus Komponenten aufgebaut, die zur Laufzeit des
Systems rekonfiguriert werden können. Der FlexiBean-Ansatz stellt ein Rahmenwerk für
komponentenbasierte Anwendungen zur Verfügung [Stiemerling (1998), Stiemerling (2000)].
Der Beitrag der vorliegenden Arbeit besteht in der Untersuchung des FlexiBean-Modells
unter dem Gesichtspunkt der Anpassung durch den Endanwender. Die Untersuchung stützt
sich dabei auf einen Prototyp, der im Rahmen des OrgTech-Projekts vom Autor entwickelt
wurde [Iacucci et al. (1998),
Nett, Fuchs-Frohnhofen und Wulf (2000)]. Die
Implementierung diente dabei dieser Arbeit als Grundlage zur Untersuchung des FlexiBeanModells.
Beim OrgTech-Projekt ging es unter anderem darum die Kooperation zwischen einem
Stahlwerk und zwei externen Konstruktionsbüros dadurch zu verbessern, dass den Externen
2
ein elektronischer Zugang zu dem firmeneigenen Zeichnungsarchiv des Stahlwerks, ADOS1,
ermöglicht wird. Bezüglich des elektronischen Zugangs lagen bei den Beteiligten
unterschiedliche Vorstellungen vor, weshalb im Prototyp, ADOS-X2, eine erweiterte
Zugriffskontrolle implementiert wurde.
Die Modellierungsmöglichkeiten, die durch den FlexiBean-Ansatz gegeben sind, werden
anhand der Komponentenzerlegung (Dekomposition) des Prototyps evaluiert. Bei der
Dekomposition sind verschiedene Einflussfaktoren zu beachten. Eine grobe Einteilung in drei
Einflussfaktoren ist in Abbildung 1-1 dargestellt.
Theorie zur Zugriffskontrolle
Dekompositions-Methodik
Erweiterte Zugriffskontrolle
WAM-Ansatz
Liefert Richtlinien für
anwendungsorientierte
Dekomposition
Bestimmt die
Anforderungen an die
Dekomposition
Analyse des erhobenen
Datenmaterials mit Hilfe der
objektiven Hermeneutik
Prototyp
Test der Dekomposition mit Hilfe
der Thinking-Aloud Methode
ADOS-X
Liefert technisches Rahmenwerk
für die Dekomposition
Analyse der Prototypimplementierung
Komponentenbasierte Anpassbarkeit
FlexiBean-Modell
Legende:
Erkärung
: Einflussfaktor
: Evaluation
verwendete Methodik
zur Evaluation
Abbildung 1-1 Faktoren, die die Dekomposition beeinflussen und die bei der Arbeit verwendeten
Evaluationstechniken
In der Arbeit wird die Ansicht vertreten, dass man bei einer Evaluation der
Modellierungsmöglichkeiten unter dem Gesichtspunkt Verständlichkeit durch den
Endanwender alle drei Einflussfaktoren gemeinsam betrachten muss. Bei der Untersuchung
der Dekomposition stehen deshalb drei Fragen im Vordergrund:
1. Bietet die durch die Dekomposition des Systems gegebene Anpassbarkeit an einer für
den Anwendungskontext notwendigen Stelle eine angemessene Flexibilität?
2. Ist die gefundene Dekomposition für den Endanwender verständlich?
1
2
ADOS steht für „Anlagen Dokumentations-System“
ADOS-X steht für „ADOS für eXterne“
3
3. Welche Anforderungen an den FlexiBean-Ansatz lassen sich aus dem Prototyp
ableiten?
Die in der Arbeit zur Klärung der Fragen verwendeten Evaluationstechniken sind in
Abbildung 1-1 als gestrichelte Pfeile dargestellt.
Zur Klärung der ersten Frage wird das im Anwendungsfeld erhobene Datenmaterial mit Hilfe
der Objektiven Hermeneutik einer soziologischen Analyse unterzogen [Oevermann (1991,
1993, 1996), Wernet (2000)]. Die Analyse dient in der Arbeit dazu, ein Modell zu einer
erweiterten Zugriffskontrolle zu entwickeln.
In der Arbeit wird anhand der durch den Prototyp realisierten Dekomposition gezeigt, wie
sich mit Hilfe der entwickelten Grundkomponenten eine erweiterte Zugriffskontrolle
umsetzen lässt.
Die Verständlichkeit der durch den Prototyp realisierten Dekomposition wird mit der
„Thinking-Aloud“-Methode evaluiert [Nielsen (1992)]. Jedoch wird nicht nur untersucht, ob
die Dekomposition für den Anwender verständlich ist, sondern auch der Frage nachgegangen,
wie eine Dekomposition gefunden werden kann. Da hier eine Lücke in der
komponentenbasierten Anpassbarkeit besteht, wird in der vorliegenden Arbeit deshalb
geprüft, ob durch die Übertragung des WAM-Ansatzes3 auf die FlexiBeans diese Lücke
gefüllt werden kann.
Des Weiteren wird in der Arbeit untersucht, welche Konsequenzen sich aus dem Prototypen
für den FlexiBean-Ansatz ergeben.
3
Der WAM-Ansatz ist eine Methode zur anwendungsorientierten Softwareentwicklung und wurde in den 90er
Jahren im Arbeitsbereich Softwaretechnik an der Universität Hamburg entwickelt [Budde und Züllighoven
(1990), Züllighoven (1992), Kilberth, Gryzan und Züllighoven (1994), Züllighoven (1998)]. WAM steht dabei
für Werkzeug, Aspekt und Material. Neuerdings findet man es auch für Werkzeug, Automat und Material.
4
5
2 GLIEDERUNG DER ARBEIT
In Kapitel 3 wird der FlexiBean-Ansatz als technische Realisierung des Konzepts der
komponentenbasierten Anpassbarkeit eingeführt. Dazu werden zuerst die grundlegenden
Arbeiten zum Thema Anpassbarkeit vorgestellt. Dann wird die Idee der
Softwarekomponenten erläutert und beschrieben, wie sich Anpassbarkeit mit Hilfe von
Softwarekomponenten verwirklichen lässt. Es werden ebenfalls Grundzüge des WAMAnsatzes kurz beschrieben. Wegen der zentralen Bedeutung der Zugriffskontrolle für den
Anwendungskontext werden einige der im CSCW-Bereich bekannten ZugriffskontrollModelle dargelegt.
Kapitel 1 gibt eine Einführung in den Anwendungskontext und seine Einordnung in die
Diskussion über Virtuelle Organisationen (VO). Es werden die Grundzüge der Methode der
Sequenzanalyse vorgestellt, mit der das im OrgTech-Projekt erhobene Material untersucht
wurde. Anschließend werden die Resultate der Analyse dargestellt und erläutert. Am Ende
des Kapitels werden die Konsequenzen für eine zu realisierende Zugriffskontrolle aufgezeigt.
In Kapitel 3 wird gezeigt, warum die klassischen Zugriffskontrollsysteme im vorliegenden
Fall zu kurz greifen. Es werden alternative Modelle vorgestellt, die qualitativ andere
Kontrollmechanismen bereitstellen. Insbesondere wird auf den Ansatz zur Konfliktregelung
von Wulf (1997) eingegangen. Aufgrund des untersuchten Anwendungskontexts wird in
diesem Kapitel ein eigenes Modell der Zugriffskontrolle entwickelt, das von der Sicht des
Kontrolleurs ausgeht und die Kontrollmechanismen nach dem Zeitpunkt einteilt, an dem über
die Legitimität des Zugriffs entschieden wird.
In Kapitel 6 wird die Implementierung des Prototyps ADOS-X beschrieben. Neben einer
Einführung in die Postfach-Metapher, auf der der Prototyp beruht, wird in diesem Kapitel
außerdem gezeigt, wie die Grundbestandteile des WAM-Ansatzes sich mit Hilfe der
FlexiBeans realisieren lassen. Anschließend werden die Grundkomponenten der
Implementierung, die dem WAM-Ansatz folgen, und die daraus zusammengesteckte
Komposition beschrieben.
Der Prototyp wird in Kapitel 1 evaluiert. Dabei wird geklärt, ob die Dekomposition flexibel
genug und für den Endanwender verständlich ist. Sie stützt sich auf das Feedback aus dem
Anwendungsfeld und auf Tests, die mit Personen außerhalb des OrgTech-Projekts durchgeführt wurden. Am Ende des Kapitels wird erläutert, an welchen Stellen des FlexiBeanAnsatzes erweitert werden sollte.
6
Den Abschluss der Arbeit bildet eine Zusammenfassung der gewonnenen Erkenntnisse und es
wird ein Ausblick auf zukünftige mögliche Forschung im Bereich der komponentenbasierten
Anpassbarkeit gegeben.
7
3 ALLGEMEINE GRUNDLAGEN
In diesem Kapitel wird der FlexiBean-Ansatz als ein technisches Rahmenwerk zur
Entwicklung komponentenbasiert-anpassbarer Systeme eingeführt. Dazu wird zunächst
geklärt, was unter Anpassbarkeit zu verstehen ist und welche Anforderungen allgemein an
durch den Endanwender anpassbare Systeme gestellt werden. Anschließend wird das
Konzept von Softwarekomponenten eingeführt und gezeigt, wie sich Anpassbarkeit mit
Hilfe von Softwarekomponenten erreichen lässt. Abschließend wird der WAM-Ansatz als
eine Methode zur Anwendungsgestaltung erläutert, die den FlexiBean-Ansatz im Bereich
der Dekomposition ergänzt. Der Zusammenhang zu dem implementierten Prototypen ist in
Abbildung 3-1 zu sehen.
Allgemeine Grundlagen
Anpassbarkeit
Softwarekomponenten
ist grundlegendes Konzept von
Zugriffskontrolle
KomponentenbasierteAnpassbarkeit
wird implementiert durch
anwendungsspezifische
Grundlage von
FlexiBeans
WAM-Ansatz
stellt technischen Rahmen dar
leitet Dekomposition an
Technische Umsetzung
ADOS-X
Abbildung 3-1 Übersicht über den Aufbau des Kapitels und den Zusammenhang zum komponentenbasiertanpassbaren System ADOS-X
3.1 Anpassbarkeit
Die Forderung nach Anpassbarkeit wird von verschiedenen Autoren erhoben. In der
englischsprachigen Literatur werden für diesen Sachverhalt verschiedene Begriffe
gebraucht, z.B. „malleable“, „adaptable“, „customizable“ und häufig auch „tailorable“. Im
Deutschen hat sich der Begriff der Anpassbarkeit bzw. der Anpassung durchgesetzt.
Im Folgenden wird die Bedeutung des Begriffs, wie er im Bereich des CSCWs gebraucht
wird, erklärt. Dazu werden in diesem Abschnitt einige verwendete Definitionen von
Anpassbarkeit dargelegt, die die verschiedenen Aspekte der Anpassbarkeit erläutern.
Anschließend werden verschiedene empirische Studien zu dem Thema vorgestellt und
einige der Anforderungen dargelegt, die an die Gestaltung der Anpassbarkeit gestellt
werden.
3.1.1 Definition
Viele Arbeiten zur Anpassbarkeit beziehen sich auf die Definition von Henderson und
Kyng (1991). Bei ihnen hängt der Begriff des Anpassens stark mit den Aspekten des
8
Wechsels und der Stabilität zusammen. Man passt an, wenn man während der Nutzung
stabile Teile eines Artefakts verändert. Damit grenzen sie die Anpassbarkeit gegenüber der
Nutzung ab:
„If the modifications that are being made are to the subject of matter of the
tool then we think of it as use; if the modifications are the tool itself, then it is
tailoring“ Henderson und Kyng (1991, S. 224) .
In der Tabelle 3-1 sind die Eigenschaften gegenübergestellt, die die Anpassung nach
Henderson und Kyng (1991) von der Nutzung abgrenzen.
Aspekt
Nutzung
Anpassung
Stabilität
Veränderung von während
der Aufgabenerledigung
unstabilen Aspekten
Veränderung von während
der Aufgabenerledigung
stabilen Aspekten
Gegenstand, auf den die
Aktion wirkt
Veränderung des
Dokuments
Veränderung des Werkzeugs, das zur Aufgabenerledigung dient
Zeitpunkt des Effekts
Wirkt sofort auf
Aufgabenerledigung
Veränderung hat erst später
(indirekt) einen Effekt auf
die Aufgabenerledigung
Tabelle 3-1 Nutzung versus Anpassung bei Henderson und Kyng (1991) [zit. nach Won (1998)]
Henderson und Kyng (1991, S. 224) machen zudem darauf aufmerksam, dass der Begriff
der Anpassung in Relation zum Anwendungskontext steht. So fällt das, was für den
Benutzer das Anpassen eines Programms ist, für den Entwickler unter den Begriff der
Nutzung. Einen ähnlichen Unterschied macht Oberquelle (1994), der ebenfalls die
Anpassung von der Nutzung abgrenzt. Letzteres gehört zu den primären Tätigkeiten,
während die Anpassung zu den sekundären Tätigkeiten des Anwenders gehört.
Oberquelle (1994, S. 35) klassifiziert zudem die Anpassungen in vier Kategorien (siehe
Tabelle 3-2). Bei der Individualisierung nimmt der Einzelne die Anpassung vor, und nur er
ist auch von den Auswirkungen der Anpassung betroffen. Bei der gruppenwirksamen
Anpassung betrifft die Anpassung auch andere. Bei der gruppengestützten
Individualisierung wird die Individualisierung von einer Gruppe entwickelt, aber von
einzelnen umgesetzt. Ein Beispiel dafür stellt ein Makro dar, das von der Gruppe
entwickelt, aber nur vom einzelnen genutzt wird. Bei der Gruppenanpassung betrifft die
Anpassung die ganze Gruppe und wird von ihr auch umgesetzt.
ALLGEMEINE GRUNDLAGEN
9
Akteure
Einzelne
Betroffene
Gruppe
Einzelne
Gruppe
Individualisierung
gruppengestützten
Individualisierung
gruppenwirksame
Anpassung
Gruppenanpassung
Tabelle 3-2 Klassifizierung von Anpassungen [Oberquelle (1994, S. 35)]
Muller, Haslwanter und Dayton (2001) stellen die Anpassbarkeit in den Kontext des partizipativen Designs. Anpassbarkeit ist dabei eine Art, den Anwender bei der Softwaregestaltung zu beteiligen. Die Arbeit von Mørch und Mehandjiev (2000) kann man ebenfalls dieser Position zuordnen. Sie sehen die Anpassbarkeit als eine Kooperation zwischen
Entwicklern und Anwendern an, welche durch das Softwaresystem vermittelt wird.
Anpassbare Systeme stellen für sie eine spezielle Form von CSCW-Systemen dar, die in
der „different time, different place“-Ecke der Johansen-Matrix4 einzuordnen sind. Daraus
leiten sie einige Punkte für die Anpassungsgestaltung ab, auf die in Abschnitt 3.1.3.11
eingegangen wird.
Die Idee des partizipativen Designs findet sich auch beim Ansatz zur Integrierten
Organisation und Technikentwicklung (OTE) [Wulf (1994), Wulf und Rohde (1995)].
Dieser Ansatz stellt ein Softwareprozess-Modell dar, bei dem die Anpassung ein integraler
Bestandteil des Prozesses ist. Sie wird als eine Tätigkeit im Bereich des Einsatzes
betrachtet, die zwischen der Nutzung und der Wartung anzusiedeln ist. Der Ansatz
erweitert dazu das Softwareprozess-Modell STEPS5 um die Tätigkeit der Anpassung. Die
Anpassung wird dabei als eine gemeinsame Aufgabe von Nutzern und Anpassungsspezialisten gesehen. Der Anpassungsspezialist kann ein Software-Entwickler, aber auch
ein Angehöriger der EDV-Fachabteilung der jeweiligen Organisation sein. Die Wartung
lässt sich von der Anpassung dadurch abgrenzen, dass die Wartung eine Tätigkeit der
Entwickler ist und meist ohne direkte Beteiligung der Nutzer vollzogen wird. Sie zielt
darauf ab, dass die in der Systemspezifikation festgelegten Leistungen vollständig erbracht
werden. Demgegenüber wird der Anpassungsprozess durch Veränderungen im
Anwendungsfeld ausgelöst, die während der Nutzung auftreten. Die Anpassungen
zeichnen sich dadurch aus, dass sie mit begrenztem Aufwand und geringer Verzögerung
im Anwendungskontext unter maßgeblicher Beteiligung der Nutzer vorgenommen werden
können. Auch ist der Eingriff in das Systemverhalten nicht so tief wie bei der Wartung,
und die Anpassungen können „nur im Rahmen [der] bei der Herstellung antizipierten
4
5
Die Dimension Zeit und Raum hat Johanson (1998) eingeführt, um CSCW-Systeme zu kategorisieren.
Zu STEPS siehe Floyd, Reisin und Schmidt (1989)
10
Möglichkeiten“ [Wulf (1994)] erfolgen6. Bei der Abgrenzung der Anpassung gegenüber
der Nutzung folgt der OTE-Ansatz der Definition von Henderson und Kyng.
Eine Definition, die ohne Rekurs auf die Nutzung und den Benutzer auskommt, findet man
bei Stiemerling (2000, S. 20). Er spricht von einem anpassbaren System, wenn es die
folgenden drei Eigenschaften besitzt:
1. Eine Repräsentation der Systemeigenschaften,
2. eine Funktionalität, diese Eigenschaften zu ändern,
3. eine Verbindung zwischen Repräsentation und Systemeigenschaften.
Die Anpassbarkeit eines Systems wird durch die Ausprägung dieser drei Punkte bestimmt.
Im Folgenden wird von der fachlichen Sicht des Anpassens die Rede sein, wenn die
sekundäre Tätigkeit des Anwenders im Sinne von Oberquelle gemeint ist. Dagegen wird
von der technischen Sicht der Anpassbarkeit gesprochen, wenn es um die
Softwareeigenschaften im Sinne von Stiemerling geht.
3.1.2 Empirische Studien über die Anpassungsgewohnheiten
Die Anforderungen, die an die Anpassbarkeitsgestaltung gestellt werden, fußen zum Teil
auf empirischen Studien [Rossen (1984), Mackay (1990), Gantt und Nardi (1992),
Oppermann und Simm (1994), Trigg und Bødker (1994), Page et al. (1996), Wulf (1999),
Biemans, Schuurman und Swaak (2001)]. In diesen Arbeiten wird das Anpassen von
bestehenden Systemen durch die Anwender untersucht7.
Die Applikationen, bei denen die Anpassungsgewohnheiten der Benutzer untersucht
wurden, reichen von Textverarbeitungsprogrammen, Tabellenkalkulationen, CADSystemen, Handys, E-Mail Systemen bis zur Anpassung von Window-Managern und
Shellskripten unter UNIX. In diesen Studien wurde eine Reihe von Einflussfaktoren
gefunden, die das Anpassen auslösen bzw. behindern. Eine Zusammenfassung der
wichtigsten Faktoren ist in Tabelle 3-3 aufgelistet.
6
Jedoch macht Mackay (1990) in ihrer Doktorarbeit darauf aufmerksam, dass Anpassung zwar durch das
Design beschränkt wird, jedoch von den Anwendern in einer nicht antizipierten Art und Weise verändert
werden kann. Es ist jedoch nur in Ansätzen erkennbar wie Software gestaltet werden muss, damit sie auch
nicht antizipierte Anpassungen unterstützt.
7
Bei keiner Untersuchung wird jedoch explizit der Frage nachgegangen, welche Teile der Anwendung der
Benutzer wie anpassen würden, wenn er denn könnte.
ALLGEMEINE GRUNDLAGEN
11
Auslösende Faktoren
Behindernde Faktoren
Technologische Be-
• Etwas funktioniert nicht mehr
• Anpassung ist zu schwierig
einflussung
• System kennenlernen
• Schlechte Dokumentation
• Rechner- bzw. Software-
• Probleme, die Anpassungsfunktion zu
Umgebung wechseln
finden
• System Upgrade würde Anpassung
nichtig machen
Beeinflussung
durch Organisation
oder andere
• Etwas bei einem Kollegen
• Einhaltung von Firmenstandards
gesehen
• Anpassung durch jemand anderen
Benutzer
Beeinflussung
• Einführung eines neues Systems
durch externe
• Einführung einer neuen Version
Ereignisse
• Wechsel der Aufgabe oder des
Berufes
Individuelle
Faktoren
• Sich wiederholende Muster
entdecken
• Keine Zeit
• Kein Interesse
• Langeweile, Neugierde
• Unzufriedenheit ist nicht groß genug
• Wenn dem Benutzer das
• Festhalten an alten Mustern
Systemverhalten zu lästig wird
• Angst, etwas zu zerstören
• Überflüssiges löschen
• Ästhetische Gründe
• Konfrontation mit neuen Dingen
Tabelle 3-3 Faktoren, die die Anpassungsgewohnheiten der Benutzer beeinflussen [zit. nach Mackay (1990,
S.185), leicht verändert und erweitert]
Eine der umfassendsten Studien wurde von Mackay (1990) durchgeführt. Sie untersuchte
die Anpassungsgewohnheiten der Mitarbeiter in einer Forschungsabteilung mit über 80
Personen, dem MIT’s Athena Project. Dazu studierte sie das Anpassen des WindowManagers und der Shellskripten unter UNIX durch die Mitarbeiter. Der in der Studie
untersuchte Zeitraum erstreckte sich über vier Monate. Die Ergebnisse der Studie beruhen
auf den dort gesammelten Eindrücken, der Auswertung von Interviews und von
Konfigurationsfiles. Von den beteiligten Personen hatten einige technische, andere nichttechnische Aufgaben. Unterschiede gab es auch hinsichtlich der Erfahrungen mit
Computersystemen. Die theoretische Grundlage für ihre Studie bildete das
strukturrationale Modell der Technologie nach Orlikowski (1989), das sie in einigen
12
Punkten erweiterte8. Die von ihr gefundenen Einflussfaktoren ordnet sie auf Grund ihres
Modells in vier Kategorien ein9: 1. Technische Beeinflussung, 2. Beeinflussung durch die
Organisation oder andere Benutzer, 3. Beeinflussung durch externe Ereignisse und 4.
individuelle Faktoren. Die unterschiedlichen Einflussfaktoren führen auch zu einem
unterschiedlichen zeitlichen Verlauf der Anpassung10. So löst eine neue Version ein
einmaliges Retrofitting11 aus, während das Kodieren von wiederkehrenden Mustern12 mit
der Zeit eher zu- als abnimmt. Sie zeigt zudem, wie Benutzer das System in einer vorher
von den Entwicklern nicht antizipierten Art und Weise umgestaltet haben. Aus ihren
Ergebnissen leitet sie Anforderungen an die Softwaregestaltung ab, auf die ich im nächsten
Abschnitt eingehe.
Die Studie von Rossen (1984) über das Benutzerverhalten bei Textverarbeitungsprogrammen wird von Page et al. (1996) zu zwei Ergebnissen zusammengefasst: Erstens hat
Rossen herausgefunden, dass Programmierer die Anpassungsmöglichkeiten intensiv
nutzen, während Sekretärinnen dies nicht tun. Zweitens hat sie darüber hinaus einen
Zusammenhang zwischen der Erfahrung eines Benutzers und dessen Anpassungsgewohnheiten festgestellt. So ist der Erfahrungshorizont des Anwenders im allgemeinen
ein guter Indikator dafür, wie viele er von den Anpassungsmöglichkeiten nutzt.
Auch Page et al. (1996) untersuchen das Anpassen eines Textverarbeitungsprogramms und
zwar die kommerzielle Anwendung von WordPerfect 6.0a für Windows. Bei ihrer Studie
wurden 101 Personen befragt, die über die Software-Registrierungsdatenbank für
WordPerfect erhoben und über E-Mail kontaktiert wurden. Neben den zurückgesendeten
Fragebögen gehörten zum Datenmaterial die angepassten Konfigurationsdateien und die
aufgezeichneten Makros. Der Untersuchungszeitraum betrug 28 Tage. Die Auswertung
ergab, dass 92% der Personen anpassten, 86% die generellen Einstellungen änderten, 63%
die Möglichkeit nutzten, die Funktionalität durch Makros anzupassen und 16% diese auch
selber aufzeichneten. Page et al. (1996) kamen deshalb zu dem Schluss, dass
Anpassbarkeit sinnvoll ist und dass die Features dafür einfach, leicht und schnell zu
benutzen sein müssen. Außerdem sollten sich die Anpassungsmöglichkeiten in die Arbeit
integrieren.
Demgegenüber sind Oppermann und Simm (1994) skeptisch, was den Gebrauch von
Anpassungsvorrichtungen angeht. Sie haben deren Gebrauch bei Textverarbeitungsprogrammen, Tabellenkalkulationen, Datenbanken und Zeichnungs-Applikationen studiert.
Ein Teil der Benutzer meinte, sie hätten einige der Anpassungsmöglichkeiten genutzt. So
8
Vgl. Mackay (1990, Kap. 2).
9
Vgl. Tabelle 3-3.
Vgl. Mackay (1990, S. 161).
11
Mit Retrofitting ist gemeint, das neue System so anzupassen, dass es sich möglichst wie das Alte verhält.
12
Z.B. kann man ein häufig verwendeter Befehl mit einem alias versehen werden.
10
ALLGEMEINE GRUNDLAGEN
13
hätten sie globale Optionen geändert und Styles erstellt. Sie gaben an, dass durch
Anpassungsoptionen es möglich sei, ihre Arbeit zu vereinfachen und Zeit zu sparen. Einige
wenige Benutzer hatten auch Makros aufgezeichnet und die Menüauswahl verändert.
Andere meinten jedoch, sie hätten die Dinge nur zum eigenen Vergnügen geändert.
Die Arbeit von Wulf (1999) gründet sich auf der empirischen Untersuchung des Anpassens
eines Textverarbeitungsprogramms. Hier wurden elf semi-strukturierte Interviews mit
Benutzern des Programms Microsoft Word (Version 6 und Office 97) geführt. Die
Benutzer hatten unterschiedliche Qualifikationen und auch die von Word unterstützte
Arbeit war bei den Beteiligten unterschiedlich. Wulf kommt zu ähnlichen Ergebnissen wie
Mackay, was das Retrofitting von Funktionen angeht. Ein anderes Ergebnis, das in fast
allen Interviews auftaucht, ist das Problem, die Anpassungsfunktion zu finden. Er
unterscheidet hier drei verschiedene Fälle. Im ersten Fall wissen die Benutzer, dass die
Anpassungsfunktion existiert, z.B. durch eine vorhergehende Version oder Kollegen, aber
sie können sie nicht finden. Im zweiten Fall können die Benutzer sich vorstellen, dass es
eine solche Funktion geben müsste. Im letzten Fall wissen die Benutzer weder von der
Existenz, noch können sie sich vorstellen, dass es eine solche gibt. Auf die
Designimplikation, die er daraus ableitet, gehe ich in Abschnitt 3.1.3.9 ein.
Die Studie von Trigg und Bødker (1994) und die Studie von Gantt und Nardi (1992)
weichen in der Hinsicht von den oben skizzierten Forschungsarbeiten ab, als dass sie nicht
die Anpassung durch den End-Anwender, sondern durch lokale Entwickler untersuchten.
Gantt und Nardi (1992) interessierten sich dafür, wie ausgefallene Anpassungs- und
Erweiterungsmöglichkeiten bei CAD-Systemen benutzt werden. Dazu beobachteten sie in
sieben Betrieben nach der ethnografischen Methode, was die Benutzer von CAD-Systemen
faktisch tun. In ihrer Studie führten sie 24 Tiefeninterviews mit 21 Benutzern und 3
Managern. Von den befragten Personen waren sieben Endbenutzer. Gantt und Nardi
sammelten und untersuchten Erzeugnisse, die bei der Benutzung des CAD-Systems
entstanden (Makroprogramme, Zeichnung, etc.) und studierten die Benutzung des Systems.
Sie fanden heraus, dass es in allen Fällen mindestens einen lokalen Experten gab, der
andere Benutzer unterstützte. In drei untersuchten Betrieben war die Stelle eines
Anpassungsberaters13 offiziell vorgesehen. Vier von den sieben Endbenutzern machten
keine Anpassungen. Sie mochten es nicht und da es einen lokalen Experten gab, brauchten
sie es auch nicht. Gantt und Nardi diskutieren auch, welche Fähigkeiten der
Anpassungsberater besitzen soll, und wie er in eine Organisation integriert werden kann.
13
Gantt und Nardi bezeichnen eine Person, die für andere anpasst bzw. dabei hilft, auch als Gardener bzw.
Guru.
14
Das Forschungsinteresse von Trigg und Bødker (1994) liegt zum einen darin, die
Anpassungsgewohnheiten der Entwickler und deren begleitende Aktivitäten wie Support,
Wartung und Training unter die Lupe zu nehmen. Zum anderen geht es ihnen darum, wie
die Arbeitspraxis durch den institutionellen Kontext beeinflusst und beschränkt wird. Sie
benutzen wie Gantt und Nardi ethnografische Mittel zur Untersuchung. So haben sie das
Arbeitsleben von vier Personen an einer staatlichen Institution durch teilnehmende
Beobachtung erforscht. Drei Personen führten dabei Anpassungen für andere durch. Trigg
und Bødker zeigen, dass Anpassung neben den technischen Aspekten auch eine
organisatorische Aufgabe darstellt und ein betriebs-politischer Aushandlungsprozess ist.
Sie stellen vor allem Anforderungen auf, die auf der Ebene des Managements und der
Organisationsgestaltung anzusiedeln sind.
3.1.3 Anforderung an die Anpassungsgestaltung
In diesem Abschnitt werden einige der Anforderungen formuliert, die in der Literatur im
Zusammenhang mit der Anpassbarkeit erhoben werden. Bei den Anforderungen kann man
zwischen technischen und nicht-technischen unterscheiden. Hier wird vor allem auf die
technischen Anforderungen eingegangen, die an anpassbare Systeme gestellt werden.
Die Anforderungen ergeben sich zum einen aus den systematisch durchgeführten
empirischen Studien. Zum anderen basieren sie auf Erfahrungen, die bei
Forschungsprojekten gesammelt wurden, die meistens aber nicht explizit überprüft worden
sind. Auch lassen sich viele der Anforderungen aus dem Unterschied, der zwischen
Anpassung und Wartung bzw. Nutzung besteht, ableiten. Da die Anpassung nicht zu den
primären Tätigkeiten des Anwenders gehört, muss man davon ausgehen, dass er kein
Spezialist in Sachen Systemgestaltung ist. Zudem kann man nicht erwarten, dass auf Seiten
des Anwenders eine große Motivation existiert, sich lange in das Thema einzuarbeiten. Auf
diesen fachlichen Unterschied von Entwickeln und Anpassen machen Trigg und Bødker
(1994) aufmerksam14.
3.1.3.1 Bereitstellung verschiedener Anpassungstechniken und deren Stufung
Gantt und Nardi (1992) kommen in ihrer Studie zu dem Schluss, dass das Wissen
hinsichtlich des Computers unter den Benutzern ein Kontinuum darstellt. Die Aufgabe der
Softwaregestaltung ist es, die Endpunkte des Kontinuums zu bestimmen und den
verschiedenen Benutzern eine auf ihre Fähigkeiten abgestimmte Anpassungsumgebung
14
Für sie ist das Software erstellen das Entwickeln von Theorien über den Anwendungskontext. Sie folgen
dabei Naur (1992). Im Gegensatz dazu basiert für sie das Anpassen weder auf einem abstrakten Modell des
Gebrauchs, noch auf einem formalen Konzept des technischen Artefakts.
ALLGEMEINE GRUNDLAGEN
15
bereitzustellen. Gantt und Nardi fordern zudem, dass es eine Stufung der
Anpassungsumgebungen geben sollte, damit es für den Benutzer einfacher ist, seine
Fähigkeiten zu steigern.
Bentley und Dourish (1995) sehen bei den meisten bestehenden Systemen eine Kluft
zwischen einer oberflächlichen und einer tiefgreifenden Anpassung, die sich in der
Aufteilung der Systemarchitektur in Interface und Funktionalität widerspiegelt. Die Kluft
wird von ihnen auch als Anpassungskluft („customization gulf“) bezeichnet. Diese Kluft,
die der Praxis des Software-Engineerings entstamme, sei jedoch künstlich und reflektiere
nicht die Erfordernisse der Anpassbarkeits-Anforderungen der Benutzer. Sie führe dazu,
dass die meisten Systeme kaum flexible Mechanismen für tiefgreifende Anpassungen
besitzen.
Bentley und Dourish (1995) verweisen auf die Ergebnisse von McLean et al. (1990), die
feststellen, dass es bei den meisten Systemen keinen sanften Übergang zwischen
einfachem und tiefgreifendem Anpassen existiert. Zu sehen ist die Kluft in den zwei steilen
Anstiegen des in Abbildung 3-2 dargestellten Graphs. Der eine liegt zwischen dem
„Worker“ und Tinkerer“, der andere liegt zwischen „Change Parameters“ und
„Programming Language“.
Abbildung 3-2 Zusammenhang zwischen der Mächtigkeit des Anpassungsmechanismus und der
notwendigen Qualifikation, den Mechanismus anzuwenden [aus McLean et al. (1990, S. 175)]
Die Anpassungskluft ist nach Bentley und Dourish (1995) durch zwei miteinander
verschränkte Probleme charakterisiert. Das eine ist der Level der möglichen Anpassung,
der meist ziemlich niedrig ist. Das andere ist die Anpassungs-Sprache, die normalerweise
dem Anwender kaum Möglichkeiten gibt, seine Anforderungen mit den Fähigkeiten
auszudrücken, die er schon besitzt. Beide führen dazu, dass der Anwender keine
Möglichkeit hat, in das System einzudringen und es in der Art und Weise anzupassen, dass
die Funktionalität des Systems zu der Leistung seiner Arbeit passt.
16
Ein Lösungsansatz, den man bei Bentley und Dourish (1995), aber auch bei anderen
Autoren findet, besteht in einer inkrementellen Steigerung der Anpassungstechniken und
deren Komplexität. Eine summarische Auflistung von Anpassungstechniken findet sich bei
Oberquelle (1994). In Mørch (1997) ist eine Stufung der Techniken vorgenommen15. Die
Aufgabe der Techniken, so Mørch, besteht darin, die Distanz zwischen den Präsentationsobjekten, die für den Benutzer zugänglich sind, und der darunter liegenden Implementierung zu überwinden. Bei seiner Analyse hat er drei Stufen ausgemacht: Customization,
Integration und Extension (vgl. Tabelle 3-4).
Stufe
Beschreibung
Customization Customization ist das Ändern des Aussehens einer Applikation
oder das Editieren von Attributwerten durch das Auswählen einer
vordefinierten Menge von Konfigurationsoptionen. Beispiel: Das
„Anpassen“ – Menü bei Word
Integration
Feste Integration: Eine Komponente wird integriert durch „Copy &
Paste“-Operationen. (Hier kann noch zwischen textlichen und
binären Komponenten unterschieden werden). Beispiel: PlugIns
Weiche Integration: Erstellen oder Aufnehmen einer
Programmausführung, die eine neue Funktionalität darstellt und
die mit der Applikation als Kommando oder Komponente
gespeichert wird. Beispiele: HyperTalk, Visual Basic Script oder
AppleScript und der Makrorekorder bei Emacs
Extension
Extension ist eine Anpassungstechnik, bei der die Funktionalität
einer Applikation durch das Hinzufügen von einem neuen Code
verbessert wird. Beispiel: Subclassing bei streng getypte Sprachen
Changing
Changing ist das Ändern des Quellcodes einer Applikation.
Beispiel: OpenSource-Projekte
Tabelle 3-4: Stufen von Anpassungstechniken [vgl. Mørch (1997), Mørch, Stiemerling und Wulf (1992)]
Mørch und Mehandjiev (2000) sehen in den Stufungen eine Möglichkeit von einer
benutzer-, domain- bzw. aufgabenorientierten hin zu einer systemorientierten Darstellung
zu gelangen. Die vierte Stufe unterscheidet sich dabei im technischen Sinne nicht von der
Softwarewartung. Jedoch besteht auf der fachlichen Seite der Unterschied, dass die
Anpassung nur den lokalen Bedürfnissen Rechnung tragen muss.
15
Vgl. auch Henderson und Kyng (1991, S. 226)
ALLGEMEINE GRUNDLAGEN
17
3.1.3.2 Kontextspezifische Anpassbarkeit
Der Umstand, dass Anpassungen aufgrund von konkreten Arbeitssituationen geschehen
und nicht auf einem abstrakten Modell des Gebrauchs basieren, führt zu unterschiedlichen
Forderungen.
Trigg und Bødker (1994) leiten daraus die Forderung ab, dass es für die anpassende Person
eine Möglichkeit geben muss, einen Schritt zurückzugehen, um einen größeren
Blickwinkel und eine abstraktere Sicht auf die Sache zu erhalten. Ansonsten würden, auf
lange Sicht gesehen, die jeweiligen Anpassungen zueinander unverträglich werden.
Mackay (1990) meint wiederum, dass die „Situiertheit des Gebrauchs”16 bei der
Systemgestaltung zu berücksichtigen ist. Am Beispiel von Mail-Filtern zeigt sie, dass es
schwierig ist, allgemeine Bedingungen anzugeben, wann diese angewandt werden sollen.
In der konkreten Situation können die Benutzer selbst einschätzen, ob es sinnvoll ist, einen
Filter zu benutzten. Mackay stellt deshalb die Forderung auf: „Allow users to encode
patterns of behaviour and informally include information about their current work
contexts” [Mackay (1990, S. 278)].
Eine Möglichkeit dies zu realisieren, besteht darin, dass das Design an den Arbeitskontext
anknüpft. Eine solche Idee findet sich auch beim WAM-Ansatz (siehe Abschnitt 3.3).
Auch bei Nardi (1993) findet sich die Forderung, dass Programmiersprachen für den
Endanwender domainspezifische Sprachkonstrukte mit aufzunehmen haben. Henderson
und Kyng (1991, S. 231) fordern, dass der Anwender mit möglichst wenig neuen
Mechanismen auskommen sollte. Dadurch könne er Änderungen mit bereits vertrauten
Mitteln durchführen.
3.1.3.3 Förderung der Anpassungskultur
Von verschiedenen Autoren wurde die Beobachtung gemacht, dass ein entscheidender
Faktor für erfolgreiches Anpassen in der Entwicklung einer Anpassungskultur („tailoring
culture“) besteht [Carter und Henderson (1990), McLean et al. (1990), Mackay (1990,
1991), Trigg und Bødker (1994)]. Mit dem Entwickeln einer Anpassungskultur ist zum
einen gemeint, eine Umgebung zu schaffen, die die Anwender anregt, die Software
anzupassen. Zum anderen soll auch eine Kultur etabliert werden, die das kollektive
Anpassen fördert. Beide Punkte werden im Idealfall sowohl durch die
Organisationsstruktur bzw. das Management als auch durch die Technik unterstützt.
16
Dass jede Art des Gebrauchs in einem essentiellen Sinne im materiellen und sozialen Umfeld verhaftet ist,
hat Suchman (1987) gezeigt. Sie spricht in dem Zusammenhang auch von „situated actions“, vgl. Suchman
(1987, S. 50).
18
Trigg und Bødker (1994) fanden in ihrem Fall heraus, dass in der Organisation ein
informelles „Wer fragt Wen“-Netzwerk existiert. Häufig wird in der Literatur auch eine
Person beschrieben, die die Rolle eines Anpassungsberaters einnimmt. Bei Mackay (1990)
heißt sie Translator, Gantt und Nardi (1992) sprechen von Gardeners und Gurus. Mackay
(1990) fand heraus, dass die Anpassungsberatung keine offiziell vorgesehene Aufgabe ist.
McLean et al. (1990) plädieren deshalb dafür, eine solche Stelle, die sie Handyman
nennen, einzurichten. Der Handyman hat neben der Beraterfunktion auch die Aufgabe,
zwischen Anwendern und Entwicklern zu vermitteln. Ein Befund der Studie von Gantt und
Nardi (1992) war der, dass die inoffizielle Position des Anpassungsberaters in einigen
Organisationen einer formalen oder semi-formalen Position gewichen ist.
Auf der technischen Seite besteht die Hauptanforderung darin, dass Anpassungen zwischen
den Benutzern ausgetauscht werden können, z.B. mittels Konfigurationsfiles17. Neben dem
Austausch soll es, gerade im Groupware-Bereich, auch möglich sein, Anpassungen
kollektiv zu nutzen. Dies führt aber zu dem Problem, den Geltungsbereich einer
Anpassung festzulegen (vgl. Abschnitt 3.1.3.5). Beim Austausch von Anpassungen besteht
die technische Herausforderung darin, dass die Anpassungen nicht abhängig sind vom
Rechnersystem, auf dem sie erstellt worden sind.
Eine technische Unterstützung der organisatorischen Probleme kann zum Beispiel darin
bestehen, dass man dem Benutzer hilft, fremde Anpassungen oder den richtigen Ansprechpartner zu finden, indem man das „Wer-fragt-wen“-Netzwerk elektronisch abbildet.
3.1.3.4 Anpassbarkeit und Sicherheit
McLean et al. (1990) beschreiben so genannte Buttons mit deren Hilfe die Benutzer ihr
System anpassen können. Diese Buttons waren in Xerox Lisp geschriebene Skripts, die
„drückbar“ („pressable“) aussahen und wenn sie gedrückt wurden, eine Aktion ausführten.
Sie konnten mittels E-Mail zwischen den Benutzern ausgetauscht werden. Diese Idee hat
auch Eingang in E-Mail-Programme, wie z.B. Outlook, gefunden. Diese Eigenschaft hat in
neuerer Zeit jedoch vor allem Schlagzeilen durch die Sicherheitsprobleme gemacht, die
dadurch entstanden sind, dass Viren bzw. Würmer dieses Feature ausnutzen. Abbildung
3-3 zeigt die Warnmeldung einer Sicherheitstest-E-Mail, die in ihrem Aufbau dem NimdaVirus versandten Botschaften entspricht.
17
Für Mackay (1990) ist das sogar eine Grundbedingung um überhaupt von Anpassbarkeit zu sprechen.
ALLGEMEINE GRUNDLAGEN
19
Abbildung 3-3 Warnmeldung einer Sicherheitstest-E-Mail, die beim Anklicken des mitgelieferten Anhangs
erscheint [siehe Siering (2000)]
Welche Auswirkungen Viren auf das Konzept der Anpassbarkeit haben, wurde noch nicht
genau untersucht18. Jedoch haben die Forderungen der Exploration (3.1.3.6), der
Beschränkung des Geltungsbereichs (3.1.3.5) und der Anpassungsmöglichkeiten (3.1.3.7)
mit der hier dargestellten Problematik insoweit eine Gemeinsamkeit, als dass sie alle
versuchen, Anpassungen zu verhindern, die zu nicht gewünschtem Systemverhalten führen
können.
3.1.3.5 Beschränkung des Gültigkeitsbereichs
Auf die Konflikte, die beim gemeinsamen Gebrauch von Anpassungen entstehen können,
haben schon Henderson und Kyng (1991) hingewiesen. Sie umreißen das Problem eines
Anwenders, der eine Änderung am System vornehmen will, wie folgt:
“Such coordination requires a user to be able to know who is affected by the change
being contemplated and to interact with them. When people do not want to change, it
may a1so require more complex mechanisms for supporting out-of-sync evolution of
systems, in which systems with different modifications can inter-operate together.”
Henderson und Kyng (1991, S. 233)
Systematisch haben sich Wulf, Stiemerling und Pfeifer (1999) mit dem Fall befasst, dass
Anpassungen nicht gleichmäßig für das gesamte System gelten sollen. Sie fordern, dass es
gerade im Groupware-Bereich möglich sein muss, unterschiedliche Gültigkeitsbereiche für
die Anpassung zu spezifizieren. Der Geltungsbereich besteht aus einer Teilmenge aller
Situationen, in der das System verwendet wird und gibt an, ob die Anpassung angewendet
werden soll bzw. darf.
Das Festlegen eines Gültigkeitsbereichs kann man als ein Spezialfall der Festlegung von
Zugriffsrechten ansehen. Jedoch gibt es bei der Anpassung zusätzlich die Schwierigkeit,
18
Jedoch stellen sie meines Erachtens einen sehr interessanten Untersuchungsgegenstand dar. Denn auf der
technischen Ebene sind Viren ein Beispiel für eine nicht antizipierte Möglichkeit, das Computersystem
anzupassen. Auf fachlicher Ebene kann man sicherlich nicht von Anpassung sprechen, weil Viren die
Kontrolle des Anwenders absichtlich unterlaufen und auch zu keinem besseren Fit führen.
20
herauszufinden, wann zwei Anpassungen hinsichtlich des Systemverhaltens zu einander
inkonsistent sind. So können z.B. zwei Anpassungen durch Seiteneffekte zueinander
unverträglich sein und unter Umständen dadurch das gesamte System destabilisieren. Der
Wunsch, zu überprüfen, ob die Anpassung den gewünschten Effekt hat, führt zu der
Forderung des Explorations-Modus (Abschnitt 3.1.3.6).
3.1.3.6 Explorations-Modus
Mackay (1990, S. 140) schildert das Problem, dass Anpassungen auch zu „Verschlimmbesserungen“ führen können. Aus diesem Problem leitet sich die Anforderung nach der
Explorierbarkeit von Anpassungen ab. Durch die Explorierbarkeit soll es nach Won (1998,
S. 25) „einem Benutzer möglich sein, das Verhalten, das sich durch die Anpassung ändert,
mit dem intendierten Verhalten zu vergleichen, ohne dass die Anpassung schon tatsächlich
in das System integriert wurde.“
Henderson und Kyng (1991, S. 235) fordern unter dem Gesichtspunkt des Lernens
ebenfalls einen Explorations-Modus. Dieser würde es dem Anwender erlauben, in einer
sicheren Art und Weise mit den Anpassungen zu experimentieren. Unter dem
Gesichtspunkt des Lernens wurde der Explorations-Modus auch von Wulf (2000)
untersucht.
3.1.3.7 Anpassungsmöglichkeiten beschränken
Die obigen Beispiele zeigen, dass die totale Flexibilität nicht unbedingt ein
erstrebenswertes Ziel ist. Stiemerling (1997) schlägt deshalb vor, die Anpassung durch
„tailoring constraints“ zu beschränken. Er unterscheidet dabei zwischen „static
constraints“, die bestimmte Systemzustände verbieten und „transitional constraints“, die
bestimmten Systemübergänge verbieten. Das Konzept der „architectural invariants“19 aus
dem Bereich der Software-Wartung kann nach Stiemerling als ein Beispiel für „static
constraints“ gelten.
3.1.3.8 Direkte Auswirkungen von Anpassungen
Obwohl, wie in Tabelle 3-1 aufgelistet, eines der Kriterien der Anpassung bei Henderson
und Kyng (1991) die indirekte Auswirkung ist, sollten gerade in Groupware-Systemen
Anpassungen zur Laufzeit durchführbar sein, denn die Systeme müssen Tag und Nacht
laufen und ein Herunterfahren des Systems würde die Mitarbeiter bei ihrer Arbeit stören [
Won (1998), Stiemerling und Cremers (1998)].
19
Vgl. Minsky (1997).
ALLGEMEINE GRUNDLAGEN
21
3.1.3.9 Direkte Aktivierbarkeit der Anpassungsfunktion
Das Konzept der direkten Aktivierung, so Wulf (1999), ist es, das Finden der
Anpassungsfunktion in dem Moment zu unterstützen, in dem sie gebraucht wird.
Anpassung wird aus der Sicht des Benutzers dann gebraucht, wenn die Benutzung einer
Funktion nicht zu dem gewünschten Effekt führt oder zu umständlich zu benutzen ist.
Im Fall des normalen Gebrauchs einer Funktion, so nimmt Wulf (1999) an, ist dem
Benutzer der Einstiegspunkt der Funktion bewusst. Eine andere Kategorie bilden die
Funktionen, die nicht vom Benutzer ausgelöst werden. Diese haben per Definition keinen
Einstiegspunkt, so dass nur die Präsentation ihrer Ausführung bzw. ihrer Ergebnisse die
einzig wahrnehmbaren Stellen darstellen.
Das Konzept der direkten Aktivierung sieht vor, dass die zugehörige
Anpassungsvorrichtung einer Funktion an die Einstiegpunkte gekoppelt werden soll. Falls
keine Einstiegspunkte vorhanden sind, soll die Anpassungsvorrichtung an den Stellen
aktiviert werden können, an denen die Ausführung der Funktion sichtbar wird. Dies kann
z.B. über eine wahrnehmbare Präsentation der Aktivierung geschehen oder durch die
Möglichkeit, einen speziellen Anpassungsmodus durch eine Tastenkombination zu
aktivieren.
3.1.3.10 Rückmeldung über die Anpassungen geben
Mackay (1990) sieht im Anpassen eine Investition in die Zukunft, die auf unzureichendem
Wissen basiert. So entscheiden sich Individuen zum Anpassen, wenn sie auf interne oder
externe Ereignisse reagieren. Diese Entscheidung beruht aber auf einer subjektiven
Wahrnehmung und nicht auf dem wirklichen aktuellen Verhalten. Deshalb fordert Mackay
(1990, S. 319), dass ein anpassbares System dem Benutzer Rückmeldung darüber geben
sollte, wie wirkungsvoll seine Anpassungsentscheidung ist und so ihm die Gelegenheit
gegeben wird, über den aktuellen Vorgang des Gebrauchs nachzudenken. Diese
Eigenschaft nennt sie reflexiv.
Geht es bei Mackay um individuelle Anpassung, beschäftigen sich Henderson und Kyng
(1991, S. 235) mit der Rückmeldung bei Gruppenanpassungen. Für sie ist es essentiell,
dass der Verfasser einer Änderung von den betroffenen Anwendern und ihren
Bedürfnissen eine Rückmeldung bekommt. Sie fordern deshalb, dass Anpassbarkeit nicht
unabhängig von den Kommunikationsmechanismen betrachtet werden soll, die das Teilen
von Anpassungen und die Rückmeldungen darüber unterstützen.
22
3.1.3.11 Erklärung des Designs mit in das System integrieren
McLean et al. (1990, S. 177) konstatieren: “Tailorability shifts some of the system design
problems to end users, a role for which they are ill-equipped”. Damit der Anwender nicht
allein gelassen wird, ist eine zusätzliche Unterstützung notwendig. Eine Forderung von
MacLean et al. ist es deshalb, auch Erläuterungen zum Design der Anwendung mit in das
System zu integrieren.
Die Forderung von Mørch und Mehandjiev (2000), die indirekte, langfristige Mitarbeit der
Entwickler bei der Anpassbarkeit zu unterstützen, zielt in eine ähnliche Richtung20. Bei
ihrem Ansatz zur Unterstützung unterscheiden sie zwischen den mehrfachen
Repräsentationen („multiple representations“) und Anwendungseinheiten („application
units“). Die mehrfachen Repräsentationen sollen den reichen Entwicklungskontext
einfangen, so dass dieser mit dem Benutzer geteilt werden kann. Bei den Repräsentationen
unterscheiden sie zwischen den benutzerorientierten und den designorientierten. Während
die benutzerorientierten Repräsentationen einen abstrakten Überblick über das System
geben, und das „How to use“ erklären, dienen die designorientierten Repräsentationen dazu
das „Was“ und das „Wie“ zu erklären. Zu den designorientierten Repräsentationen zählen
Mørch und Mehandjiev (2000) sowohl Anforderungsspezifikationen, als auch Dokumente,
die die Designgründe erläutern. Die Anwendungseinheiten sollen dem Anwender die
mehrfachen Repräsentationen während der Nutzung zugänglich machen. Sie enthalten drei
Arten von Repräsentationen: 1. die Benutzerschnittstelle, 2. Erläuterungen und 3. den
Programm-Kode. Eine Umsetzung des Ansatzes, auf den ich hier nicht eingehe, zeigen
Mørch und Mehandjiev (2000) anhand einer Grafikprogramm-Implementierung.
3.2 Komponentenbasierte Anpassbarkeit
Eine Motivation für die komponentenbasierte Anpassbarkeit findet sich bei Henderson und
Kyng (1991), die in der Dekomposition die wichtigste Aufgabe beim Entwickeln eines
anpassbaren Systems sehen. Sie muss auf das Verstehen durch den Anwender ausgerichtet
sein. Ihre Aussage über die objektorientierte Gestaltung kann dabei auf Softwarekomponenten übertragen werden:
„Object oriented design and implementation are a promising basis for this
kind of work since they may allow us to shorten or even bridge the gap between
the structure of computer systems and their code on the one hand and the
structure of the work and concepts of the application area on the other.”
Henderson und Kyng (1991, S. 240)
20
Mørch und Mehandjiev (2000) verstehen Anpassbarkeit als eine durch den Computer vermittelte
Kooperation zwischen Benutzer und Entwickler (vgl. S. 9).
ALLGEMEINE GRUNDLAGEN
23
Daneben geben die Gemeinsamkeiten von Anpassung und Wartung Anlass dazu, zu
prüfen, inwieweit Konzepte, die unter dem Gesichtspunkt der Wartbarkeit von Software
entwickelt wurden, auch auf die Gestaltung der Anpassbarkeit übertragbar sind. Eines der
Konzepte, von dem man sich eine bessere Wiederverwendbarkeit, aber auch eine bessere
Wartbarkeit verspricht, ist die Verwendung von Softwarekomponenten.
3.2.1 Softwarekomponenten
Softwarekomponenten werden meist durch einen Vergleich mit den klassischen
Ingenieursdisziplinen, wie der Automobilkonstruktion, motiviert. Durch die Wiederverwendung vorgefertigter, genormter Teile lassen sich kürzere Entwicklungszeiten und
preiswertere Produktionskosten erreichen, so z.B. Lumpe (1999) und Szyperski (1998).
Diese Idee der Komponenten versucht man auf die Softwareentwicklung zu übertragen.
Dadurch soll die Wiederverwendbarkeit durch Dritte erhöht werden und zu einer besseren
Wartbarkeit des Systems führen.
Jedoch existiert keine allgemein anerkannte Definition, was
Softwarekomponente zu verstehen ist, wie folgende Zitate demonstrieren21.
unter
einer
“A software component is a static abstraction with plugs.” Nierstrasz und
Tsichritzis (1995)
„A software component is a unit of composition with contractually specified
interfaces and explicit context dependencies only. A software component can
be deployed independently and is subject to composition by third party.”
Szyperski (1998, S.34)
“A component is a physical, replaceable part of a system that packages
implementation and provides the realization of a set of interfaces. A component
represents a physical piece of implementation of a system, including software
code (source, binary or executable) or equivalents such as scripts or command
files.” OMG (1999, S. 2-29)
In der Definition von Nierstrasz und Tsichritzis kommt der Kern des Konzepts der
Softwarekomponenten zum Ausdruck. Szyperski beschreibt hingegen die maßgeblichen
Anforderungen, die an eine Komponente gestellt werden. Er definiert damit, was unter
einer gelungenen Softwarekomponente zu verstehen ist.
21
Eine längere Zitatensammlung findet sich bei Szyperski (1998, S. 164 ff.).
24
In der vorliegenden Arbeit werde ich weitgehend die Begriffsbestimmung von Stiemerling
(2000, S. 45) übernehmen, der von Komponenten-Modellen spricht. Unter einem
Komponenten-Modell wird eine Spezifikation verstanden, die festlegt, was unter einer
Komponente zu verstehen ist. Das Modell bestimmt, wie ein Stück Software aussehen
muss, damit es die Bedingungen erfüllt, die an einen Komponenten-Typ bzw. an eine
Komponenten-Instanz gestellt werden.
Außerdem wird spezifiziert, wie ein Typ erzeugt wird, wie die Instanzen miteinander
interagieren und wie die Interfaces für diese Interaktion aussehen. Die Spezifikation sollte
auch beschreiben, welche Annahmen man aufgrund des Interfaces über die
implementierende Komponente machen kann.
Innerhalb eines Komponenten-Modells ist dann eindeutig festgelegt, was eine
Softwarekomponente ist und was nicht. Im kommerziellen Bereich haben sich
verschiedene Komponenten-Standards etabliert, die jeweils ein Komponenten-Modell im
oben genannten Sinne beschreiben. Die wichtigsten dieser de-facto Standards sind
CORBA von der OMG, die (Enterprise) JavaBeans von Sun und COM bzw. COM+ von
Microsoft22. Ein Vergleich der, diesen Standards zugrunde liegenden, Konzepte findet sich
bei Szyperski (1998).
Ciupke und Schmidt (1996) haben die Modelle danach untersucht, welche Methoden sie
bereitstellen, um die Abhängigkeit vom Kontext zu verringern. Dabei unterscheiden sie
zwischen konzeptionellen und technischen Methoden. Die Abstraktion sehen sie als die
wichtigste konzeptionelle Methode an. Sie sieht von konkreten Details ab und fördert
damit die Unabhängigkeit in einem konzeptionellen Sinne. In Tabelle 3-5 sind eine Reihe
von technischen Eigenschaften aufgelistet, welche die Unabhängigkeit verbessern.
CORBA
OLE/COM
JavaBeans
Separate compiling
+
+
+
Language independent
+
+
-
Processes
+
+
+
Distribution
+
+
+
Program version
planned
+
+
Operation system independent
+
in future
+
Tabelle 3-5 Vergleich verschiedener Komponenten-Modelle [Ciupke und Schmidt (1996)]
22
COM bzw. COM+ werden langfristig, nach Aussagen von Microsoft, durch ihre .NET Strategie ersetzt.
ALLGEMEINE GRUNDLAGEN
25
In ihr werden die verschieden Standards gegenübergestellt und verglichen, wie diese die
technischen Eigenschaften unterstützen.
Dass Komponenten einzeln kompiliert werden können („separate compiling“), macht sie
von der Implementation anderer Komponenten unabhängig. Dass sie verteilt ausgeführt
werden können („distribution“) und nicht von einem bestimmten Betriebssystem abhängen
(„operation system independent“) erlaubt es, die Komponenten in verschiedenen
Einsatzszenarios zu verwenden. Die Parallelität („processes“) erlaubt es einer Anwendung,
mehrere Komponenten parallel laufen und sie von verschiedenen Prozessen aufrufen zu
lassen. Die Versionierung („program version“) erlaubt es, eine Komponente um
zusätzliche Funktionalität zu erweitern, ohne die Anwendung zu verändern. Durch das
Sprachunabhängige („language independent“) wird erreicht, dass die Entwicklung einer
Komponente von der Wahl der Programmiersprache unabhängig ist.
3.2.2 Kompositionsbeschreibungssprachen
Bei den oben genannten Standards steckt die Zusammensetzung der Komponenten, auch
„Verdrahtung“ genannt, meist implizit in den Komponenten selbst und kann nur bedingt
durch Reengineering-Tools wieder zurückgewonnen werden. Dadurch geht leicht der
Überblick über den Aufbau verloren und das Re-Komponieren der Anwendung wird
erschwert. Demgegenüber gibt es in der Forschung verschiedene Ansätze, die Verdrahtung
durch eine eigene Beschreibung zu spezifizieren. Bei der dafür vorgesehenen Sprache
spricht man deswegen auch von der Kompositionsbeschreibungssprache (CDL)23 oder
allgemeiner von der Strukturbeschreibungssprache. Das Problem, die Struktur eines Computersystems zu beschreiben, findet man in verschiedenen Bereichen der Informatik. Dies
ist der Grund, dass ähnliche Konzepte unter unterschiedlichen Bezeichnungen anzutreffen
sind. Neuerdings wird häufig der Begriff der Architekturbeschreibungssprachen (ADL)24
benutzt.
In der Forschung sind eine Reihe von ADLs entwickelt worden, die jeweils einen anderen
Schwerpunkt setzen. Einige davon sind in Tabelle 3-6 aufgelistet.
23
24
CDL steht für Composition Description Language.
ADL steht für Architecture Description Language.
26
Sprache
ACME
Darwin
OLAN
Einsatzschwerpunkt
ACME dient dazu, Architekturinformationen zwischen verschiedenen
ADL-Sprachen auszutauschen. Sie stellt deshalb eine Lingua franca dar,
mit der sich verschiedene ADLs vergleichen lassen [Garlan, Monroe und
Wile (1997)].
Darwin dient der Analyse verteilter Systeme, deren Komponenten über
den Austausch von Nachrichten kommunizieren („message-passing
systems“) [Magee et al. (1995), Ng und Kramer (1995), Radestock und
Eisenbach (1996)].
OLAN wurde entworfen, um heterogene Altlast-Systeme zu integrieren
und sie auf ein verteiltes Netzwerk von Prozessknoten zu verteilen [
Bellissard et al. (1995), Bellissard et al. (1996)].
Wright
Picolla
EJB
Wright dient der Spezifikation und der statischen Analyse von
Architekturen [Allen (1997), Allen und Garlan (1997)].
Picolla ist eine experimentelle Kompositionssprache, die dem Paradigma
„Application = Components + Scripts“ folgt [Schneider (1999),
Achermann et al. (2001), Achermann und Nierstrasz (2001)].
Enterprise JavaBeans (EJB) sind für unternehmenskritische Back-End
Anwendungen entworfen worden, bei denen Transaktionen mit
persistenten Daten im Vordergrund stehen [Sun Microsystems (2001)].
Tabelle 3-6 Architekturbeschreibungssprachen und ihr Einsatzschwerpunkt
In Abschnitt 3.3.3 wird CAT, eine Abwandlung von DARWIN, beschrieben. CAT dient
beim FlexiBean-Ansatz als Kompositionsbeschreibungssprache. Ich beschreibe an dieser
Stelle allerdings nicht DARWIN, sondern nur die Haupteigenschaften von ACME. Dass
die Sprache ACME beschrieben wird, liegt daran, dass sie als eine Lingua franca für ADLs
entwickelt wurde, mit deren Hilfe man die unterschiedlichen Ansätze vergleichen kann.
ALLGEMEINE GRUNDLAGEN
27
Abbildung 3-4 Die Strukturelemente der ACME [Garlan, Monroe und Wile (1997, S. 53)]
Die Struktur einer Komponentenarchitektur ist durch folgende Eigenschaften gegeben:
Komponenten („components“) repräsentieren die rechnenden Elemente und die
Datenspeicher des Systems. Eine Komponente kann mehrfache Interfaces besitzen,
wobei jedes mit einem Port benannt wird25.
Ports identifizieren einen Punkt zur Interaktion zwischen einer Komponente und seiner
Umgebung. Ein Port kann für ein einfaches Interface oder eine Prozedursignatur,
aber auch für ein Protokoll stehen.
Verbindungen („connectors“) repräsentieren die Interaktionen zwischen den
Komponenten. Verbindungen haben ebenfalls Interfaces, die durch eine Menge von
Rollen definiert sind. Eine Verbindung mit zwei Rollen heißt binäre Verbindung.
Rolle („role“) ist das Gegenstück zum Port. Jede Rolle einer Verbindung definiert auf der
Seite der Verbindung einen Teilnehmer einer Interaktion.
Systeme („systems“) sind definiert durch die Komponenten, die Verbindungen und deren
Interaktion und sie können durch einen Graphen repräsentiert werden. Systeme
können auch hierarchisch sein. Dann repräsentieren Verbindungen und Knoten die
„Binnen“-Architektur eines Subsystems.
Repräsentation definiert die Außenansicht eines Subsystems. Es ist erlaubt, dass jedes
Subsystem mehrere Repräsentationen besitzt.
Rep-Maps geben an, wie eine Außenansicht auf eine Binnenarchitektur abzubilden ist26.
Neben der Struktur besitzt eine Architekturbeschreibung meist noch weitere Angaben. Das
sind vor allem Hilfsinformationen, die Dinge wie Laufzeiteigenschaften, Semantik,
Protokolle, Ausführungsbeschränkung und Ressourcenverbrauch festlegen. Um diese zu
unterstützen, erlaubt ACME die Strukturbeschreibung zu kommentieren. Dies geschieht
25
ACME ist als Austauschsprache und nicht zur Beschreibung lauffähiger Systeme gedacht. Deshalb muss
den Komponenten nicht unbedingt ein Komponenten-Modell zugrunde liegen.
26
Das Subsystem mit Repräsentation und Rep-Map wird beim FlexiBean-Ansatz durch zusammengesetzte
Komponenten realisiert. Das Subsystem besteht aus den internen Verbindungen. Eine Repräsentation besteht
dann aus den exportierten Ports und durch die Rep-Map werden die exportierten Ports mit internen Ports
verbunden (vergleiche dazu auch Abschnitt 3.3.3).
28
durch so genannte Properties. Sie besitzen einen Namen, optional einen Typ und einen
von ACME nicht interpretierten Wert. Zudem stellt ACME eine eigene Sprache zur
Verfügung27, mit deren Hilfe sich Bedingungen („constraints“) spezifizieren lassen, die
die Architektur erfüllen muss.
Neben einzelnen Architekturbeschreibungen gibt es auch die Möglichkeit, allgemeine
Architekturstile („architecture styles“) bzw. -muster zu spezifizieren. In ACME können
solche Stile durch die Angabe eines Typsystems beschrieben werden. Ein Typ besteht
dabei aus einem Namen und einer Liste der verlangten Substrukturen, Properties und
Bedingungen.
3.2.3 Komponentenbasierte Anpassbarkeit und Anpassungstechniken
Die Beschreibung des Systems, die durch die CDL gegeben ist, bietet eine Möglichkeit zur
Anpassung. Durch das Ändern der Beschreibung ändert man auch das System. Man kann
in diesen Fall also von Anpassung sprechen. Wendet man nun die Definition der
technischen Anpassbarkeit von Stiemerling (2000, S. 20) auf komponentenbasierte
Systeme an, kommt man zur Definition der komponentenbasierten Anpassbarkeit.
Definition der komponentenbasierten Anpassbarkeit [Stiemerling (2000, S.26)]:
Ein Computer-System ist komponentenbasiert-anpassbar, wenn es folgende Bestandteile
besitzt:
1. ein Komponenten Modell,
2. eine Kompositionsbeschreibungssprache (CDL),
3. eine Funktion, die die in der CDL beschriebenen Komposition auf aktuell erzeugte
Komponenten, die das Software-System lauffähig machen, abbildet,
4. die Funktionalität, die Komposition zu verändern.
Es bietet sich an, für die in Tabelle 3-4 aufgezählten Techniken äquivalente Techniken im
Bereich der komponentenbasierten Anpassbarkeit zu suchen. Eine solche Übertragung der
Stufung findet sich bei Stiemerling (2000, S. 56 ff.), der eine dreiteilige Aufgliederung der
Techniken vornimmt. Eine leicht geänderte Stufung ist in der Tabelle 3-7 wiedergegeben.
27
Die Sprache basiert auf der Prädikatenlogik erster Ordnung.
ALLGEMEINE GRUNDLAGEN
Stufe
29
Beschreibung
Konfigurieren Das Konfigurieren der Parameter einer einzelnen Komponente
entspricht weitestgehend der Technik der Customization.
einer
Komponente
Ändern der
Komposition
und das Einfügen neuer
Komponenten
typen
Das Ändern der Komposition erlaubt eine größere Möglichkeit,
das System anzupassen und auf nicht antizipierte Anforderungen
zu reagieren. Diese Stufe verlangt auf der anderen Seite vom
Anwender, dass er nicht nur die einzelne Komponente, sondern
auch deren Zusammenhang versteht. Reicht das Ändern der
Komposition nicht aus, kann der Anwender z.B. bei Kollegen oder
auf dem freien Markt nach der passenden Komponente suchen und
sie einfügen.
Diese Stufe erhöht die Möglichkeit der Anpassung, da der
Schreiben
neuer Kompo- Anwender nicht darauf angewiesen ist, dass eine passende
Komponente schon existiert. Diese Stufe stellt jedoch einen großen
nententypen
Schritt hinsichtlich der Qualifikation des Anwenders dar, weil sie
verlangt, dass er die zu Grunde liegende Programmiersprache beherrscht.
Komponenten Das Ändern eines bestehenden Komponententyps stellt deswegen
eine eigene Stufe dar, weil die Änderung des Typs sich im
typ ändern
laufenden System auf alle Instanzen des Typs auswirkt.
Tabelle 3-7 Stufen von Techniken bei der komponentenbasierten Anpassbarkeit
30
3.3 Der FLEXIBEAN-Ansatz
Der FlexiBean-Ansatz wurde von Stiemerling im Rahmen seiner Dissertation entwickelt [
Stiemerling (2000)]. Der Ansatz definiert ein Rahmenwerk zur Entwicklung
komponentenbasiert-anpassbarer Systeme. Die einzelnen Bestandteile und deren
Abhängigkeiten sind in Abbildung 3-5 zu sehen.
1 FlexiBeanKomponentenmodell
2 D/CAT
KomponentenbeschreibungsSprache
3
4
EvolvePlattform
Legende:
Spezifikation
Tailoring
API
Produkt
Anpassungsumgebung
abhängig von
Abbildung 3-5 Übersicht über die Bestandteile des FlexiBean-Systems
Alle Teile zusammen bezeichne ich als das FlexiBean-System. Es erfüllt dabei die
Bedingungen von der Definition über die komponentenbasierte Anpassbarkeit (Seite 28)
denn:
1. Das Komponenten-Modell besteht aus dem FlexiBean Komponenten-Modell, das
eine Erweiterung des JavaBean Modells ist.
2. Als Kompositionsbeschreibungssprache (CDL) steht CAT28 bzw. DCAT zur
Verfügung. Mit ihrer Hilfe können Komponentenhierarchien und verteilte
Anwendungen beschrieben werden.
3. Die durch die CDL beschriebene Komposition kann auf der EVOLVE-Plattform29
ausgeführt werden. Die EVOLVE-Plattform bildet die Komposition auf
Komponenteninstanzen ab. Falls diese noch nicht existieren, werden sie durch die
EVOLVE-Plattform erzeugt.
28
29
CAT ist in Stiemerling (1997b) spezifiziert.
Die EVOLVE-Plattform wurde von Hinken (1999) implementiert.
ALLGEMEINE GRUNDLAGEN
31
4. Die Plattform stellt eine Tailoring-API zur Laufzeitanpassung zur Verfügung. Über
sie kann eine Anpassungsumgebung auf die Komposition zugreifen und
verändern30.
Nachfolgend wird zunächst das JavaBean Modell dargestellt, anschließend wird auf die
einzelnen Teile des FlexiBean-Ansatzes eingegangen.
3.3.1 JavaBeans
„The goal of the JavaBeans APIs is to define a software component model for
Java, so that third party ISVs can create and ship Java components that can be
composed together into application by end users.“ Sun Microsystems (1997, S.
7)
Die JavaBeans sind von Sun Microsystems (1997) spezifiziert. Dort werden sie als eine
wiederverwendbare Softwarekomponente definiert, die in einer Entwicklungsumgebung
graphisch manipuliert werden kann [Sun Microsystems (1997, S. 9)]. Die Spezifikation
besagt, dass jede Java-Klasse als Komponente ausgezeichnet werden kann. Sie muss nicht,
wie z.B. eine Enterprise JavaBean, von einer bestimmten Klasse abgeleitet sein oder ein
bestimmtes Interface implementieren. Durch die Gleichsetzung einer Komponente mit
einer Klasse unterscheidet sich das JavaBean-Modell von anderen Modellen wie COM
oder CORBA, die das nicht verlangen. Eine „richtige“ Komponente wird eine Java-Klasse
aber erst dadurch, dass sie bestimmte Charakteristika aufweist. Die wichtigsten Merkmale
einer JavaBean sind Ereignisse (Events), Eigenschaften (Properties) und Methoden. Diese
Merkmale werden hauptsächlich durch die Namenskonventionen festgelegt. Hält sich eine
JavaBean an diese Konventionen, ist es einer Entwicklungsumgebung mittels Introspektion
möglich, die JavaBean zu analysieren und anzupassen.
Events werden in Kapitel 6 und 8 der JavaBean Spezifikation beschrieben und stellen eine
der Kerneigenschaften der JavaBean Architektur dar. Sie sind der gängigste Mechanismus,
um mit Komponenten zu interagieren. Es wird dabei zwischen der Ereignisquelle („Event
Source“) und dem Ereignislauscher („Event Listener“) unterschieden. Um eine lose
Kopplung zwischen den beiden Komponenten zu erreichen, wird beim Event-Modell eine
Variation des in Gamma et al. (1996, S. 257ff.) beschriebenen Observer-Patterns benutzt.
Beim Event-Mechanismus spielt die Listener-Schnittstelle das zentrale Element in der
Interaktion. Idealerweise ist durch die Spezifikation der Schnittstelle die gesamte
Interaktion komplett definiert.
30
Eine 3D-Anpassungsumgebung wurde von Hallenberger (2000) implementiert.
32
Der Event-Mechanismus soll anhand von Abbildung 3-6 erläutert werden. Damit die
Quelle JButton, ihre Abnehmer, z.B. MyButtonListener, nicht kennen muss, wird
eine eigene Schnittstelle, ActionListener, eingeführt. Der Interessent MyButtonListener muss diese Schnittstelle implementieren, wenn er an den Ereignissen
interessiert ist. JButton besitzt die Methode addActionListener, um ActionListeners
bei ihm anzumelden bzw. removeActionListener um sie wieder abzumelden.
Allgemein ist die Namenskonvention für das An- und Abmelden:
void add<listener interface name>(<listener interface name> 1)
void remove<listener interface name>(<listener interface name> 1)
Falls ein Ereignis auftritt, informiert die Quelle die angemeldeten Abnehmer, indem sie die
geeignete Methode der Listener-Schnittstelle aufruft. Wenn z.B. der Button von einem
Benutzer gedrückt wird, ruft der JButton die actionPerformed Methode des Listener
auf.
«interface»
java.util.EventListener
java.util.Event
+getSource()
ActionEvent
0..*
0..*
«interface»
ActionListener
+actionPerformed()
JButton
+addActionListener()
+removeActionListener()
MyButtonListener
Abbildung 3-6 UML-Klassendiagramm, das das JavaBean Event-Modell zeigt
Die Spezifikation schreibt vor, dass die Listener-Schnittstelle die Schnittstelle java.ut31
il.EventListener
erweitern muss, und per Konvention mit dem Namen Listener
endet. Der Marker dient dazu, eine Komponente als Event-Quelle und -Ziel zu
identifizieren. Das Ziel wird darüber identifiziert, dass es die durch den Marker
gekennzeichnete Listener-Schnittstelle implementiert. Die Quelle kann durch die
Namenskonvention erkannt werden. Dieser Mechanismus hat zur Folge, dass eine
Komponente für jeden Listener-Typ nur einen Interaktions-Port anbieten kann.
Die Listener-Schnittstelle soll aus einer Menge von Ereignisbehandlungsmethoden
bestehen, die dem „Standardmuster“ entsprechen sollen. Die Konvention besagt, dass die
Signatur folgendem Muster entspricht: void <eventOccurenceMethodName>
(<EventStateObjectType> evt). Die Informationen, die bei einer Benachrichtigung
mitgeliefert werden, sind im Zustand des Ereignisobjekts evt zu kapseln. Die Konvention
besagt, dass die Eventklasse von java.util.EventObject abgeleitet sein soll und mit
31
java.util.EventListener ist eine so genannte Marker-Schnittstelle, weil sie keine Methoden
besitzt.
ALLGEMEINE GRUNDLAGEN
33
dem Namen Event endet. Der Abnehmer kennt über die im java.util.EventObject
deklarierte Methode getSource() indirekt die Quelle.
Die Spezifikation verzichtet weitgehend darauf, die Semantik der Interaktion festzulegen.
Im allgemeinen ist die Kommunikation aber multicasted, d.h. dass ein Ereignis an mehrere
Abnehmer geschickt wird. Jedoch ist die Reihenfolge nicht festgelegt, in der die Listeners
aufgerufen werden. Daneben müssen bei ereignis-basierter Kommunikation noch andere
Schwierigkeiten beachtet werden, wie zum Beispiel das in Abschnitt 7.2.3 diskutierte ReEntrant Problem.
In Kapitel 7 und 8 der JavaBean-Spezifikation werden Properties beschrieben. Sie sind
diskrete, benannte Attribute einer JavaBean, die das Verhalten und/oder das Aussehen
beeinflussen können. Es gibt einfache, boolsche und indexierte Properties. Sie werden
durch getter und setter Methoden von außen zugänglich gemacht. Einfache Properties
gehorchen dabei folgendem Muster:
void set<PropertyName>(<PropertyType> value) // void setFoo(Wombat w)
<PropertyType> get<PropertyName>()
// Wombat getFoo()
Über Methoden schweigt sich die Spezifikation weitgehend aus. Sie geht davon aus, dass
in einer Komponentenumgebung alle öffentlichen Methoden einer JavaBean als äußere
Methoden angezeigt werden. Sie sind damit anderen Komponenten oder Scriptsprachen
zugänglich.
Alle zu einer Komponente zugehörigen Klassen werden zu einem so genannten jarArchiv32 zusammengebunden. Im Archiv wird auch vermerkt, welche Klasse eine
Komponente bzw. nur eine Hilfsklasse darstellt. Hält sich eine JavaBean an die oben
beschriebenen Konventionen und Muster, so können ihre Properties, Methoden und
Ereignisdienste generisch ermittelt werden. Dies geschieht mit Hilfe der
Metaprogrammiereigenschaften von Java, die durch die Reflection API zur Verfügung
stehen.
3.3.2 Erweiterungen durch das FlexiBean-Modell
Anhand einer Fallstudie zeigt Stiemerling (2000, S. 72 ff.) einige Unzulänglichkeiten des
JavaBean Modells auf. Zu den Kritikpunkten zählen: 1. dass verteilte Komponenten nicht
unterstützt werden, 2. das Fehlen benannter Ports und 3. das Fehlen anderer Interaktionsformen neben dem Ereignismechanismus. Die in Stiemerling (1998) spezifizierte
FlexiBeans erweitern die JavaBeans, um diese Schwachstellen zu beheben.
32
Jar-Archive sind komprimierte Dateien.
34
Der erste Kritikpunkt bekommt durch neue Anforderungen an moderne Anwendungssysteme, insbesondere im CSCW-Bereich, eine immer größere Bedeutung. Da die Systeme
meistens parallel auf verschiedenen Rechnern laufen, ist es wichtig, dass Komponenten
über Rechnergrenzen hinweg interagieren können. In einem Komponentenmodell sollte
deshalb die Remote-Fähigkeit explizit enthalten sein. FlexiBeans verbinden deshalb Javas
RMI mit dem JavaBean Modell. RMI steht für „Remote Method Invocation“ und ist Javas
Standardtechnologie für den Methodenaufruf bei verteilten Objekten. Das Prinzip von RMI
beruht darauf, dass auf der Client- und auf der Serverseite Proxies eingeführt werden, die
den Remote-Zugriff kapseln. Der clientseitige Proxy wird als Stub, der serverseitige als
Skeleton bezeichnet. Sie werden mit Hilfe eines speziellen Compilers erzeugt. Die
Serverklasse muss die Methoden, die der Client sehen soll, in einer Schnittstelle
deklarieren, die das Interface java.rmi.Remote erweitert. Tritt beim Zugriff auf den
fremden Rechner ein Fehler auf, zeigt die aufgerufene Methode dies durch eine
java.rmi.RemoteException an. Die Serverklasse selber muss von
java.rmi.server.UnicastRemoteObject abgeleitet sein. Das FLEXIBEANModell wird nun so umgewandelt, dass die Objekte remote-fähig sind, die durch die Ports
einer Komponente angeboten werden. Die Remote-Fähigkeit schlägt sich in den
nachfolgend beschriebenen Konventionen wieder.
Der zweite Punkt kritisiert, dass beim JavaBean Modell die Ports einer Komponente nicht
benannt werden können. Dies hat zur Folge, dass eine Komponente keine zwei Ports mit
dem gleichen Ereignistyp und der gleichen Polarität besitzen kann. Soll z.B. der
MyButtonListener aus Abbildung 3-6 die Ereignisse zweier Buttons abhören, müssen
sie an den gleichen Port angeschlossen werden. Deshalb muss die Komponente vor der
Verarbeitung des Ereignisses zuerst die Quelle bestimmen. Ein anderer Ansatz, den Sun
Microsystems (1997, S. 35-37) beschreibt, besteht darin, dass die Ziel-Komponente für
jede Quelle einen eigenen Adapter vorschaltet, der mit der Komponente
zusammenarbeitet33. Der FlexiBean-Ansatz löst das Problem, indem die Namenskonvention so erweitert wird, dass Ports benannt werden. Beim Listener geht man, wie bei
der Quelle, dazu über, diesen mittels einer Namenskonvention zu identifizieren. Die
Spezifikation verlangt zusätzlich, dass zwei Ports einer Komponente nicht den gleichen
Namen haben dürfen. Dadurch wird das Zusammenstecken der Beans vereinfacht.
Der letzte Punkt kritisiert, dass die JavaBeans nur den Ereignismechanismus als einzige
Interaktionsform zwischen den
Komponenten kennen. Die
hinter dem
Ereignismechanismus steckende Idee ist die, dass eine Interaktion nach dem Verteilprinzip
abläuft. Hierbei geht, wie in Abbildung 3-7 (a) zu sehen ist, die Aktion von der
Komponente aus, die auch die Information bereitstellt. Üblicherweise „feuert“ die
33
Eine Kritik daran findet sich in Szyperski (1998, S. 231) und bei Stiemerling (2000, S. 74) .
ALLGEMEINE GRUNDLAGEN
35
Komponente ein Event, wenn ihr Zustand sich ändert. Das Ausstrahlen von Radio und
Fernsehsendungen ist ein Beispiel, das nach diesem Prinzip abläuft. Mit dem
Ereignismechanismus lassen sich dagegen nur schlecht Interaktionen modellieren, bei
denen die Kontrolle nicht bei der Komponente liegt, die auch die Information besitzt. Dies
betrifft alle Arten von Abfragen, insbesondere bei Datenbanken. Derartige Interaktionen
folgen vielmehr dem Holprinzip. Bei ihm stößt der Abnehmer, wie in Abbildung 3-7 (b) zu
sehen ist, beim Anbieter eine Anfrage an und erhält als Resultat die gewünschte
Information.
Abbildung 3-7 Vergleich der Interaktionsformen nach dem Verteil- und den Holprinzip
Um die Interaktion mathematisch untersuchen zu können, benutzt Stiemerling (2000) die
Theorie der Datenräume zur Modellierung von Softwarekomponenten34. Innerhalb dieser
Theorie modelliert er neben dem Ereignismechanismus eine Reihe anderer Interaktionsmechanismen35. Insbesondere widmet er sich der Interaktion durch gemeinsame Variablen.
Eine gemeinsame Variable zeichnet sich dadurch aus, dass sie 1. von mehreren geteilt wird
und dass sie 2. keinen Kontrollfluss besitzt. Stiemerling (2000) zeigt in seinem formalen
Modell, dass „with a combination of JAVA event and shared variable interaction
primitives one can always achieve a high quality implementation of arbitrary
decompositions“ [Stiemerling (2000, S. 117)]. Aus dieser Analyse entspringt die
Designidee, das Komponentenmodell um gemeinsame Variablen zu erweitern. Deshalb
besitzen die FlexiBeans so genannte SharedObjects als eine weitere Interaktionsform.
SharedObjects sind die objektorientierte Realisierung von gemeinsamen Variablen und
kapseln beliebige Daten, auf die alle bei der Interaktion beteiligten Komponenten zugreifen
können. Dabei werden die Zugriffsmethoden auf das SharedObjects in einer Schnittstelle
deklariert, die vom SharedObject implementiert wird. Da der Zugriff auf den Zustand eines
SharedObject über seine Methoden gekapselt ist, hat das zur Konsequenz, dass der
Kontrollfluss nur in der Theorie nicht an das SharedObject übergeben wird36.
SharedObjects bieten, wie Abbildung 3-8 zeigt, eine symmetrische Interaktionsform an,
bei der keine der beteiligten Komponenten ausgezeichnet ist. Im FlexiBean-Modell sind
die SharedObjects jedoch keine eigenständigen Einheiten, sondern werden einer
Komponente zugeordnet, die für die Erzeugung des SharedObjects verantwortlich ist.
Diese ausgezeichnete Komponente wird der Provider des SharedObjects genannt. Die
34
Die Theorie der Datenräume ist in Cremers und Hibbard (1978) beschrieben.
Vgl. Stiemerling (2000, S. 88).
36
Auf diesen Umstand wird noch mal genauer in Abschnitt 7.2.3 eingegangen.
35
36
Spezifikation lässt es offen, ob das SharedObject durch ein eigenständiges Objekt oder
durch den Provider selbst implementiert wird. Der Provider stellt eine Methode zur
Verfügung, über die die anderen Komponenten auf das SharedObject zugreifen können.
Wie beim Eventmechanismus werden die Provider- und die Benutzer-Komponente über
eine Namenskonvention identifiziert.
Abbildung 3-8: Objektorientierte Realisation von gemeinsamen Variablen als weitere Interaktionsform bei
FlexiBeans in UML-Notation [Stiemerling (2000, S. 117)]
3.3.3 Component Architecture for Tailorability (CAT)
CAT ist eine Komponenten-Beschreibungssprache und wird benutzt, um Anwendungen zu
spezifizieren bzw. zu speichern. CAT ist ein Derivat von DARWIN und wurde für lokale
Anwendungen entworfen. Später wurde die Sprache DCAT entworfen, um mit ihr verteilte
Komponenten zu beschreiben. CAT besitzt zum einen textliche Darstellung, zum anderen
hat die Sprache auch eine graphische Visualisierung. Die Grammatik von CAT ist in
Stiemerling (1997b) spezifiziert.
3.3.3.1 Atomare Komponenten
Eine Java-Klasse, die den oben genannten Konventionen folgt, definiert einen atomaren
Komponententyp. Sie ist ausgezeichnet durch ihre Parameter und ihre Ports. Die Ports
repräsentieren die Dienste, die die Komponente anbietet bzw. benötigt. Die Ports werden
in vier Kategorien aufgeteilt. Man unterscheidet nach der Polung des Dienstes
(anbieten/benötigen) und dem Interaktionsmechanismus (SharedObjects/Events).
In der vorliegenden Arbeit wird folgende graphische Darstellung für eine Komponente
verwendet: Die Komponente wird durch ein geteiltes Rechteck dargestellt, in der im
oberen Teil der Typname steht und im unteren Teil die Parameter aufgelistet sind, mit der
die Komponente konfiguriert werden kann. Die Beschriftung der Parameter ist <Name> ::
<Typ>37. Bei einer Komponenteninstanz steht im oberen Teil neben dem Typ noch der
Name. Zusätzlich kann bei einer Instanz den einzelnen Parametern ein Wert zugewiesen
werden. Die Ports werden als „Beinchen“ am Rand der Komponente dargestellt. Die Farbe
37
Ist der Typ oder der Name ersichtlich bzw. nicht von Belang, lasse ich diesen weg.
ALLGEMEINE GRUNDLAGEN
37
und Form des Beinchens wird durch die Kategorie des Ports bestimmt: SharedObject-Ports
sind rechteckig, Event-Ports rund. Wird ein Dienst angeboten, so ist das Beinchen schwarz,
anderenfalls weiß gefüllt. Die Beschriftung der Ports ist wie folgt: <Portname> :: <Typ>.
Die in Abbildung 3-9 dargestellte atomare Komponente zeigt die vier Fälle.
class AtomareBean {
void setName(String name){…}
SO getSharedSO_Provider(){…}
void setSharedSO_Client(SO so){…}
IN :: IPostfach
void forgetSharedSO_Client() {…}
AtomareBean
Prov ider::
SO
Client ::
SO
name :: String
Ev entSource ::
EListener
Ev entHandler::
EListener
void addEListener_EventSource
(EListener el) {…}
void removeEListener_EventSource
(EListener el) {…}
EListener getEListener_EventHandler ()
{…}
}
Abbildung 3-9 Atomarer Komponententyp einmal in CAT graphisch dargestellt (links) und einmal als
Javaklasse (rechts)
Die Ports in CAT entsprechen den Ports bei ACME, wobei die Ports in CAT nur einfache
Interfaces repräsentieren können. Jedoch kennen die FlexiBeans keine Verbindungen als
eigenständige Einheiten und sie kennen auch keine Rollen. Die Interaktionsmechanismen
der FlexiBeans ließen sich aber in ACME durch einen Architekturstil definieren. ACME
kennt auch keine Parameter, sie lassen sich aber mit ACME-Properties beschreiben.
3.3.3.2 Zusammengesetzte Komponenten
Mittels CAT können aus den bestehenden Komponenten neue definiert werden. Diese
stehen dann weiteren Definitionen zur Verfügung. Ein abstrakter Komponententyp
besteht wie der atomare Komponententyp aus einem Namen und einer Menge von
Parametern und Ports. Sie legen fest, was von der Komponente nach außen sichtbar ist. Ein
abstrakter Komponententyp stellt also das dar, was in ACME ein Subsystem heißt. Die
Außenansicht ist dabei die Repräsentation des Subsystems. CAT kennt jedoch immer nur
eine Repräsentation pro Subsystem.
Intern besteht die abstrakte Komponente aus einer Menge von Instanzen bereits definierter
Komponenten, einer Menge von Verbindungen und einer Menge von
Parameterbelegungen. Eine Instanz besteht aus einem Namen, dem Komponententyp und
einer Belegung der Parameter mit Werten. Die Namen der Instanzen sind eineindeutig. Bei
38
den Verbindungen unterscheidet man zwischen internen und externen38. Interne
Verbindungen verknüpfen die Ports gleichen Typs und unterschiedlicher Polarität zweier
Instanzen. Eine externe Verbindung verknüpft einen Parameter der abstrakten Komponente
mit einem Parameter einer Instanz oder einen Port der abstrakten Komponente mit einem
Port einer Instanz. Die Parameter müssen gleichen Typs sein, und die Ports müssen den
gleichen Typ und die gleiche Polarität haben. Die Parameterbelegung weist einem
Parameter einer Instanz einen Wert zu. Ein belegter Parameter einer Instanz ist gebunden
und darf nicht exportiert werden. Ein Beispiel eines abstrakten Komponententyps ist in
Abbildung 3-10 zu sehen. Der obere Teil (weiß dargestellt) des BandBassFilters zeigt die
externe Sichtbarkeit. Der untere Teil (grau dargestellt) zeigt, wie das externe Verhalten auf
die zwei Subkomponenteninstanzen filter1 und filter2 abgebildet wird. Die abstrakten
Komponententypen und ihre Subkomponenten definieren einen rekursiv gebildeten
azyklischen Graphen.
Abbildung 3-10 Graphische Darstellung eines abstrakten Komponententyps
Im Gegensatz zu ACME kennt CAT neben den Sprachkonstrukten für die
Strukturelemente keine weiteren. Es besteht damit weder die Möglichkeit z.B. mittels
Properties Teile der Architektur zu kommentieren, noch können benutzerdefinierte
(Tailoring-) Constraints in die Architekturbeschreibung mit aufgenommen werden.
3.3.4 EVOLVE-Plattform und verteilte Anwendungen mittels DCAT
Beim FlexiBean-Ansatz ist es möglich, mittels DCAT, verteilte Anwendungen zu
spezifizieren. Eine Anwendung ist dabei eine ausgezeichnete Komponente, die als
Systemkomponente bezeichnet wird. Sie ist ein abstrakter Komponententyp, der keine
Ports exportiert. Zusätzlich wird in DCAT den Subkomponenten einer Systemkomponente
ein Ausführungsort zugewiesen.
38
Analog zum ACME, bei dem zwischen der Rep-Map und dem Subsystem unterschieden wird. Externe
Verbindungen gehören dabei der Rep-Map – interne gehören dem Subsystem an.
ALLGEMEINE GRUNDLAGEN
39
Um die Funktionsweise besser zu verstehen, ist es sinnvoll, die Client-Server Architektur
der Evolve-Plattform zu betrachten (vgl. Abbildung 3-11). Auf dem Evolve-Server sind
alle Programmdaten einer Applikation abgelegt. Diese bestehen aus den jar-Archiven, die
die Implementierung der atomaren Komponenten beinhalten, den CAT-Dateien, die die
atomaren und abstrakten Komponenten beschreiben und den DCAT-Dateien, die die
Systemkomponenten und die Verteilung der Subkomponenten spezifizieren. Das Starten
einer Applikation wird von einem Evolve-Client angestoßen, indem er dem Server eine
Nachricht sendet, eine DCAT-Systemkomponente zu laden. Beim Starten legt der Server
fest, welche Komponente wo erzeugt wird bzw. auf welche schon erzeugten Komponenten
referenziert werden soll.
Abbildung 3-11 Client-Server Architektur der Evolve-Plattform
Das Festlegen des Ausführungsortes geschieht durch die Angabe eines der Schlüsselworte
SERVER, LOCAL und USER nach der Deklaration der Subkomponente (vgl. Abbildung
3-12). SERVER meint dabei den Evolve-Server, LOCAL meint den Evolve-Client, von
dem aus die Ausführung veranlasst wurde. Beim USER muss man noch den Namen des
Benutzers mitangeben. Jeder Client ist einem Benutzer zugeordnet. Existiert der Client des
angegebenen Benutzers zur Zeit der Erzeugung nicht, führt dies zu einer Fehlermeldung.
s_component BandPassFilter {
subcomponent in Cd LOCAL;
subcomponent out Headphone LOCAL;
subcomponent filter BandPassFilter
SERVER {
lowerBorderFreq := 10;
};
bind filter.in -> in.out;
bind filter.out -> out.out;
}
Abbildung 3-12 Textliche und graphische Darstellung einer DCAT- Systemkomponente
3.3.5 Tailoring API und Anpassungsumgebung
Durch die, von der Evolve-Plattform bereitgestellte Tailoring-API kann man zur Laufzeit
auf die Komponenteninstanzen und auf die gesamte Kompositionsstruktur zugreifen. Sie
40
legt
die
von
der
Evolve-Plattform
geleistete
Abbildung
von
einer
Kompositionsbeschreibung auf java-Objekte offen. So kann auf die Instanzen, die die
Systemkomponenten darstellen, über das IR_DistComponent Interface zugegriffen
werden. Die Instanzen, die die lokalen abstrakten und atomaren Komponenten
repräsentieren, implementieren das IR_Component-Interface. Der Evolve-Server selbst
ist eine Instanz der Klasse Server. Um auf die Systemkomponenten zuzugreifen, stellt
die Server-Klasse zwei Methoden zur Verfügung, die ein IR_DistComponent
zurückgeben. Das IR_DistComponent- und das IR_Component-Interface besitzen
Methoden, um die Subkomponenten und die Verdrahtung zu ermitteln. Das
IR_Component besitzt zusätzlich noch Methoden für die Eruierung der Parameter.
Mittels dieser Funktionalität ist es der Anpassungsumgebung möglich, die
Komponentenstruktur zu ermitteln. Abbildung 3-13 zeigt z.B. eine 3D-Visualisierung einer
so ermittelten Komponentenstruktur.
Abbildung 3-13 3D-Ansicht der Komponenten einer verteilten Anwendung [Hallenberger (2000)]
Neben der Funktionalität zur Ermittelung der Struktur besitzen die genannten Interfaces
auch Methoden, diese Struktur zu verändern, bzw. neue (Sub-)Komponenten anzulegen
bzw. zu löschen [vgl. Hinken (1999, S. 75 ff.)].
ALLGEMEINE GRUNDLAGEN
41
3.4 Der WAM-Ansatz
Der WAM-Ansatz wurde in den 90er Jahren im Arbeitsbereich Softwaretechnik an der
Universität Hamburg entwickelt [Budde und Züllighoven (1990), Züllighoven (1992),
Kilberth, Gryzan und Züllighoven (1994), Züllighoven (1998)]. Er verkörpert einen
Methodenrahmen für eine objektorientierte und evolutionäre Herangehensweise bei der
Softwareentwicklung, der stark von der Idee des gegenseitigen Lernens von Anwender und
Entwickler geprägt ist39. Er basiert dabei auf der Verwendung allgemein verständlicher
Metaphern bei Entwurf, Konstruktion und Einsatz interaktiver Anwendungssysteme. Er
integriert verschiedene Konstruktionstechniken aus dem Bereich der objektorientierten
Programmierung. Züllighoven umreißt in einer Kurzdarstellung den Ansatz wie folgt:
„Die zentrale Idee des Werkzeug & Material-Ansatz ist, die Gegenstände und
Konzepte des Anwendungsbereiches als Grundlage des softwaretechnischen
Modells zu nehmen. Das Ergebnis soll eine enge Korrespondenz zwischen dem
anwendungsfachlichen Begriffsgebäude und der Softwarearchitektur sein.
Diese Strukturähnlichkeit hat zwei entscheidende Vorteile: Die Anwender
finden die Gegenstände ihrer Arbeit und die Begriffe ihrer Fachsprache im
Anwendungssystem repräsentiert. Sie können entsprechend ihre Arbeit in
gewohnter Weise organisieren. Die Entwickler können Softwarekomponenten
und Anwendungskonzepte bei fachlichen und softwaretechnischen Änderungen
zueinander in Beziehung setzen und somit wechselseitige Abhängigkeiten
erkennen.“ Züllighoven (1998, S. 5)
Diese proklamierte Strukturähnlichkeit zwischen der Begriffswelt und der Softwarearchitektur, die auch bei Henderson und Kyng (1991) gefordert wird, macht den WAMAnsatz so interessant für die komponentenbasierte Anpassbarkeit. Die Hinwendung zum
Anwender steckt auch in der Forderung nach kontext-spezifischer Anpassbarkeit (vgl.
Abschnitt 3.1.3.2). Das Ziel, das mit der Strukturähnlichkeit verfolgt wird, besteht darin,
dem Anwender einen intuitiven Zugang zur Softwarearchitektur zu ermöglichen, damit
dieser das System einfacher an seine Bedürfnisse anpassen kann.
Bei der Modellierung der Software stützt man sich dabei auf die vorhandenen Arbeitszusammenhänge. Um diese verstehen zu können, hat es sich nach Wulf, M. (1995, S. 13)
als tragfähig erwiesen, die Arbeitsgegenstände, die zur Erledigung alltäglicher Aufgaben
im Anwendungsbereich verwendet werden, und die Arbeitsmittel, mit denen diese
39
Zur Idee des gegenseitigen Lernens und deren Einbettung in das Software-Engineering vergleiche Floyd
(1994). In diesen Punkt zeigt sich auch eine Wahlverwandtschaft zwischen dem WAM-Ansatz und der
Auffassung von der Anpassbarkeit als Kooperation zwischen Anwender und Entwickler, wie sie von Mørch
und Mehandjiev (2000) vertreten wird.
42
Gegenstände bearbeitet werden, zu analysieren. Bei dieser Analyse wird bewusst eine
bestimmte Perspektive eingenommen, die sich auch in dem gewählten Leitbild des
„Arbeitsplatz[es] für qualifizierte und eigenverantwortliche Tätigkeiten“ [Züllighoven
(1998, S. 5)] äußert.
Die eingenommene Perspektive kann man auch als Werkstatt-Perspektive bezeichnen. Aus
ihr heraus wurde eine Reihe von Entwurfsmetaphern entwickelt, die als Hilfsmittel dienen,
um den Arbeitskontext zu analysieren und zu kategorisieren. Die wichtigsten Metaphern
sind die des Werkzeugs, des Materials, des Automats und der Arbeitsumgebung. Die
Gestaltung orientiert sich nun an dem „fachlichen motivierten Umgang mit solchen
Arbeitsmitteln und –gegenständen und modelliert rechnergestützt Arbeitsumgebungen
durch die sinnvolle Zusammenstellung von (Software-)Werkzeugen und (Software)Materialien.“
[Wulf, M. (1995, S. 12)].
Die Analyse mündet in so genannten Konzeptionsmustern, die die für einen Anwender
sichtbaren Elemente des Anwendungssystems beschreiben. Sie setzen dort an, wo mit
Hilfe der Entwurfsmetaphern die relevanten Gegenstände des Anwendungsfelds identifiziert worden sind. Sie Skizzieren für den Entwickler aus fachlicher Sicht den Entwurf im
Großen. Sie bilden deshalb ein Hilfsmittel „an der entscheidenden Nahtstelle zwischen
Analyse und Entwurf“ [Züllighoven (1998, S. 163)]. Die Details der technischen
Umsetzung einer Entwurfsmetapher werden anhand von Entwurfsmustern beschrieben.
Hierbei kommen bekannte Techniken und Muster zum Einsatz, wie sie zum Beispiel bei
Gamma et al. (1996) zu finden sind.
Ursprünglich bezog sich der WAM-Ansatz auf die Entwicklung von Anwendungssystemen
für den einzelnen Arbeitsplatz. Jedoch ist in einigen Arbeiten der Ansatz auch auf den
Bereich der kooperativen Arbeit ausgeweitet worden [Wulf, M. (1995), Gryczan (1996),
Roock und Wolf (1998)]. Züllighoven (1998) fasst die Arbeiten wie folgt zusammen:
„Unsere
ersten Erfahrungen in diesem Bereich legen die Schlussfolgerung
nahe, dass kooperative Arbeit in ähnlicher Weise durch Arbeitsmittel und
-gegenstände unterstützt werden kann, wie wir das für den individuellen
Arbeitsplatz gezeigt haben.“ Züllighoven (1998, S. 427-464)
Dabei gehen sie von einem Kooperationsmodell aus, das entweder implizit oder explizit
die Zusammenarbeit beschreibt und regelt. Eine implizite Kooperation liegt dann vor,
wenn ein Benutzer in einer kooperativen Arbeitssituation mit anderen eine
Arbeitsumgebung teilt, ohne dass die Kooperation zunächst deutlich wird. Im Gegensatz
dazu wird bei der expliziten Kooperation nicht nur die gemeinsame Nutzung von
ALLGEMEINE GRUNDLAGEN
43
Ressourcen ermöglicht, sondern die Kooperation wird selbst vergegenständlicht. Entscheidend dabei ist, dass jede Kooperation erst durch ein gegenständliches
Kooperationsmittel bzw. -medium möglich ist.
Unter einem Kooperationsmittel wird dabei ein fachlich motivierter Gegenstand
verstanden, der die Kooperation unterstützt. Er vergegenständlicht die Kooperation oder
die dabei notwendige Koordination. Beispiele für Koordinationsmittel sind Vorgangsmappen und Laufzettel. Ein Kooperationsmedium ist ein fachlicher Gegenstand, mit
dessen Hilfe Materialien oder Informationen ausgetauscht werden können. Zudem ist es
selbst vergegenständlicht. Beispiele für Kooperationsmedien sind Postversandsysteme,
Gruppenpostfächer oder ein Notizbrett.
3.5 Grundlagen der Zugriffskontrolle
Die Ziele eines Sicherheitssystems sind Vertraulichkeit, Integrität und Verfügbarkeit, die
durch Authentifikation, Autorisierung und Zugriffskontrolle erreicht werden sollen. In
einer Anwendung, die über offene Netze, wie das Internet, kommuniziert, sind die Punkte
Authentifikation und Verschlüsselung besonders wichtig sind. Im Anwendungsfeld lag das
größte Konfliktpotential in der Gestaltung der Zugriffskontrolle, weshalb sich die
vorliegende Arbeit über Anpassbarkeit auf diesen Aspekt konzentriert. Deswegen wird hier
auch nur auf die Zugriffskontrolle eingegangen.
Das Thema der Zugriffskontrolle wird in den verschiedenen Teilbereichen der Informatik
erforscht. Zu den Bereichen gehören z.B. die Betriebssysteme, die Informationssysteme,
der CSCW-Bereich, die Softwareergonomie und nicht zuletzt die Computersicherheit. Im
Folgenden werde ich mich hauptsächlich auf Arbeiten aus dem Bereich der CSCWForschung konzentrieren, weil diese zum einen eine stärkere Hinwendung zum Benutzer
erkennen lassen. Zum anderen kann man erwarten, dass Zugriffsmodelle aus dem CSCWBereich die Anforderungen, die sich aus der Kooperation ergeben, stärker berücksichtigen.
Im Folgenden werde ich vier klassische Zugriffskontroll-Modelle vorstellen. Ihnen
besitzen die Gemeinsamkeit, dass sie eine dichotome Aufteilung des Zugriffs in Erlaubt
und Verboten besitzen40. Die Darstellung ist weitgehend chronologisch aufgebaut. Man
erkennt an den Ansätzen, dass die technische Sichtweise zugunsten einer stärkeren
Hinwendung zum Benutzer zurücktritt. Die Modelle werden in Abschnitt 3.5.5 miteinander
verglichen.
40
In Stiemerling, Won und Wulf (2000) ist eine Erweiterung des Modells von Stiemerling beschrieben, die
das Modell um nicht-klassische Kontroll-Mechanismen ergänzt. Die Erweiterung stützt sich auf Wulfs
Ansatz zum Konfliktmanagement. Da dieser in Abschnitt 5.3 vorgestellt wird, werde ich auf die
Erweiterungen des Modells von Stiemerling nicht eingehen.
44
Um die Modelle besser miteinander vergleichen zu können, habe ich das Modell von Shen
und Dewan und das Modell von Sikkel mittels Graphen dargestellt. Die Regelbasiertheit
des Modells von Stiemerling ließ jedoch eine Darstellung mittels Graphen nicht zu. Bei der
mathematischen Formulierung des Modells von Shen und Dewan steht man aber vor dem
Problem, dass einige Teile des Modells bei Shen und Dewan nur angedeutet, aber nicht
ausgeführt werden41.
3.5.1 Zugriffsmatrix Modell nach Lampson (1974)
Ein sehr einfaches und weit verbreitetes Zugriffskontroll-Modell geht auf Lampson (1974)
zurück. Das Modell besteht aus drei Hauptkomponenten: 1. eine Menge von Objekten o, 2.
eine Menge von Subjekten s und 3. eine Zugriffsmatrix oder Zugriffsfunktion A. Die
Objekte sind Dinge des Systems, die geschützt werden sollen. Typische Objekte eines
bestehenden Systems sind Prozesse, Dateien, Segmente und Terminals. Objekte haben
einen globalen Identifizierer, z.B. eine 64-bit Integerzahl. Subjekte sind Dinge, die einen
Zugriff auf ein Objekt haben, z.B. einen Benutzer oder einen Prozess. Was genau unter
einem Objekt bzw. einem Subjekt zu verstehen ist, hängt von der Sicherheitsanforderung
der Anwendung ab. Jeder Eintrag der Zugriffsmatrix besteht aus einer Menge von Strings,
die Zugriffsattribute genannt werden. Typische Attribute sind ‚lesen’, und ‚schreiben’. Die
Semantik des Modells ist durch die Zugriffsmatrix A festgelegt. Man sagt, ein Subjekt s hat
einen ‚z’-Zugriff auf ein Objekt o, falls z ein Element von A[s,o] ist. Abbildung 3-14 zeigt
das Beispiel einer Zugriffsmatrix.
John
File 1
Own
R
W
Alice
R
Bob
R
W
File 2
Own
R
W
R
File 3
Own
R
W
File 4
W
W
Own
R
W
Abbildung 3-14 Beispiel einer Zugriffsmatrix
In großen Systemen wird die Zugriffsmatrix ziemlich groß und ist dünn besetzt. Deshalb
wird die Matrix meist nicht als ein zwei-dimensionales Array gespeichert. Sandhu und
Samarati (1994) beschreiben die Access Control Lists (ACLs), die Capabilities und die
Authorization Relations als verschiedene Implementierungsansätze des Modells.
41
Das hier angegebene Modell ist daher eine mögliche Interpretation, andere Interpretationen sind möglich.
So heißt es zum Beispiel zur Semantik des Zugriffs: „[…] access is granted only if F(s,o,r,A) evaluates to
true“. Es fehlt jedoch eine Vorschrift, die angibt, wie F den Wahrheitswert berechnet.
ALLGEMEINE GRUNDLAGEN
45
3.5.2 Das Zugriffsmodell von Shen und Dewan (1992)
Die Arbeit von Shen und Dewan (1992) setzt sich mit den Zugriffskontroll-Modellen für
kooperative Systeme auseinander. Sie bemängeln, dass die meisten kooperativen Systeme
jedem alles zugänglich machen und die Systemhersteller davon ausgehen, dass allein die
soziale Kontrolle durch die Akteure ausreicht. Den Grund dafür sehen sie darin, dass es für
den CSCW-Bereich kein generisches Zugriffskontroll-Modell gibt. Sie stellen einige
Anforderungen für ein solches generisches Modell für CSCW-Systeme auf, die sie zu
sechs Punkten zusammenfassen, die in Tabelle 3-8 aufgelistet sind. Die generischen
Modelle aus anderen Bereichen können nicht einfach so übernommen werden, weil sie den
aufgelisteten Anforderungen nicht gerecht werden. Insbesondere kritisieren sie das
Zugriffsmatrix-Modell, da es keine mehrfachen Rollen gibt und das Festlegen der
Zugriffsrechte sich nicht einfach gestaltet.
Anforderung
Erklärung
Mehrfache,
dynamische
Benutzerrollen
Das Modell sollte es erlauben, die Zugriffsrechte des
Benutzers aus seiner Rolle abzuleiten. Es sollte dem Benutzer
auch erlaubt sein, mehrere Rollen gleichzeitig inne zu haben
und diese Rollen dynamisch zwischen verschiedenen Phasen
der Kooperation zu ändern.
Kooperationsrechte
Neben traditionellen Operationen wie ‚lesen’ und ‚schreiben’,
sollten alle anderen Operationen, wie z.B. ‚kopieren’, die
mehrere
Benutzer
betreffen
könnten,
durch
Kooperationsrechte geschützt werden.
Flexibilität
Das System sollte fein granulierte Subjekte, Objekte und Zugriffsrechte unterstützen. Es sollte möglich sein, die Rechte
dezidiert für jeden einzelnen Benutzer für ein einzelnes Objekt
festzulegen. Zum Beispiel sollte es erlauben, Zugriffsrechte
für jede einzelne Zeile in einem Mehrbenutzer-Programmeditor festzulegen.
Einfache Handhabung
Benutzer sollten die Rechte auf einfache Weise festlegen können.
46
Effizientes Speichern und Auswerten
Die Zugriffsdefinitionen sollten effizient gespeichert und die
Zugriffsregeln sollten effizient ausgewertet werden.
Automation
Das Modell sollte einfach zu implementieren und einfach in
ein Mehrbenutzersystem zu integrieren sein.
Tabelle 3-8 Anforderung an ein generisches Zugriffsmodell für CSCW-Systeme [nach Shen und Dewan
(1992)]
Ihr eigenes Modell sehen sie als eine Erweiterung des Zugriffsmatrix-Modells. So gibt es
die Möglichkeit, negative Rechte zu spezifizieren. Daneben besitzen die Subjekte, die
Objekte und die Operationen verschiedene hierarchische Ordnungen, die es erlauben,
diverse Gruppierungen zu bilden und Rechte dafür festzulegen. Aus den Gruppenrechten
ergeben sich entsprechende Einzelrechte. Durch die negativen Rechte ist es jedoch
möglich, widersprüchliche Rechte zu definieren. Bei dem Modell muss zwischen einem
konsistenten und einem konfliktfreien Zustand unterschieden werden. Ein konsistenter
Zustand liegt vor, wenn die expliziten Rechte sich nicht widersprechen. Konfliktfrei ist der
Zustand, wenn auch die abgeleiteten Rechte sich nicht widersprechen. In dem Modell wird
ein konsistenter, aber kein konfliktfreier Zustand verlangt. Stattdessen besitzt das Modell
einen Konfliktregelungsmechanismus. Dieser Mechanismus besteht darin, die Regeln, mit
denen die Zugriffsrechte aus den Gruppenrechten abgeleitet werden, mit einer Priorität zu
versehen. Bei einer solchen Methode besteht die Kunst darin, dass die gewählten
Prioritäten dem Common Sense entsprechen. Eine solche Common Sense Regel lautet zum
Beispiel, dass spezifische Rechte vor allgemein definierten Rechten gelten.
Eine mathematische Formulierung des Modells von Shen und Dewan soll das oben
Gesagte präzisieren. Das Modell besteht aus zwei Teilen, dem Schutzzustand P
(„protection state“) und einer Ableitungsgrammatik F, mit der die implizit gegebenen
Rechte evaluiert werden. Der Zustand ist durch das folgende 9-Tupel festgelegt:
P = ( S , O, R, A, value _ group, include, imply, take, have) gegeben mit:
O, die Menge der Objekte, S, die Menge der Subjekte,
R die Menge der Operationen,
den explizit definierten Zugriffen A ⊆ S × O × R ×{'− ', '+ '} ,
value _ group : GO ⊂ O × O azyklischer gerichteter Graph mit Bewertung pO : GO →
include : TR ⊂ R × R gerichtete Baumstruktur42,
imply : GR ⊂ R × R azyklischer gerichteter Graph mit Bewertung pR : GR → ,
take : GT ⊂ S × S azyklischer gerichteter Graph mit Bewertung pT : GT → ,
✁
✁
42
D.h. es gilt: (v , w) und (v, w ') ∈ TR
✂
w = w'
,
ALLGEMEINE GRUNDLAGEN
47
have : GH ⊂ S × S azyklischer gerichteter Graph mit Rechte-Weitergabefunktion
vH : GH →℘( R) und Bewertung pH : GH → .
Die Ableitungsgrammatik F(P): S × O × R × {'+ ', '− '} → (S × O × R ×{'+ ', '− '}) ∪
{True, False} ergibt sich aus dem Schutzzustand P und ist durch die folgenden Regeln
definiert:
0. Regeltyp (Zugriffstest): ( s, o, r , '+ ') → True für ( s, o, r, '+ ') ∈ A und
( s, o, r , '+ ') → False für ( s, o, r, '− ') ∈ A
1. Regeltyp ( Objekt-Vererbung): ( s, o, r, v ) → ( s, o ', r , v ) für (o, o ') ∈ GO
2. Regeltyp ( Rechte-Vererbung I): ( s, o, r, v ) → ( s, o, r ', v ) für (r , r ') ∈ TR
3. Regeltyp ( Rechte-Vererbung II): ( s, o, r, v ) → ( s, o, r ', v ) für (r , r ') ∈ GR
4. Regeltyp ( Subjekt-Vererbung I): ( s, o, r, v ) → ( s ', o, r , v ) für ( s, s ') ∈ GT
5. Regeltyp ( Subjekt-Vererbung II): ( s, o, r ,'+ ') → ( s ', o, r , '+ ') für ( s, s ') ∈ GH und
r ∈ vH (( s, s '))
Man sagt:
a) P ist konsistent ist, wenn gilt: ∀(o, s, r ) ∈ O × S × R : (o, s, r , '+ ') ∈ A (o, s, r , '− ') ∉ A ,
b) F(P) ist konfliktfrei, wenn gilt:
∀(o, s, r ) ∈ O × S × R : (o, s, r , '+ ') →*F ( P ) True ¬ ( (o, s, r , '+ ') →*F ( P ) False ) ,
c) F(P) ist eindeutig, wenn gilt: ∀H , T , T ':H → T ∈ F ( P) ∧ H → T ' ∈ F ( P) T = T ' .
✁
✂
✄
Die Definitionen b und c sind mögliche Erweiterungen des Begriffs der Konsistenz auf die
implizit gegebenen Rechte. Definition b besagt, dass jede mögliche Ableitung zum
gleichen Ergebnis kommt. Definition c ist eine Verschärfung von b, weil zusätzlich
verlangt wird, dass jeder Ableitungsschritt eindeutig festgelegt ist. Es gilt die Implikation:
F(P) ist eindeutig => F(P) ist konfliktfrei => P ist konsistent. Beim ZugriffskontrollModell wird nicht verlangt, dass die Grammatik F(P) konfliktfrei ist. Um trotzdem eine
wohl definierte Zugriffssemantik für die impliziten Rechte zu erhalten, wird mit Hilfe der
Bewertungsfunktion eine eindeutige Ableitung erzwungen. Die Semantik des Zugriffs
ergibt sich dann mit Hilfe des unten angegebenen Algorithmus IS_ALLOWED. Für P
konsistent gilt: Dem Subjekt s ist ein r-Zugriff auf das Objekt o erlaubt, falls
IS_ALLOWED((s,o,r), F(P)) = True.
Um eine eindeutige Ableitung mit der Grammatik F(P) zu gewährleisten, werden die
Regeln mit einer Priorität versehen. Mit Hilfe der Prioritäten kann im Konfliktfall, wenn
mehrere Regeln anwendbar sind, eindeutig eine Regel ausgewählt werden. Für die
Sortierung der Regeln gilt zum einen, dass die Regeln des Typs i eine höhere Priorität
haben, als die Regeln des Typs j für i < j. Zum anderen kann es bei den Regeltypen 1, 3, 4
und 5 vorkommen, dass ein Konflikt innerhalb des Regeltyps vorkommt. Hier gilt, dass die
48
Regeln durch die entsprechenden Wertungsfunktionen pO , pR , pT bzw. pH geordnet werden.
So gilt z.B. für die Objekt-Vererbungsregeln, dass die Regel ( s, o, r , v ) → ( s, o ', r , v ) eine
höhere Priorität hat als die Regel ( s, o, r , v) → ( s, o '', r , v) , falls pO (o, o ') < pO (o, o '') gilt.
Für die anderen Regeltypen gilt entsprechendes. Für den Regeltyp 2 ist ein Konflikt
ausgeschlossen, weil TR eine Baumstruktur ist. Wenn P konsistent ist, dann kann beim
Regeltyp 0 kein Konflikt auftreten.
Der Algorithmus IS_ALLOWED berechnet aus dem Schutzzustand P und der damit
gegebenen Ableitungsgrammatik F(P), ob ein Zugriff erlaubt ist. Der Algorithmus
terminiert, weil erstens die Anzahl der Ableitungsregeln endlich ist und zweitens bei jedem
Rekursionsaufruf in Zeile 10 in dem azyklischen Graphen nach oben gewandert wird. Für
P konsistent ist die Sortierung von L in Zeile 1 wohldefiniert und damit der gesamte
Algorithmus.
Algorithmus IS_ALLOWED
IN: ( s , o, r , v ) ∈ S × O × R × {'+ ', '− '} , F(P) Ableitungsgrammatik
RETVAL: z ∈ {True, False, Undef }
1
L := Liste der Regeln in F(P) mit ( s , o, r , v ) als Kopf
und nach der Priorität der Regeln sortiert
2
z := Undef
3
If (NOT L.IsEmpty) Then
4
( s , o, r , v ) → T := L.First
5
z := Undef
6
WHILE z = Undef AND NOT L.IsEnd
7
If( T ∈ {True, False} )Then
8
z :=T
9
Else
z : = EVAL(T , F ( P ))
10
11
End If
12
( s , o, r , v ) → T := L.Next
13
WEND
14
End If
Auch wenn das Modell den oben aufgestellten Anforderungen entspricht, gibt es
verschiedene Kritikpunkte. Das Modell ist durch die verschiedenen Gruppenhierarchien
und Konfliktregelungen ziemlich komplex. So kann die Berechnung eines implizit
gegebenen Rechts über mehrere Rekursionsstufen gehen. Auch hängt den
Konfliktregelungen eine gewisse Beliebigkeit an. So meinen Shen und Dewan (1992,
Abschnitt 5.6) selbst: „It is not currently clear to us which conflict resolution method is the
most semantically meaningful. Therefore, we choose the method based on the efficiency
considerations”. Eine hypothetische Rechte-Modellierung soll dies verdeutlichen. So sei
die Gruppe der studentischen Hilfskräfte von der Gruppe der Studenten und der Gruppe
der Mitarbeiter abgeleitet. Dem Mitarbeiter sei der Zugriff auf ein bestimmtes Objekt
erlaubt. Verbietet man nun den Zugriff für Studenten, sind je nach Vererbungspriorität die
studentischen Hilfskräfte davon betroffen oder auch nicht.
ALLGEMEINE GRUNDLAGEN
49
3.5.3 Gruppenbasiertes Zugriffsmodell nach Sikkel (1997)
Sikkel (1997) kritisiert am Modell von Shen und Dewan, dass es komplizierter sei, als es
sein müsse. Die Konfliktregelungen seien nur deshalb nötig, um Mehrdeutigkeiten
aufzulösen, die dadurch entstünden, dass positive wie auch negative Rechte
gleichberechtigt behandelt werden. Stattdessen gibt Sikkel den negativen Rechten den
Vorzug und führt sie auf einer anderen Ebene in sein Modell ein.
Wie beim Matrixmodell gibt es Objekte, Subjekte und Zugriffe, jedoch werden die
Subjekte und Zugriffe wie Objekte behandelt. Dafür wird bei den Objekten zwischen
eigenständigen und abhängigen Objekten unterschieden. Abhängige Objekte sind einem
eigenständigen Objekt zugeordnet, und nur über sie kann auf ein abhängiges Objekt
zugegriffen werden. Zugriffsattribute sind ein Beispiel für abhängige Objekte. Die
Flexibilität des Modells wird, wie bei Shen und Dewan, dadurch erreicht, dass auf den
Objekten eine partielle Ordnung definiert ist. Sie entsteht dadurch, dass aus einer Menge
von Objekten eine Gruppe gebildet werden kann, die wieder ein Objekt bildet. Diese
Gruppenbildung kann mit den dadurch definierten gerichteten, azyklischen Graphen auf
den Objekten identifiziert werden. Die Erlaubnis für einen Zugriff auf ein Objekt ergibt
sich dann aus der Mitgliedschaft bei dem durch das Objekt induzierten Teilbaum. Auf der
Ebene der Mitgliedschaft werden nun die negativen Rechte eingeführt. Sie erlauben es,
beliebige Objekte von der Mitgliedschaft auszuschließen.
Eine mathematische Formulierung des Modells sieht nun wie folgt aus:
Sei R Menge von eigenständigen Objekten.
Für r ∈ R sei Attr(r) die Menge der zugeordneten Objekte43. Es gilt, dass die
Attributmengen in R untereinander paarweise disjunkt sind. D.h.:
∀r , s ∈ R : Attr(r ) ∩ R = ∅ ∧ (r ≠ s Attr(r ) ∩ Attr(s ) = ∅) .
Sei O := R ∪ r∈R Attr(r ) die Menge aller Objekte
Sei G ⊂ O × O × {'+ ', '− '} gerichteter azyklischer beschrifteter Graph. Die Kanten
(u , v, '+ ') ∈ G heißen zugehörige Kanten und die Kanten (u , v, '− ') ∈ G heißen
✁
ausschließende Kanten.
Die Funktion Members G : O →℘(O) bestimmt die Mitglieder einer Gruppe u ∈ O und ist
durch folgende rekursive Vorschrift festgelegt44:
43
Um ein Attribut a eines Objekts r zu bezeichnen, wird auch die Punktnotation r.a verwendet.
Die Wohldefiniertheit der Funktion kann durch einen Induktionsbeweis über die Knotentiefe gezeigt
werden.
44
50
✁
Members G
{u}
(u ):= ✂ ✁
✄✆☎
( u ,v ,' + ')∈G
für ¬∃ v ∈ O, s ∈{'+ ', '− '}: (u , v, s ) ∈ G
Members G (v) −
☎
( u , w,' − ')∈G
Members G ( w)
sonst
Die Semantik des Zugriffsmodells wird mit Hilfe der Member-Funktion definiert: Man
sagt für u , o, r ∈ O , dass u einen r-Zugriff auf o hat, falls a ∈ Attr(u ) und
u ∈ MembersG (o.r ) gilt.
Diese sehr abstrakte Definition soll anhand eines Beispiels erläutert werden. In Abbildung
3-15 ist links der Zugriffsgraph G zu sehen, d1 soll ein Directory, f1 und f2 zwei Files in
diesem Directory darstellen. Tim und john sind zwei User, die der Gruppe project
angehören und dessen Rechte erben. Die Rechte-Vererbung findet man bei Objekten nicht
in deren Beziehung zueinander, sondern auf Seiten ihrer Attribute. So gibt z.B. f1.r sein
Recht an d1.r weiter, der wiederum es an die Operationsgruppierung d1.all weitergibt.
Man beachte die umgekehrte Pfeilrichtung gegenüber der Vererbung bei den Subjekten.
Die Verknüpfung zwischen Subjekten und Objekten wird auch wieder durch die Attribute
vermittelt. Dass ken auf d1 Lesend zugreifen darf, drückt der Pfeil von d1.r nach ken aus.
project
tim
john
ken
d1
r,w
r,w
r,w
r
f1
r,w
r,w
r,w
r
f2
r,w
r,w
r,w
r
Abbildung 3-15 Zugriffsgraph (links) und resultierende Zugriffs-Matrix (rechts)
Die Auswirkung negativer Gruppenmitgliedschaft ist in Abbildung 3-16 darstellt. Um john
den Schreibzugriff auf das Directory d1 explizit zu verbieten, ist die negative Kante (d1.w,
john, ’-’) in den Graph aufgenommen. Damit er trotzdem noch auf dem File f1
Schreibrechte hat, wurde dieses allgemeine Verbot durch ein spezielleres Gebot mittels der
Kante (f1.w, john, ’+’) überschrieben.
f1
project r,w
r,w
tim
r
john
r
ken
d1
r,w
r,w
r,w
r
d2
r,w
r,w
r
r
Abbildung 3-16 Zugriffsgraph mit negativer Gruppenzugehörigkeit (links) und resultierende Matrix (rechts)
ALLGEMEINE GRUNDLAGEN
51
3.5.4 Regelbasierte Zugriffskontrolle von Stiemerling (1996)
Stiemerling (1996) geht einen anderen Weg, um die Komplexität der Zugriffskontrolle bei
Groupware-Systemen zu meistern. Das von ihm entwickelte System hat als Ausgangspunkt
die Handhabung der Zugriffskontrolle im Anwendungsfeld. Bei der Gestaltung des
Zugriffsmodells stützt er sich auf die empirischen Untersuchungen, die er im Rahmen
seiner Diplomarbeit durchgeführt hat. Das daraus resultierende System ist den in der
Untersuchung gemachten Beobachtungen nachempfunden Die Beobachtungen lassen sich
wie folgt zusammenfassen: 1. Die Zugriffskontrollstrategien werden in Form von „WennDann“-Regeln beschrieben. 2. Diese Regeln drücken entweder Verbote oder
Genehmigungen aus. 3. Allgemeinere Regeln werden durch das Aufstellen von
Ausnahmen verfeinert. Der Bereich, in dem eine Regel angewendet wird, ist durch
verschiedene Faktoren bestimmt. Eine Auflistung der einzelnen Faktoren, die in der
Untersuchung herausgefunden wurden, findet sich bei Stiemerling (1996, S. 75 ff.). In der
technischen Umsetzung wurde versucht die entsprechenden Faktoren im verwendeten
Groupware-System zu finden45.
Der Kern der Zugriffskontrolle besteht aus einer Reihe von „Wenn-Dann“-Regeln. Diese
Zugriffsregeln der Form (v, dv) bilden die Menge R. Die Regel (v, dv) ist zu lesen als
„Wenn v gilt, dann dv“, wobei v eine Konjugation von Prädikaten ist und die Form hat:
f 1 = v1 ∧ ... ∧ fm = vm mit fi Faktor und vi Wert des Faktors. Ein Beispiel dafür ist:
„Benutzerrolle = ‚Buchhalter’ ∧ Dokument = ‚Rechnung B’“. Durch dv wird die Aktion
angegeben, die ausgeführt werden soll, wenn die Vorbedingung zutrifft. Es gilt
dv ∈{"erlaubt", "verboten"} .
Aus dem aktuellen Systemzustand S ergibt sich, welche der Vorbedingungen gültig sind46.
Z.B ist für eine Anfrage von einem Subjekt s für einen r-Zugriff auf das Objekt o die obige
Vorbedingung genau dann gültig, wenn s die Rolle „Buchhalter“ inne hat und das Objekt
das Dokument „Rechnung B“ darstellt. Aus den gültigen Regeln muss eine ausgewählt
werden, die dann angewandt wird. Dazu benutzt das System eine Auswertungsstrategie,
die weiter unten beschrieben ist.
Das System lässt sich damit grob in drei Prozesse einteilen: Ermittlung des aktuellen
Systemzustands Sakt, der Ermittlung der gültigen Regeln und der Auswahl einer dieser
Regeln (vgl. Abbildung 3-17).
45
Vgl. Stiemerling (1996, S. 95).
Zur Notation: Für „v gültig in S“ schreibt man auch S |= v. Der Geltungsbereich einer Vorbedingung v ist
durch die Menge G (v ) := {S ∈ Systemzustände : S |= v} gegeben.
46
52
Anfrage
(s,o,r)
Systemzustand
Regelmenge R
Auswertungsstategie
Ermittlung von Sakt
Ermittlung von
A = {s R: Sakt |= s}
Auswahl und
Auwertung einer Regel
aus A
Aktion d
Abbildung 3-17 Aufbau des Zugriffssystems [aus Stiemerling, Won und Wulf (2000)]
Zur Analyse der Auswertungsstrategie ist es hilfreich, die verschiedenen Beziehungen zu
betrachten, in der zwei Regeln R = (r,dr) und V = (v,dv) zueinander stehen können:
i) R und V sind konfliktfrei, falls dr = dv oder G(r) ∩ G(v) = ∅ gilt.
ii) R ist eine Spezialisierung von V, falls gilt G(r) ⊆ G(v).
iii) R und V stehen für die Situation G(r) ∩ G(v) im Konflikt, falls weder i) noch ii)
zutrifft.
Für eine Auswertungsstrategie ist Fall i) unproblematisch, weil es keinen Systemzustand
gibt, bei der beide Vorbedingungen gültig sind oder die daraus resultierende Aktion ist die
Gleiche. Im Fall ii) sollte eine Auswertungsstrategie in einer Situation, in der r und v gültig
sind, die speziellere Regel (r,dr) anwenden. Im Fall iii) gibt die Empirie keinen Hinweis
darauf, welcher der beiden Regeln im Konfliktfall der Vorzug gegeben werden soll. Bei
vorherigen Modellen haben wir zwei Strategien kennengelernt, wie mit diesem Fall
umgegangen werden kann. Sikkel löst den Fall so, dass einem Verbot immer der Vorrang
eingeräumt wird. Shen und Dewan dagegen arbeiten mit Prioritäten, die teilweise fest vom
System vorgegeben und teilweise durch den Benutzer gewählt werden. Das Modell von
Stiemerling arbeitet ebenfalls mit Prioritäten, die jedoch vollständig vom Benutzer
festgelegt werden können. Des Weiteren hat er das Problem dahingehend vereinfacht, dass
nur die Subjekte mehreren Gruppen, d.h. in dem Fall Benutzerrollen, zugeordnet werden
können. Mathematisch formuliert bedeutet das, wenn S (⋅) |= f = w und S (⋅) |= f = v gilt,
dann ist f der Faktor “Benutzerrolle“ oder w = v. Außerdem wird gefordert, dass der Faktor
„Benutzerrolle“ höchstens einmal in einer Regel auftaucht. Wenn mehrere Regeln gültig
sind, wird die Regel mit der höchsten Priorität angewendet. Die Priorität ergibt sich aus
den beiden unten definierten Funktionen π F und π R , wobei zuerst der Faktor, dann die
Rolle ausgewertet wird.
Formal lässt sich die Priorität P einer Regel (v, dv) wie folgt definieren:
Sei V:= Menge der Vorbedingungen, F:= Menge der Faktoren, mit R:= Menge der Rollen,
M := {n ∈ : n < | F |} und N := {n ∈ : n ≤ | R |} .
Sei π F : F → M bijektive Abbildung, die die Prioritäten der Faktoren festlegt.
✁
✂
ALLGEMEINE GRUNDLAGEN
53
Sei π R : R ∪ {∅} → N bijektive Abbildung, mit π R(∅) = 0 , die die Priorität der Rolle
festlegt.
Sei Faktor: V →℘( F ) die Funktion, die die Menge der benutzten Faktoren zurückgibt
und sei Role: V → R ∪ {∅} die Funktion, die die benutzte Rolle zurückgibt
und sei p ∈ ein benutzerdefinierbarer Prioritäts-Korrekturfaktor.
Dann berechnet sich die Priorität durch folgende Formel:
P(v) :=
✁
f ∈Faktor ( v )
2π F ( f ) +
π ( Role (v ))
R
N +1
+ p.
Definition der Semantik
Die Semantik des Modells lässt sich nun wie folgt definieren: Sei R eine Regelmenge,
dann ist einem Subjekt s ein r-Zugriff auf das Objekt o beim aktuellen Systemzustand
Sakt(s,o,r) erlaubt, wenn es ein (v, "Erlaubt") ∈ R gibt mit Sakt(s,o,r) |= v und P(v) = max
{ P(w) : Sakt(s,o,r) |= w}
3.5.5 Vergleich der Zugriffskontroll-Modelle
Zum Vergleich der Zugriffskontroll-Modelle bietet es sich an, die Terminologie von
Stiemerling, Won und Wulf (2000) zu übernehmen. Sie unterscheiden bei einem
Zugriffskontrollsystem die Aspekte der Repräsentation, der Präsentation und der
Manipulation. Bei der Repräsentation geht es darum, dass das Zugriffsmodell flexibel
genug sein sollte, so dass sich darin jede für den Anwendungskontext relevante
Zugriffsstrategie ausdrücken lässt. Die Präsentation soll dem Benutzer die aktuelle
Zugriffsstrategie zugänglich machen. Und zwar soll die Präsentation so sein, dass 1. er die
dem Zugriffskontrollsystem zugrunde liegende, Strategie und die daraus resultierenden
Entscheidungen des Systems versteht und 2. er die Unterschiede zwischen der
tatsächlichen und der von ihm intendierten Strategie erkennen kann. Die Manipulation
sollte so gestaltet sein, dass die Zugriffskontrollstrategie einfach und effizient während der
Nutzung des Systems an die Arbeitssituation angepasst werden kann.
Das Matrixmodell genügt zwar der Anforderung der Repräsentation, nicht aber der der
Präsentation und Manipulation. Denn es ist im Prinzip möglich, jede Strategie zu
spezifizieren47, weil jede einzelne Zelle der Matrix dezidiert festgelegt werden kann. Aber
auf der Ebene der Manipulation und der Präsentation besitzt das Modell diverse
Schwachstellen. Ein Defizit auf der Ebene der Manipulation besteht z.B. darin, dass, wenn
ein neues Objekt eingefügt wird, für jedes Subjekt entschieden werden muss, welche
47
Abgesehen von Anforderungen, die sich auf etwas beziehen, was nicht durch die Subjekte, Objekte und die
Operationen gegeben ist, wie zum Beispiel: „Zugriffe sind nur werktags erlaubt“.
54
Rechte dies auf dem neuen Objekt besitzen soll. Bei der Präsentation besteht das Problem
darin, dass das Modell neben der Zugriffsmatrix keine weiteren Strukturen kennt. So kann
das System dem Benutzer keine anderen Informationen präsentieren, als die, dass das
Subjekt s auf dem Objekt o die Operation r ausführen darf bzw. nicht ausführen darf. Der
Grund für diese Entscheidung, z.B. dass der Benutzer der Gruppe g angehört, geht
verloren.
Sowohl Modell von Shen und Dewan, als auch das von Sikkel, stellt auf der Ebene der
Präsentation und vor allem der Manipulation gegenüber dem Matrixmodell einen
Fortschritt dar. Wie oben erwähnt, ist bei Shen und Dewan die Berechnung der implizit
gegebenen Rechte kompliziert und nicht immer einsichtig. Um sie nachvollziehen zu
können, muss der Benutzer die Vererbungshierarchien der Subjekte, der Objekte und der
Rechte gleichzeitig erfassen. Dies macht es für den Benutzer schwierig, die Strategie zu
verstehen und zu entscheiden, ob die aktuell spezifizierte Strategie der intendierten
entspricht. Sikkels Modell vereinfacht die Präsentation, weil es hier nur eine Hierarchie
gibt und das Modell ohne Prioritäten auskommt.
Es lässt sich feststellen, dass vor allem das Modell von Lampson und das von Shen und
Dewan zu wenig Augenmerk auf die Handhabung durch den Benutzer gelegt haben.
Stiemerling, Won und Wulf (2000) plädieren deshalb dafür, die drei Aspekte
Repräsentation, Präsentation und Manipulation nicht getrennt voneinander zu betrachten.
Die Repräsentation der Zugriffskontrollstrategien soll dabei möglichst dicht an den
Formulierungen durchschnittlicher Benutzer und deren Sprache anschließen. Sie gehen
davon aus, dass dies zu einem Modell führt, „dessen Benutzerschnittstelle für den Benutzer
einfach zu handhaben ist, sowohl was die Präsentation als auch was die Manipulation der
aktuellen Strategie angeht“ [Stiemerling, Won und Wulf (2000)].
Das System von Stiemerling ist ein Beispiel, das diesem Ansatz folgt. Durch seine
empirische Fundierung kann das Zugriffskontrollsystem auch von EDV-Anwendern mit
geringen bis durchschnittlichen Kenntnissen benutzt werden [Stiemerling (1996, S. 113)].
Dies kommt dem Modell gerade auf der Ebene der Präsentation und der Manipulation zu
Gute. Auf der Ebene der Manipulation kann der Benutzer auf gleiche Weise, auf die er
normalerweise seine Zugriffsstrategie beschreibt, auch den Zugriff festlegen, da das
Zugriffskontrollsystem ein adäquates Regelreservoir anbietet. Auf der Ebene der
Präsentation kann der Benutzer sich alle zu einem bestimmten Gültigkeitsbereich
relevanten Regeln anzeigen lassen. Diese sind nach der Priorität sortiert und im
umgangssprachlichen Deutsch beschrieben (vgl. Abbildung 3-18). Regeln, die weiter oben
stehen, werden zuerst angewandt.
ALLGEMEINE GRUNDLAGEN
55
258_ Für den Besitzer ist Reglementieren, Reglementieren des Inhalts erlaubt.
136_ Für ein Mitglied von Mitarbeiter ist Lesen, Finden des Objekts TEXT C erlaubt.
49__ Für Thorsten Engelskirchen ist Lesen, Finden von April bis Juni am Ort Olivers Schreibtisch erlaubt.
2___ Für den Besitzer ist Lesen, Verändern, Löschen, Verweisen, Verweis löschen, Finden erlaubt.
0___ Für jeden ist das Lesen, Verändern, Löschen, Verweisen, Verweis löschen, Finden Reglementieren,
Reglementieren des Inhalts verboten.
Abbildung 3-18 Präsentation der Zugriffsregeln bei Stiemerling (1996, S. 105)
3.5.6 Resümee
Die Kritik, dass das Zugriffsmatrix-Modell zu unflexibel ist, führte dazu, dass Shen und
Dewan ein hoch-flexibles, aber auch ein hoch-komplexes Modell entwickelt haben. Das
Modell von Sikkel und das Modell von Stiemerling kann man als einen Versuch ansehen,
die Komplexität für den Benutzer handhabbar zu machen ohne die Flexibilität
einzuschränken. Der grundlegende Mechanismus, die Dichotomie in „erlaubt“ und
„verboten“, wurde aber bei keinem Modell in Frage gestellt oder erweitert.
In Kapitel 1 wird für den betrachteten Anwendungskontext gezeigt, dass die dichotome
Einteilung die Anforderungen, die an die Kontrolle des Zugriffs gestellt werden, nicht
erfüllen kann und deshalb die Zugriffskontrolle um andere Mechanismen zu erweitern ist.
56
57
4 DIE ANALYSE DES ANWENDUNGSFELDS
„Der Ablauf vieler [Software-]Projekte stellt sich dar als ein Doppelprozess
von technischer Entwicklung und ‚politischer’ Verarbeitung (Interessenaushandlung). Beide Prozesse sind auf vielfältige und meist schwer
durchschaubare Weise miteinander verwoben.” Weltz, Lullies und Ortmann
R.G. (1991)
In diesem Kapitel wird zunächst das Anwendungsfeld für das der Prototyp entwickelt
wurde erläutert und in die Diskussion der Virtuellen Organisation eingeordnet. Das
Anwendungsfeld zeichnete sich dadurch aus, dass die technische mit der betriebspolitischen Ebene während des gesamten Projekts sehr eng verwoben war. Da die
Interdependenzen der beiden Ebenen mit den in der Informatik üblichen Methoden zur
Anforderungsanalyse nicht erfasst werden können, wurde das empirische Material einer
soziologischen Analyse unterzogen. In Abschnitt 4.3 werden die Resultate der Analyse
erläutert. In Abschnitt 4.4 werden die Ergebnisse zusammengefasst und die Konsequenzen
für eine zu realisierende Zugriffskontrolle aufgezeigt.
4.1 Einführung in die Fallstudie und ihre Einordnung in die VO-Diskussion
Der Prototyp wurde im Rahmen des von der Europäischen Union geförderten OrgTechProjekts48 entwickelt [Iacucci et al. (1998), Nett, Fuchs-Frohnhofen und Wulf (2000)]. Ziel
des Projekts war es die zwischen Unternehmen bestehenden kooperativen Arbeitsprozesse
zu verbessern. Dabei stand eine Steigerung der Wettbewerbsfähigkeit der klein- und
mittelständischen Ingenieurbüros im Fokus des Interesses.
Deshalb wurde im OrgTech-Projekt versucht, die kooperativen Arbeitsprozesse zwischen
zwei Konstruktionsbüros und einem Stahlwerk zu unterstützen. Das Stahlwerk Bausig49
liegt im Ruhrgebiet und ist mit mehreren tausend Mitarbeitern eines der größten in
Deutschland und Teil eines größeren Konzerns. Die beiden Konstruktionsbüros haben
ihren Sitz ebenfalls im Ruhrgebiet und haben ungefähr 10 – 20 Mitarbeiter. Die beiden
Büros erledigen als Subunternehmer Konstruktions- und Dokumentationsaufträge für
Bausig. Das Auslagern von Konstruktionsaufträgen begann mit der gleichzeitigen
Verkleinerung der eigenen internen Konstruktionsabteilung Mitte der 80er Jahre. Je nach
Auftragslage und Konzernstrategie wird dabei das Auslagern von Konstruktionsaufträgen
in unterschiedlichen Umfang betrieben.
48
OrgTech steht für „Organizational and Technical Development in the Context of the Introduction of a
Tele-cooperation System in Small and Medium-Sized Engineering Companies“.
49
Der Name wurde zur Anonymisierung geändert.
58
Bei den ausgelagerten Aufträgen handelt sich es um Instandhaltungsmaßnahmen von
Anlagen, die sich auf dem Werksgelände des Stahlwerks befinden. Innerhalb des
Stahlwerks koordiniert die interne Konstruktionsabteilung die Konstruktion und die
Dokumentation. Außerdem ist sie für den Kontakt mit den externen Büros und dem
Stahlwerk zuständig. Die Kooperation zwischen den Büros und dem Stahlwerk und der
Ablauf einer Auftragsbearbeitung ist schematisch in Abbildung 4-1 dargestellt.
Stahlwerk
Archiv
(4), (7)
Suche:
Zeichnungen
(2) Auftragsprüfung
(10)
Archiv.
Projektdokum.
Interne
Konstruktion
(9) Übergabe
Projektdokumentation
(6) Anforderung
weiterer Zeichn.
(5), (8) Übergabe
von Zeichn.
Externe
Ingenieurbüros
(3) Auftragsvergabe
(11)
Übergabe
Zeichn.
Werkstatt:
Instandhaltung
(1) Auftragsinitiierung
Anlagenbetreiber
Abbildung 4-1 Ablaufdiagramm der Auftragsbearbeitung
Die Kooperationspraxis soll anhand zweier Zitate illustriert werden. In ihnen wird der
Arbeitsablauf aus der Sicht der internen Konstruktion und kontrastiv dazu aus der Sicht der
externen Büros geschildert.
„Der Ablauf sieht so aus, dass wir zunächst einen Konstruktionsauftrag
erhalten.[...] Wir prüfen zunächst das Anliegen der Endkunden formal und
inhaltlich. Dann müssen wir Kapazitäten und Kompetenzen für die
Konstruktion überprüfen, z.B. einen passenden Fremddienstleister suchen. Die
Externen erhalten offiziell erst nach dieser internen Prozedur den
Konstruktionsauftrag. Bei Eile wird jedoch direkt hin und her telefoniert und
ein mündlicher Auftrag erteilt, so dass sich die formale und die tatsächliche
Struktur überschneiden. Offiziell dürfen wir keinen Auftrag erteilen ohne
offizielle Genehmigung als Ende des offiziellen Wegs. Aber niemand kann
DIE ANALYSE DES ANWENDUNGSFELDS
59
verantworten, dass z.B. die Produktion wochenlang stillsteht. Dazwischen
spielt sich die Wahrheit ab.” Mitarbeiter der internen Konstruktionsabteilung50
„In der Kooperation mit Bausig gibt es den formalen und den informalen
Ablauf. Formell werden die Aufträge von der zentralen Konstruktionsabteilung
an die Büros vergeben. Dazu sollte sich der Anlagenbetreiber nach der
Morgenbesprechung an den Instandhalter vor Ort wenden. Dieser
dokumentiert den Wunsch und vergibt den Auftrag an den kostengünstigeren.
Er ist formal auch für die Überwachung und die Abrechnung des
Konstruktionsauftrages verantwortlich. Die Ingenieure erhalten je nach Anzahl
der Zeichnungen einen bestimmten, für 3 Jahre ausgehandelten Fixsatz.
Insofern ist formal der Auftraggeber von Partner & Lange immer die
Konstruktion. De facto werden die Aufträge aber ganz anders vergeben: Die
Anlagenbetreiber – als die tatsächlichen Endkunden – wenden sich häufig
direkt an die Konstruktionsbüros (telefonisch nach der alltäglichen Morgenbesprechung) und machen Termine aus, um anstehende Aufträge zu
besprechen.“ Mitarbeiter der externen Konstruktionsbüros51
Wie in Iacucci et al. (1998) dargelegt, gibt es bei der Kooperation von Bausig und externen
Büros einige Punkte, die verbessert werden könnten. So beschweren sich die Büros unter
anderem über die unzureichenden Vorgaben bei der Auftragsvergabe. Dies macht
zusätzliche Besprechungen notwendig, in denen die Unklarheiten geklärt werden müssen.
Außerdem gäbe es Probleme mit den von der internen Konstruktionsabteilung
zusammengestellten Zeichnungen. Teilweise fehlten einige und andere stimmten nicht mit
dem Zustand der Anlagen überein. Es wurde auch das Fehlen eines einfachen Datenaustauschs zwischen ihnen und dem Stahlwerk bemängelt.
Aus einem Protokoll eines anfänglichen Arbeitstreffens des OrgTech-Projekts lässt sich
entnehmen, dass die externen Büros anregten, das elektronische Zeichnungsarchiv von
Bausig nach außen zu öffnen. Die beim OrgTech-Projekt involvierten Mitarbeiter von
Bausig hatten eine ambivalente Haltung gegenüber einer elektronischen Öffnung ihres
Archivs. Es wird eine missbräuchliche Nutzung des Archivzugangs befürchtet, doch „von
Seiten des Archivs steht man einer gewissen Öffnung für den Datenzugriff ‚offen’
gegenüber, da durch derartige Schritte arbeitsintensive Tätigkeiten entfallen könnten /
50
Das Zitat entstammt einem im OrgTech-Projekt angefertigten Gedächtnisprotokoll, das ein Interview mit
einem Mitarbeiter der internen Konstruktionsabteilung wiedergibt.
51
Das Zitat entstammt einem im OrgTech-Projekt angefertigten Gedächtnisprotokoll, das ein Interview mit
einem Mitarbeiter eines externen Konstruktionsbüros wiedergibt.
60
würden“52. Diese ambivalente Haltung fand sich auch in der Diskussion des Prototyps mit
der internen Konstruktionsabteilung wieder, so z.B. im folgenden Zitat:
„Ich glaube die Betrachtung von einzelnen tif-Dateien ist das das Problem
nicht, ne das ist also, das können sie ruhig machen. Das ist kein Thema
[OrgTech-Mitarbeiter: ja klar] Aber tif-Dateien äh rausholen, aus dem Archiv
wie gesagt, ist die Frage überhaupt, ne. [Mitarbeiter2: ehm] Der Teil ja ok
[unverständliche Textpassage] zu den Externen.“ Mitarbeiter der internen
Konstruktionsabteilung bei Bausig53
Diese aus technischer Sicht widersprüchliche Anforderung ergibt jedoch vor dem
Hintergrund der Organisationsstruktur einen Sinn. Im Zitat drückt sich eine unterschwellig
gegebene Rahmenbedingung aus, die an die Softwareentwicklung im OrgTech-Projekt
gestellt wurde. Sie lässt sich mit dem folgenden Satz charakterisieren:
Die Fremddienstleister sollen zwar selbständig arbeiten können, aber die Kontrolle muss
bei Bausig bleiben54.
Das Anwendungsfeld lässt sich unter der Thematik „Kooperation in Virtuellen
Organisationen“ einordnen. Dabei stellen Virtuelle Organisationen ein relativ neues
Anwendungsfeld der Informatik dar. Der Begriff der Virtuellen Organisation (VO) ist in
der Literatur bisher nicht eindeutig bestimmt. Im allgemeinen werden unter diesem Begriff
Phänomene erfasst, die mit bisherigen Beschreibungen organisatorischer Modelle nur
unzureichend abgedeckt werden. Eine weitgehend akzeptierte Definition beschreibt
virtuelle Organisationen als eine Kooperation von rechtlich unabhängigen Firmen oder
Einzelpersonen, die ihre Kernkompetenzen in vertikaler oder horizontaler Weise
miteinander vernetzen. Die Literatur betont außerdem das Faktum, dass Hierarchien in
virtuellen Organisationen flach und zentrale Koordinations- und Kontrollfunktionen nicht
etabliert sind. Die meisten Autoren geben an, dass die virtuelle Organisation nur für eine
begrenzte Zeit errichtet wird, und dass die Mitglieder einer virtuellen Organisation
gewöhnlich geographisch verteilt arbeiten. Die räumliche Distanz soll dabei durch den
Einsatz von Informations- und Kommunikationstechniken (I.u.K.-Techniken)
52
Zitat aus dem Protokoll des Arbeitstreffens, das von einem OrgTech-Mitarbeiter angefertigt wurde.
Der Mitarbeiter äußerte das Zitat, als zwei Mitarbeitern der internen Konstruktionsabteilung ein Papier
MockUp des Prototyps durch die OrgTech-Mitarbeiter vorgestellt wurde (vom Autor transkribiertes
Tonbandprotokoll).
53
54
Ein ähnliches Phänomen beschreiben Sydow et al. (1995), die bei interorganisatorischer Kooperation auch von kontrollierter
Autonomie sprechen, wenn „den Akteuren bewusst ein gewisses Maß an Autonomie zugestanden wird, die Einhaltung der Autonomiespielräume aber gezielt kontrolliert werden“ [Sydow et al. (1995, S. 62)]. Im vorliegenden Fall ist jedoch nicht klar, wie der
Autonomiespielraum aussehen könnte.
DIE ANALYSE DES ANWENDUNGSFELDS
61
überwunden werden [Davidow und Malone (1993), Arnold und Härtling (1995), Mertens,
Griese und Ehrenberg (1998)].
Mit der Auflösung der organisatorischen und räumlichen Grenzen erwächst die besondere
Flexibilität, die man den VOs zuschreibt. Diese Flexibilität stellt einen entscheidenden
Wettbewerbsvorteil in sich dynamisch wandelnden Märkten dar. Aus der Kooperation aus
rechtlich selbstständigen und räumlich verteilten Partnern ergeben sich aber auch neuartige
Unsicherheitsmomente. Diese entstehen häufig aus der widersprüchlichen Einheit von
gemeinsamen und unterschiedlichen Interessenlagen der Kooperationspartner55. In
klassischen Organisationen können Konflikte, die sich aus divergierenden Interessenlagen
zwischen Individuen oder einzelnen Organisationseinheiten ergeben, durch Weisung
entlang der Organisationshierarchien (zumindestens prinzipiell) geregelt werden. Solche
Regelungsmöglichkeiten bestehen in virtuellen Organisationen typischerweise nicht. Damit
ergeben sich aus der Organisationsstruktur Konfliktpotentiale, die bei der
Systemgestaltung zu berücksichtigen sind.
4.2 Forschungsmethodik
„The conventional design processes are problematic because they are based
on subsequent elimation of alternatives and early commitments which reduce
the adaptabilty“ Tekinerdogan und Aksit (1996, S. 10)
Im OrgTech-Projekt wurden zur Erfassung der Anforderungen Techniken aus dem
Partizipativen Design benutzt. So wurden zu Beginn des Projekts ein Workshop unter der
Beteiligung von Vertretern Bausigs und den zwei externen Büros veranstaltet. Nach einer
Vorstellung der Projektziele wurden per Kartenabfrage Probleme in der
zwischenbetrieblichen Kooperation von den Teilnehmern genannt und gemeinsam
geordnet. Basierend auf den im Workshop genannten Problemfeldern wurde ein
Interviewleitfaden entwickelt und etwa 20 semi-strukturierte Interviews mit Mitarbeitern
der drei Organisationen geführt. Zur Rückkopplung der Designideen dienten ein Papier
MockUp und ein Workshop, auf dem ein Prototyp vorgestellt wurde.
In der Anforderungserhebung zeigten sich diffuse und zum Teil widersprüchliche
Vorstellungen über den Zugriff der Externen. Solche Konstellationen dürften, gerade im
Anwendungsbereich des CSCW, nicht unüblich sein. Jedoch tut sich die gängige
Anforderungsanalyse, wie es auch im Zitat von Tekinerdogan und Aksit (1996) zum
55
So verwundert es nicht, dass in der VO-Diskussion das Thema Vertrauen einen besonderen Stellenwert
hat. Picot und Neuberger (1997) sprechen gar von einem „Vertrauensdilemma“, denn „zum einen ist
Vertrauen eine notwendige Voraussetzung [für VOs], zum anderen ist diese Voraussetzung jedoch nur sehr
schwierig herzustellen“ (zit. nach Schüppler 1998). Auf den Zusammenhang von Vertrauen und Kontrolle
weisen Sydow et al. (1995 S.55 ff.) hin.
62
Ausdruck kommt, in solchen Situationen schwer. Sie sind darauf ausgelegt die
Vollständigkeit und Widerspruchsfreiheit zu prüfen. Sie liefern aber keine Einsichten, die
die Unvollständigkeit und Widersprüchlichkeiten aufklären. Dies liegt daran, dass
auftretende Widersprüche und Unklarheiten nur unter dem Gesichtspunkt der technischen
Umsetzbarkeit betrachtet und deswegen als Störungen empfunden werden, die es zu
eliminieren gilt.
Aus diesem Grund wurde das empirische Material zusätzlich mit Mitteln der empirischen
Sozialforschung analysiert. Die Analyse diente dazu, die im OrgTech-Projekt intuitiv
getroffenen Einschätzungen methodisch abzusichern und genauere Einblicke in das
Anwendungsfeld zu gewinnen.
In der Arbeit wurde zur Analyse auf die Objektive Hermeneutik zurückgegriffen. Die
Objektive Hermeneutik ist „eine theoretisch begründete Methodologie und zugleich eine
forschungspraktische Kunstlehre für die systematische Auswertung jeglichen Datentyps
innerhalb des Ensemble der Sozial-, Kultur- und Geisteswissenschaften, also der
Erfahrungswissenschaften von der sinnstrukturierten Gegenstandswelt“56. Ihr Anliegen
„besteht in einer methodischen Kontrolle der wissenschaftlich-empirischen Operation des
Verstehens“ [Wernet (2000, S. 11)]. Ihre Grundannahmen sind in verschiedenen Arbeiten
dargestellt worden [Oevermann (1991, 1993, 1996)].
Für die Arbeit ist es wichtig, dass die Objektive Hermeneutik sich auch für die Analyse
von Gedächtnisprotokollen eignet. Zwar ist der Umstand, dass es sich um ein ediertes
Protokoll handelt zu berücksichtigen, jedoch sind editierte und nicht editierte Protokolle
für eine Rekonstruktion nicht kategorial verschieden. Beide werden methodologisch als
Protokolle aufgefasst und können deshalb mit gleicher Methode analysiert werden57.
Im Rahmen der Objektiven Hermeneutik wurde die Sequenzanalyse als eine Methode zur
Fallstuktur-Rekonstruktion entwickelt. Eine Einführung in die Methode findet man bei
Wernet (2000). Die Prinzipien zur Analyse von Protokollen sind in Tabelle 4-1 aufgelistet.
56
Dieses Zitat entstammt einer Selbstdarstellung (zu finden unter: http://www.rz.unifrankfurt.de/~hermeneu/Reihe.htm).
57
Zur Analyse editierter Texte siehe auch Oevermann (1997).
DIE ANALYSE DES ANWENDUNGSFELDS
Analyse-Prinzip
Erklärung
Kontextfreiheit
Welche Bedeutungen hat der Text, unabhängig von seinem
aktuellen Kontext.
Wörtlichkeit
Nicht was der Text sagen wollte, sondern was der Text gesagt
hat, ist Ziel der Explikation.
Sequenzialität
Man wandert nicht zwischen Textstellen auf der Suche nach
brauchbaren Teilen, sondern folgt das Textprotokoll Schritt für
Schritt.
Extensivität
Prinzipiell
müssen
alle
protokollierten
Textelemente
berücksichtigt werden. Kein Element darf ausgeschlossen
werden.
Sparsamkeit
Nur diejenigen Lesarten sind erlaubt, die vom Text erzwungen
sind.
63
Tabelle 4-1 Die Prinzipen der Sequenzanalyse [nach Wernet (2000, S. 90)]
4.3 Analyseergebnisse
Mit Hilfe der Sequenzanalyse wurde der Protokollausschnitt auf Seite 66 analysiert. Die
Analyse liefert einen ersten Hinweis darauf, dass die Zusammenarbeit durch ein
dialektisches Verhältnis von Kooperation und Konkurrenz geprägt ist. Diese Hypothese
wurde durch andere Stellen im Datenmaterial erhärtet. Als Grund für dieses Verhältnis
wurde die Organisationsstruktur identifiziert. Im Folgenden beschränke ich mich darauf,
die Ergebnisse der Analyse zu präsentieren, soweit sie für den externen Zugriff relevant
sind.
4.3.1 Das dialektische Verhältnis von Konkurrenz und Kooperation
Zu Beginn des Projekts befand sich das Stahlwerk in einem länger währenden
Umstrukturierungsprozess, der auch das Auslagern von Unternehmensteilen enthielt. So
wurde die interne Konstruktionsabteilung zugunsten externer Dienstleister verkleinert.
Dies, so kann man annehmen, war mit einer Verunsicherung der Betroffenen verbunden58.
58
Vergleiche Peltzer (1998) zu der Thematik von Umstrukturierungsmaßnahmen und der damit verbundenen
Verunsicherung.
64
Durch diese Umstrukturierungsmaßnahmen hat sich die Rolle der internen Konstruktionsabteilung gewandelt. Dadurch ist die interne Konstruktionsabteilung in ein strukturelles
Dilemma geraten, dass ein Bausig-Mitarbeiter so beschrieben hat: „Wenn der
Fremddienstleister
direkt
die
Betreiber
kontaktiert,
wird
die
interne
Konstruktionsabteilung zwar entlastet, aber bei Problemen trägt sie die Verantwortung
ohne beteiligt worden zu sein. [...] Weiterhin geht der Überblick für die interne Abteilung
verloren, wenn Dienstleister und Betreiber direkt miteinander (ohne interne Konstruktion)
kommunizieren, da die interne Konstruktion u.U. gar nicht erfährt, dass etwas geändert
wurde“59. Das Wünschenswerte, Fremddienstleister und Endkunden agieren direkt
miteinander, hat kehrseitig das zu Vermeidende zur Folge, nämlich, dass die interne
Konstruktion außen vor bleibt.
Die strukturellen Probleme, die sich aus der Umstrukturierung ergeben, drücken sich in
unterschiedlichen Rollen aus, die die interne Konstruktionsabteilung gegenüber den
externen Büros einnimmt und die sich im Widerstreit zueinander befinden. Geklammert
werden die verschiedenen Rollen durch das übergeordnete Ziel, im Sinne Bausigs zu
handeln. Die Rollen der internen Konstruktionsabteilung sind sowohl die des
Auftraggebers, als auch die des eigenständigen Marktteilnehmers. Dementsprechend ist der
Externe aus ihrer Sicht sowohl ein Auftragnehmer, als auch ein Konkurrent. Dabei hat die
interne Konstruktionsabteilung auch die Rolle des Werkschutzes zu übernehmen. Die
Organisationsstruktur von Bausig lässt es aber offen, wie diese Rolle zu interpretieren ist:
Soll nur die eigene Abteilung oder das gesamte Unternehmen geschützt werden und vor
allem, sind die externen Büros ein Teil von Bausig, die man zu schützen hat, oder sind die
Büros etwas, vor dem man sich und Bausig schützen muss? Aus dieser Konstellation
ergeben sich die Unwägbarkeiten in der Beziehung, die dazu führen, dass bei der
Zusammenarbeit zwischen Internen und Externen immer gleichgerichtete als auch
divergierende Interessen vorhanden sind. Diese Gleichzeitigkeit von Kooperation und
Konkurrenz hat auch Auswirkungen auf die Gestaltung der Zugriffskontrolle, auf die ich in
Kapitel 1 eingehe.
Diese Ambivalenz kennzeichnet aber nicht nur die Auftragsvergabe, sondern auch die
weitere Auftragsbearbeitung. Insbesondere trifft dies auf die zur Auftragsbearbeitung notwendigen Zugriffe aufs elektronische Zeichnungsarchiv zu. Bei dem Zugriff der Externen
auf das Archiv muss man ebenfalls zwischen der offiziellen und der praktizierten Struktur
unterscheiden. Die von Bausig beabsichtigte Arbeitsteilung kann grob so skizziert werden:
Der interne Sachbearbeiter sucht alle notwendigen Zeichnungen für den Externen heraus
und übergibt sie ihm. Dieser überarbeitet sie dann und gibt sie anschließend wieder zurück.
59
Das Zitat entstammt einem im OrgTech-Projekt angefertigten Gedächtnisprotokoll, das ein Interview mit
einem Mitarbeiter einer Konstruktionsabteilung wiedergibt.
DIE ANALYSE DES ANWENDUNGSFELDS
65
Am Ende werden sie von Bausig noch einer Qualitätskontrolle unterzogen. Ein Mitarbeiter
beschreibt dies wie folgt: „Der externe Dienstleister bekommt von uns in der Regel die
komplette Dokumentation, zum Teil auch die Problemlösung übergeben. Er verbleibt nach
dieser Vorklärung aber ausführendes Organ. Nachher müssen wir neben inhaltlicher und
geographischer Prüfung auch noch die Strukturprüfung vornehmen.“
In einem solchen Idealfall besteht nicht das Problem eines externen Zugriffs auf das
Archiv. In der Praxis kommt es aber immer wieder vor, dass Unterlagen nachgefordert
werden (in Abbildung 4-1 durch Pfeil (6) dargestellt). Dies kann auf verschiedenen Wegen
geschehen: Die Zeichnung kann über Telefon, Fax und neuerdings auch E-Mail
angefordert werden. Oder aber der externe Ingenieur fährt auf das Werksgelände und sucht
dort zusammen mit einem Mitarbeiter von Bausig im Archiv. Er kann allerdings auch
alleine mittels eines guest-account im elektronischen Archiv nach der Zeichnung suchen.
Im Archivzugriff reproduziert sich dabei der oben beschriebene Grundkonflikt zwischen
den Internen und Externen. Die interne Konstruktionsabteilung beschränkt sich bei der
Dokumentenübergabe auf das Notwendigste. Damit übernimmt sie eine eigentlich nicht
übertragbare Aufgabe. Denn es gehört mit zur Aufgabe des ausführenden Organs, also der
Externen Konstruktionsabteilung, zu beurteilen, ob eine Zeichnung für das Problem
relevant bzw. nicht relevant ist. Überlässt die interne Konstruktionsabteilung diese
Aufgabe den Externen, so dass die Fremddienstleister direkt das Archiv kontaktieren, wird
die interne Konstruktionsabteilung zunächst entlastet. Dann entsteht aber wieder das
Dilemma, dass sie bei Problemen die Verantwortung trägt, ohne beteiligt worden zu sein.
Weiterhin geht der Überblick für sie verloren, wenn der Dienstleister, ohne sie zu
kontaktieren, sich direkt die Zeichnung beschafft, da die interne Konstruktionsabteilung
unter Umständen gar nicht erfährt, dass etwas geändert wurde.
Daran lässt sich die Hypothese festmachen, dass bei der internen Konstruktionsabteilung
ein hohes Kontrollbedürfnis besteht.
Dabei scheint auf den ersten Blick der guest-account mittels dessen die Externen
selbstständig im elektronischen Archiv suchen können im Widerspruch zur Hypothese zu
stehen, dass bei Bausig ein hohes Kontrollbedürfnis besteht. Doch um ihn nutzen zu
können, muss sich der Externe zu Bausig begeben und sich dafür vorher angemeldet
haben. Damit stellt aber das Werkstor als eine räumliche Begrenzung des Zugangs – und
das ist hier offenbar entscheidend – eine für das Sicherheitsbedürfnis von Bausig
ausreichende Kontrolle dar. Der guest-account kann als ein Indiz dafür gesehen werden,
dass nicht die Zeichnungen an sich das eigentlich Sensible darstellen, sondern der
unkontrollierte Zugang dazu.
66
4.3.2 Chance und Risiko – zwei Kinder des Internets
Vor dem Hintergrund der eben erläuterten Kooperationspraxis zwischen Internen und
Externen ist es interessant, wie die Kooperation über das Internet eingeschätzt wird. Ein
Auszug aus einem Protokoll eines Workshops aus der Anfangsphase soll die Haltung
illustrieren. Bei dem Workshop wurden die Möglichkeiten einer Telekooperation
diskutiert. Es waren Vertreter der internen Konstruktionsabteilung, der EDV-Abteilung
von Bausig, den zwei externen Büros und Mitarbeiter des OrgTech-Projekts anwesend.
„ (Schmidt60 – interne Konstruktionsabteilung, Meier – EDV-Abteilung bei
Bausig, Heinrich – externes Konstruktionsbüro)
[...]
Schmidt: Alles schwierig, Get Admin und so. Es gibt immer Lücken.
Programme die dies ausnutzen[sind] schon im Internet. Da wird es
immer was geben, was DOS noch nicht abfängt.
Meier: Internet können
Heinrich: Es gibt keine Rechte, runtergeholte Sachen nicht zu verwenden. Es
gibt die Firma X, für die ich früher gearbeitet habe, deren Anlagen
kann man mittlerweile in Asien bestellen. Deren ganzer Know-how
Vorsprung ist verloren gegangen.
Meier: Ja, deshalb müssen wir die folgende Anforderung an das OrgTechProjekt formulieren: Abwehr von Industriespionage: Aus der Sicht von
Bausig, aber auch [der] Büros.
Heinrich: Über kurz oder lang wird es unüberschaubar, deshalb von
vornherein gut aufpassen.
Meier: Nach 18 Minuten Betrieb war der erste Hacker in unserem neuen
Firewall-Rechner und nach 22 Minuten in unserem Netz. Deshalb
haben wir einen neuen Firewall-Rechner bekommen.
Heinrich: Trotzdem, E-Mail ist wichtig“. [aus dem Gedächtnisprotokoll eines
Workshop aus der Anfangsphase des Projekts]
Im Falle Bausig ist es der Externe, also Heinrich, der sowohl die Risiken benennt („es gibt
keine Rechte runtergeholte Sachen nicht zu verwenden“), als auch die Chancen sieht:
„Trotzdem, E-Mail ist wichtig“. Für die Mitarbeiter stehen demgegenüber die Gefahren im
Vordergrund, die im Internet lauern. Diese Risiken machen es für Bausig schwer, sich auf
das Internet als neues Kommunikationsmedium einzulassen.
60
Alle Namen wurden zur Anonymisierung geändert.
DIE ANALYSE DES ANWENDUNGSFELDS
67
Auf der technischen Ebene drückt sich diese Haltung in einer restriktiven Konfiguration
der Firewall aus, die das Intranet von Bausig schützt. Für die Einschätzung des Projekts ist
anzumerken, dass die Konfiguration der Firewall außerhalb des OrgTech-Projekts lag. Es
gab deshalb die Anforderung, dass bei der Telekooperationslösung nur via E-Mail
zwischen Externen und Bausig kommuniziert werden darf.
Bei der internen Konstruktion kann es zusätzlich eine Rolle spielen, dass eine Abschottung
vom Internet gleichzeitig eine Abschottung gegenüber der Welt bedeutet. Da der
elektronische Zugriff der Externen ein tabuisiertes organisationsstrukturelles Problem der
Kooperation betrifft, kann eine mögliche Aversion gegen den Zugriff durch eine kritische
Haltung gegenüber dem Internet sublimiert werden. Bei der Haltung der EDV-Abteilung
ist zu bedenken, dass sie meist den Schwarzen Peter zugeschoben bekommt, wenn etwas
schief läuft. Durch ihre Position kommt ihnen die Rolle zu, Veränderungen kritisch zu
begleiten.
Auch an diesem Punkt zeigt sich der im Eingangszitat des Kapitels von Weltz, Lullies und
Ortmann (1991) festgestellte Doppelcharakter der Softwareentwicklung. Dabei kann man
ihnen zustimmen, wenn sie meinen:
„Ein Symptom des Doppelcharakters der Software-Entwicklungsprozesse, das
die Auseinandersetzungen über die Systemgestaltung zweifellos erschwert, ist
der Umstand, dass häufig auf der technischen Ebene argumentiert wird, selbst
wo es auch oder primär um ‚politische‘ Aspekte geht.“ Weltz, Lullies und
Ortmann (1991)
Jedoch handelt es sich im Falle des Internets um eine unternehmens-politische
Entscheidung, bei der die Chancen gegenüber den Risiken miteinander abgewogen werden
müssen. Bei dieser Entscheidung spielen technische Gesichtspunkte zwar eine wichtige
Rolle, man kann sie aber nicht auf diese allein reduzieren. So offenbart sich in der
weltweiten Verfügbarkeit des Internet das Gemeinsame von Chance und Risiko als das
konstituierende Element unternehmerischen Handelns.
4.4 Zusammenfassung der Analyse
Aus den Geschäftszielen und dem Aufbau eines Unternehmens ergeben sich dessen Kerngeschäft und das seiner Organisationseinheiten. Angelegenheiten der zwischenbetrieblichen Kooperation, die in diesen Bereich fallen, werden dementsprechend
kritischer beurteilt als die, die eher im Randbereich liegen. Beim Stahlwerk Bausig stellt
die Regelung des Zugriffs auf das elektronische Archiv ein Privileg der internen
Konstruktionsabteilung dar, insbesondere auch im Wettbewerb mit den externen
68
Dienstleistern. Bedroht die Einführung des externen Zugriffs auf das elektronische Archiv
diesen „Wettbewerbsvorteil“ kann dies zu besonderen Spannungen führen.
Durch die Einführung von Telekooperationssystemen fallen physische ZugriffskontrollMechanismen (beispielsweise das Werkstor von Bausig) weg. Der Wegfall dieser
Kontrollmechanismen hat zur Folge, dass interorganisatorische Spannungen virulent
werden und dies sogar die Einführung von I.u.K.-Systemen verhindern kann. Bei der
Kooperation über das Internet kommt hinzu, dass die weltweite Verfügbarkeit des Internets
sowohl Chancen, als auch Risiken in sich birgt.
Die Gleichzeitigkeit von Kooperation und Konkurrenz erklärt, warum es zu den
unterschiedlichen und diffusen Vorstellungen der Beteiligten hinsichtlich des externen
Zugriffs kommt. Dadurch kann der externe Zugriff eine Transformation der
Kooperationspraxis bedeuten, dessen Gewinn schwer abzuschätzen ist. Dies wird noch
dadurch verstärkt, dass das Internet ein unbekanntes und dadurch potentiell gefährliches
Kommunikationsmedium darstellt.
Bei der Gestaltung des Zugriffskontrollsystems für Telekooperationssysteme muss die
Gleichzeitigkeit von Kooperation und Konkurrenz ebenso beachtet werden, wie die von
organisationalen Vorgaben abweichende Arbeitspraxis. Dabei reicht es nicht aus, die
momentane Praxis in ein Computersystem zu formalisieren und damit zu fixieren. Damit
ließe sich zwar die Kooperation zwischen Bausig und den Fremddienstleistern effizienter
gestalten, jedoch würde man das Transformationspotential unberücksichtigt lassen, das die
Einführung einer Telekooperationslösung beinhaltet. Das Spannungsverhältnis, gepaart mit
der Benutzung unbekannter Technik, macht es aber für die Beteiligten schwer, sich auf
eine zukünftige Praxis festzulegen. Nach der in der Arbeit vertreten den Auffassung, sollte
die Systemgestaltung in diesem Punkt möglichst offen gehalten werden und den Benutzern
einen „Strauss von Möglichkeiten“ anbieten, der eine Kompromisslösung zwischen den
Beteiligten unterstützt.
Trotz der bestehenden Unklarheiten lassen sich zwei Eckpunkte angeben, die ein
Zugriffskontrollsystem für elektronische Archive besitzen muss: Zum einen muss ein
solches Zugriffskontrollsystem den einzelnen Akteuren die Möglichkeit geben,
eigenständig Zugriffspolitiken für einzelne Zuständigkeitsbereiche des elektronischen
Archivs zu definieren. Dies erfordert ein mächtiges, aber intuitiv nutzbares
Konfigurationswerkzeug. Zum anderen reicht es nicht aus, die klassischen
Zugriffskontrollsysteme in ihrer Handhabung zu verfeinern, sondern es bedarf qualitativ
anderer Kontrollmechanismen. Alle diese Mechanismen haben die Gemeinsamkeit, dass
sie den Zugriff auf irgendeine Weise anzeigen. Es ist deshalb anzunehmen, dass die
DIE ANALYSE DES ANWENDUNGSFELDS
69
Awareness-Forschung auch Auswirkungen auf die Zugriffskontroll-Modelle gerade im
CSCW-Bereich haben wird.
4.5 Sonstige Anforderungen an den Prototypen
Neben der Gestaltung der Zugriffskontrolle und der von Bausig vorgegebenen
Anforderung, dass die Kommunikation zwischen Bausig und den Externen auf dem
Mailprotokoll basieren muss, war die Anbindung an das bestehende elektronische
Archivsystem ADOS ein anderes Problem, das gelöst werden musste. ADOS ist eine
klassische Zwei-Schichten Architektur. Alle persistenten Daten, außer den eigentlichen
Zeichnungen, werden bei ADOS in einer Oracle-Datenbank gespeichert. Die eigentlichen
Zeichnungen liegen als Dateien vor, wobei der entsprechende Dateiname in der Datenbank
vermerkt ist. Die Programmlogik von ADOS steckt in einer in Visual Basic geschriebenen
Microsoft Access-Anwendung. Die Funktionalität von ADOS ist in einer Diplomarbeit
beschrieben, die bei Bausig angefertigt wurde.
70
HERLEITUNG EINER ERWEITERTEN ZUGRIFFSKONTROLLE
71
5 HERLEITUNG EINER ERWEITERTEN ZUGRIFFSKONTROLLE
Im vorliegenden Kapitel wird ein Modell zur erweiterten Zugriffskontrolle entwickelt. In
Abschnitt 5.1 wird gezeigt, warum die in Abschnitt 3.5 dargelegte klassische
Zugriffskontrolle zu kurz greift. Aus dieser Einsicht wird ein erweitertes Modell zur
Zugriffskontrolle entwickelt, das den Akteuren mehr Spielraum in der Gestaltung der
Zusammenarbeit ermöglicht. Eine technische Umsetzung des Modells durch den Prototyp
ADOS-X wird in Kapitel 6 vorgeschlagen.
Abbildung 5-1 Einflüsse, der in Abschnitt 5.4 beschriebenen erweiterten Zugriffskontrolle und der
Zusammenhang zum Prototypen ADOS-X
5.1 Zugriffskontrolle und Kooperation
Bei einer Arbeit im Bereich der CSCW-Forschung liegt es nahe, den Zugriff der Externen
auf das elektronische Archiv aus dem Blickwinkel der Kooperation zu betrachten. Malone
und Crowston (1994) merken in ihrer Coordination Theory an, dass beim kooperativen
Arbeiten die gemeinsame Nutzung von Ressourcen untereinander abgestimmt werden
muss. Sie sprechen in dem Zusammenhang von Koordination, die sie definieren als
„managing dependencies between activities” [Malone und Crowston (1994)].
Aus der Sicht eines Beteiligten kann die Gesamtheit der Ressourcen, wie in Abbildung 5-2
dargestellt, in drei Teile aufgeteilt werden. Die privaten Ressourcen, die gemeinsamen
Ressourcen, bei denen die Nutzung mit anderen abgestimmt werden muss und solche, bei
denen das nicht der Fall ist. Dem äußeren und dem inneren Kreis ist gemein, dass bei
beiden keine Koordination mit Anderen notwendig ist. Im ersten Fall liegt es daran, dass
andere keinen Zugang zu den Ressourcen brauchen. Im zweiten Fall sieht man selber
keinen Koordinationsbedarf, weil z.B. die Ressource für die eigene Arbeit momentan nicht
relevant ist. Eine solche Einteilung findet sich auch bei der Kooperation innerhalb Bausigs
und könnte anhand der im elektronischen Archiv eingebauten Versionskontrolle illustriert
werden.
72
Private Ressourcen
Gemeinsame Ressourcen
mit Koordinationsbedarf
Gemeinsame Ressourcen
ohne Koordinationsbedarf
Abbildung 5-2 Einteilung der Ressourcen aus der Sicht eines Anwenders
Ob sich die drei Bereiche so klar trennen lassen, wie in Abbildung 5-2 suggeriert wird, ist
hier nicht der entscheidende Punkt. Wichtig ist nur, dass es einen dritten Bereich gibt, der
von der Zugriffskontrolle nicht erfasst wird. Denn versucht man die drei Bereiche auf die
duale Aufteilung der klassischen Zugriffskontrolle abzubilden, erkennt man, dass der
Bereich der koordinationsbedürftigen Ressourcen in erlaubt und verboten aufgespaltet
werden muss. Die „Erlaubt-Verboten“-Dichotomie der klassischen Zugriffskontrolle liegt
darin begründet, dass sie die Kategorie der Koordination bzw. die dafür notwendige
Transparenz des Zugriffs nicht kennt.
Das Fehlen von Koordination ist ein prinzipielles Defizit der klassischen Zugriffskontrolle,
jedoch fällt sie im vorliegenden Fall besonders auf. Die Gleichzeitigkeit von Kooperation
und Konkurrenz hat zur Folge, dass dieser Bereich besonders groß ist. Denn die
Ressourcen gehören weder dem privatem Bereich, noch dem Bereich ohne
Koordinationsbedarf an, was sich daran zeigt, dass sich die Externen prinzipiell jede
Zeichnung ansehen können, aber der Zugang überwacht wird. Aus der durch die
Telekooperation zunehmende Virtualisierung des Zugriffs und dem damit verbundenen
Verlust von sozialer Kontrolle, ergibt sich, dass der Bedarf einer systemvermittelten
Kontrolle in diesem Bereich besonders groß ist.
Die Coordination Theory von Malone und Crowston (1994) macht zwar auf das Problem
der Koordination aufmerksam, ihr Artikel liefert jedoch für den betrachteten
Anwendungskontext keine brauchbaren Mechanismen zur Zugriffskontrolle61.
5.2 Optimistische Zugriffskontrolle
Ein Ansatz, der auf einem anderen Kontroll-Mechanismus beruht, und deshalb für die
vorliegende Arbeit interessant ist, ist die optimistische Zugriffskontrolle von Povey (1999).
Dieser Ansatz ergibt sich aus einer Analogie aus der Datenbanktechnik. Beim
Transaktionsmanagement gibt es verschiedene Verfahren für das Sperren von Objekten.
61
Dies liegt unter anderem daran, dass Malone und Crawston von Voraussetzungen ausgehen, die auf diesen
Fall nicht übertragbar sind. So schreiben sie: “Whenever multiple activities share some limited resource, a
resource allocation process is needed to manage the interdependencies among these activities“ [Malone und
Crowston (1994)]. Im Falle Bausig – Externe müssen zwar die gemeinsamen Ressourcen verwaltet werden,
aber der Kern des Problems besteht nicht in der Knappheit der Ressourcen, sondern höchstens darin, dass sie
künstlich knapp gehalten werden.
HERLEITUNG EINER ERWEITERTEN ZUGRIFFSKONTROLLE
73
Ein pessimistisches Verfahren sperrt vor dem Ausführen einer Transaktion die Objekte, die
dabei verwendet werden, damit diese nicht in einer anderen Transaktion benutzt werden.
Ein optimistisches Verfahren überprüft erst am Ende einer Transaktion, ob die
Verwendung der benutzten Objekte im Konflikt mit anderen Transaktionen steht. Ist dies
der Fall, kann die Transaktion nicht erfolgreich beendet werden und muss rückgängig
gemacht werden.
Diese Idee kann man auf die Zugriffskontrolle übertragen und zwischen pessimistischen
und optimistischen Verfahren unterscheiden. Die klassischen Zugriffskontrollmodelle
stellen die pessimistischen dar, weil bei ihnen alle Objekte vor einem Zugriff gesperrt
werden, bei denen unter Umständen ein Konflikt auftauchen könnte. Im Gegensatz dazu
beschreibt Povey die Funktionsweise eines optimistischen Verfahrens wie folgt:
„In an optimistic system, enforcement of the security policy is retrospective,
and relies on administrators to detect unreasonable access and take steps to
compensate for the action. Such steps might include: Undoing illegitimate
modifications, taking punitive action (e.g. firing, or prosecuting individuals) or
removing privileges.“ Povey (1999)
Die Idee der optimistischen Sicherheit entspringt aus folgender Annahme:
“Legitimate and optimistic access control takes the approach of assuming that
most accesses will relys on controls external to the system to ensure that the
organisations security policy is maintained.” Povey (1999)
Der Ansatz beruht dabei auf fünf Vorraussetzungen, auf die hier aber nicht näher
eingegangen werden soll. Die fünf Voraussetzungen sind die kontrollierten
Einstiegspunkte („constrained entry points“), die Zurechenbarkeit („accountability“), die
Aufzeichenbarkeit („auditability“), die Wiederherstellbarkeit („recoverability“) und die
Androhbarkeit („deterrents“)).
Die Unterschiede zwischen der pessimistischen und der optimistischen Zugriffskontrolle
sind in Tabelle 5-1 aufgelistet. Der Hauptunterschied zwischen beiden Modellen ist der,
dass die optimistische Zugriffskontrolle es einem Benutzer im Notfall erlaubt, auf Objekte
zuzugreifen, auf die er eigentlich kein Zugriffsrecht besitzt. Dies macht das Modell
flexibler gegenüber der pessimistischen Kontrolle.
74
Eigenschaft
Pessimistisch
Optimistisch
Zugriffsentscheidung
prospektiv
Retrospektiv
Durchsetzungspolitik
Verweigerung
Wiederherstellen,
Androhungen
Kosten einer Verletzung
keine
einige
Flexibilität
keine
in gewissen Maße
Tabelle 5-1 Eigenschaften der pessimistischen versus der optimistischen Sicherheitsstrategie [Povey
(1999b)]
Wann ein Notfall vorliegt, muss vom Besitzer des Objekts entschieden werden. Das
Modell kann aber nur in den Fällen funktionieren, bei denen die entsprechenden
Sanktionsmittel vorhanden sind. Dies kann aber bei kooperativer Arbeit erwartet werden.
5.3 Zugriffskontrolle als Konfliktregelung
Ein breiterer Ansatz zur Thematik der Zugriffskontrolle geht auf Wulf (1997) zurück. Er
untersucht in seiner Dissertation das Konfliktpotential bei der Benutzung von Groupware
und die Möglichkeiten des (technischen) Konfliktmanagements. Hierbei kann der Zugriff
auf gemeinsam genutzte Ressourcen als ein potentieller Konfliktherd angesehen werden.
Die oben dargelegten Zugriffsmodelle stellen dann einen Mechanismus zur
Konfliktregelung dar.
Der zentrale Punkt bei ihm ist der Begriff des Konflikts, den er aus der
sozialwissenschaftlichen Konflikttheorie übernimmt und auf die Benutzung von
Groupware anwendet. Er charakterisiert ihn dabei wie folgt:
„Ein groupware-spezifischer Konflikt ergibt sich durch die Nutzung oder
Anpassung von Groupware zwischen mindestens zwei Rollenträgern
(Individuen oder Gruppen), wobei mindestens ein Rollenträger [eine]
Unvereinbarkeit mit einem anderen Rollenträger in der Art erlebt, dass durch
dessen Aktivierung einer Funktion eine Beeinträchtigung seinerseits erfolgt
bzw. erfolgen würde, wenn sie ihm bekannt wäre.“ Wulf (1997, S. 44)
Den Rollenträger, der die Funktion aktiv nutzt oder anpasst, nennt er auch „Aktivator“ und
den, der sich dadurch beeinträchtigt fühlen könnte, nennt er „Betroffener“. Wichtig bei der
Charakterisierung ist, dass ein Konflikt auch dann vorliegt, wenn er dem Betroffenen nicht
bewusst ist, und damit keiner Konfliktregelung zugänglich ist.
HERLEITUNG EINER ERWEITERTEN ZUGRIFFSKONTROLLE
75
Die technische Umsetzung einer Konfliktregelung leitet er wiederum aus der
Konflikttheorie her. Er weist auf verschiedene Strategien innerhalb der Konflikttheorie hin.
Dahrendorf (1961), so Wulf, unterscheide zwischen der Unterdrückung, der Lösung und
der Regelung von Konflikten als Strategie. Dahrendorf hielte jedoch nur letztere für
geeignet. Die Aufgabe des Konfliktmanagements bestände deshalb darin, die Bedingungen
dafür zu schaffen, dass sich Konflikte manifestieren können. Außerdem seien die
Rahmenbedingungen zwischen den Beteiligten zu vereinbaren, nach denen die Konflikte
ausgetragen werden sollen.
Die technische Umsetzung des Managements auf dem oben beschriebenen groupwarespezifischen Fall besteht im Feststellen, der Darstellung und der Regelung von Konflikten
in kooperativen Systemen. Dabei kann die Regelung eines Konflikts auch darin bestehen,
den Akteuren die Mittel an die Hand zu geben, mit denen sie den Konflikt selbst regeln
können. Bei der Regelung sind die rechtlichen Vorgaben, wie die informelle
Selbstbestimmung, als Rahmenbedingungen zu berücksichtigen.
Wulf (1997, S. 82) klassifiziert die technischen Mechanismen der Konfliktregelung aus der
Sicht des Betroffenen in sechs Kategorien, die in Abbildung 5-3 aufgelistet sind.
Abbildung 5-3 Technische Mechanismen der Konfliktregelung im Überblick [Wulf (1997, S. 83)]
Das Hauptmerkmal ist dabei, ob der Konflikt dem Betroffenen durch das System angezeigt
wird62. Wenn der Konflikt nicht sichtbar gemacht wird und der Betroffene nicht eingreifen
62
Wulf spricht auch von Transparenz im Sinne von durchschaubar, nachvollziehbar. Der Begriff soll hier
übernommen werden, auch wenn er etwas unglücklich gewählt ist, weil in der Informatik meist Transparenz
im Sinne von durchsichtig, unsichtbar gebraucht wird. Die Sichtbarkeit bezieht sich bei Wulf auf die
Perspektive des Betroffenen. Für den Aktivator ergibt sich die Transparenz scheinbar von selbst, da er
mitbekommt, ob seine Aktion erfolgreich durchgeführt wurde. Es gibt jedoch bei der Datenbanksicherheit
stellenweise die Anforderungen, dass der Aktivator keine Informationen darüber bekommen soll, ob seine
Anfrage verweigert wurde.
76
kann, so wird der gesamte Ablauf durch den Aktivator bestimmt. In dem Fall liegt eine
einseitige Steuerung vor (Fall 1). Kann der Betroffene eingreifen, so spricht Wulf von der
Gegensteuerbarkeit (Fall 2). Die Regelungen, die den Konflikt dem Betroffenen anzeigen,
unterteilt man des Weiteren danach, ob sie dem Betroffenen einen Rückkanal hin zum
Aktivator anbieten oder nicht. Existiert kein Rückkanal, kann der Konflikt zwischen den
Akteuren nicht innerhalb des Systems ausgehandelt werden. Bei der
aktivierungsbezogenen Transparenz (Fall 3) besteht der Mechanismus allein darin, den
Betroffenen auf den Konflikt aufmerksam zu machen. Es wird weder ein Rückkanal
aufgebaut, noch bietet der Mechanismus dem Betroffenen an, die Aktion zu beeinflussen.
Die im Fall 3 zusammengefassten Mechanismen unterscheiden sich noch darin, wann sie
den Konflikt sichtbar machen: vor, während oder nach dem Ausführen der Aktion. Die
Intervenierbarkeit bietet gegenüber Fall 3 dem Betroffenen die Möglichkeit, die Aktion zu
beeinflussen. Bei der Kommentierbarkeit (Fall 5) wird eine Aktion dem Betroffenen
sichtbar gemacht. Außerdem hat er die Möglichkeit über einen Rückkanal seine Haltung
dem Aktivator mitzuteilen. Er hat jedoch keine Möglichkeit die Aktion zu verändern.
Diese Möglichkeit besteht erst bei der Aushandelbarkeit (Fall 6). Der Betroffene kann die
Aktion vor der Ausführung verändern oder unterbinden. Kann die Änderung der Aktion
vor der Ausführung dem Aktivator zurückgeschickt werden, der diese wiederum ändern
kann, spricht man von einem mehrstufigen Verfahren.
Im Fall Bausig kann man den Zugriff auf das elektronische Archiv als einen Konflikt
zwischen der internen Konstruktionsabteilung und den externen Büros ansehen. Es bietet
sich deshalb an, bei den vielfältigen Möglichkeiten auf die KonfliktregelungsMechanismen von Wulf zurückzugreifen.
Interpretiert man entsprechend den Ansatz von Wulf als Modell für die Zugriffskontrolle
sieht man, dass die klassische Zugriffskontrolle nur einen kleinen Teil eines (technischen)
Konfliktmanagements abdecken kann. Die klassische Zugriffskontrolle definiert nur einen
nicht-transparenten Konfliktregelungsmechanismus. Für eine erweiterte Zugriffskontrolle
bietet es sich an, sie um die vier transparenten Mechanismen, Aktivierunsbezogene
Transparenz, Intervenierbarkeit, Kommentierbarkeit und Aushandelbarkeit, zu erweitern.
5.4 Zeitpunkt der Kontrolle
Einen anderen Ansatz zur Zugriffskontrolle habe ich in Stevens (2001) vorgeschlagen. Bei
dem Ansatz treten zusätzlich zu den Kontrollfaktoren die Kontrollmechanismen als
eigenständige Gestaltungsdimension in Erscheinung (Abbildung 5-4). Die Klassifizierung
geht vom Begriff der Kontrolle in seiner umgangssprachlichen Bedeutung aus. Es wird
dabei nicht anhand von technischen Eigenschaften des Systems klassifiziert, sondern es
HERLEITUNG EINER ERWEITERTEN ZUGRIFFSKONTROLLE
77
wird versucht, die praktizierten Kontrollmechanismen entlang des Zeitpunktes, an dem die
Kontrolle ausgeführt wird, zu ordnen. Erst im nächsten Schritt wird geschaut, wie man die
Mechanismen technisch unterstützen kann.
Abbildung
5-4 Kontrollfaktoren und Kontrollmechanismen als Dimensionen
einer
erweiterten
Zugriffskontrolle
Man kann drei Zeitpunkte unterscheiden, an denen die Legitimation festgelegt wird:
Eine ex-ante Kontrolle liegt dann vor, wenn vor dem Zugriff festgelegt wird, ob er legitim
bzw. illegitim ist.
Eine uno-tempore Kontrolle liegt dann vor, wenn während des Zugriffs festgelegt wird, ob
er legitim bzw. illegitim ist.
Eine ex-post Kontrolle liegt dann vor, wenn nach dem Zugriff festgelegt wird, ob er legitim
bzw. illegitim war.
Die klassischen Zugriffskontroll-Systeme fallen in den Bereich der ex-ante Kontrolle.
Überträgt man die Erkenntnisse aus Abschnitt 5.1 auf die ex-ante Kontrolle sieht man, dass
man mit der ex-ante Kontrolle den Bereich festlegen kann, in der keine Koordination
notwendig ist. Dadurch kann der Kontrollaufwand verringert werden, weil im verbotenen
und im uneingeschränkt erlaubten Bereich der Zugriff der Externen nicht überwacht
werden muss. Bei dem Bereich des unkontrollierten Zugriffs sollte man zusätzlich
unterscheiden, ob der Bereich als erlaubt ausdrücklich festlegt wurde oder ob er sich als
das Residuum des durch die Zugriffskontrolle nicht erfassten Bereichs ergibt. Nur im
ersten Fall kann man von einer ex-ante Kontrolle sprechen.
Ein Beispiel für eine uno-tempore Kontrolle kann man bei Kindern beobachten, die
grundsätzlich darauf bestehen, dass man nachfragt, bevor man eines ihrer Spielzeuge
ausleiht. Dabei steht nicht die Frage der Legitimation im Vordergrund, denn hier geht es
weniger darum, den ‚Zugriff’ zu verweigern, sondern vielmehr geht es darum, die
Besitzverhältnisse zu demonstrieren. Jedoch muss die Demonstration immer wieder aufs
Neue vollzogen werden und kann deshalb nur uno-tempore passieren. Diese
Gemeinsamkeit von Kontrolle und Machtdemonstration findet man auch bei der
78
momentanen Kooperationspraxis von Internen und Externen bei Bausig wieder. Wenn der
Externe eine Zeichnung mittels einer E-Mail anfordert, so ist die manuelle Bearbeitung
dieser Anfrage durch den Sachbearbeiter, wie die Analyse zeigt, nicht nur eine lästige
Tätigkeit, sondern stellt gleichzeitig eine uno-tempore Kontrolle dar.
Die ex-post Kontrolle findet sich in der Formulierung: „Der Missbrauch wird bestraft“
wieder. Die Kontrollstrategie die dahinter steht beruht darauf, dass drei Voraussetzungen
erfüllt sind:
1. Es gibt einen Gebrauch, denn sonst gäbe es kehrseitig auch kein Missbrauch.
2. Ein Missbrauch ist erkennbar.
3. Ein Missbrauch kann bestraft werden.
Povey (1999) sieht in den Nothalt- oder Feueralarm-Schaltern ein Beispiel, das auf der expost Kontrolle beruht. Diese Schalter stecken hinter einem Schutzglas, das im Notfall
eingeschlagen werden kann. Das hat den Vorteil, dass zum einen ein versehentlicher
Missbrauch verhindert wird, zum andern kann die Schutzhülle mit einer Warnung versehen
werden, die beschreibt, wie ein Missbrauch geahndet wird. Ein anderes Beispiel für eine
ex-post Kontrolle sind die Sicherheitskameras in Banken oder Tankstellen. Sie bieten zwar
keinen aktiven Schutz gegenüber einem Raubüberfall, doch helfen sie, den Raubüberfall
aufzuklären und zu ahnden. Bei der Untersuchung des Anwendungsfelds wurde ein solcher
Mechanismus zwar nicht angetroffen, jedoch besitzt Bausig gegenüber den Externen ein
Drohpotential. So könnte ein Missbrauch durch die Externen durch Abbruch der
Geschäftsbeziehung bzw. in einer Einschränkung der Handlungsfreiheit der Externen
geahndet werden. Insofern ist dieser Mechanismus auch für Bausig sinnvoll.
Der ex-post Kontroll-Mechanismus beruht darauf, dass die Historie des Zugriffs dem
Kontrolleur zur Verfügung steht. Ein Kontrollmechanismus, der ebenfalls darauf beruht,
dass die Historie des Zugriffs zur Verfügung steht, besteht in der Einführung eines
Kontingents. Diesen Sicherheitsmechanismus findet man in der Praxis z.B. bei manchen
Bibliotheken, die eine Obergrenze für die Anzahl der gleichzeitig ausgeliehenen Medien
festsetzen. Auch in der Festsetzung einer Obergrenze für das Abheben an einem
Geldautomaten findet man diese Strategie. Aber obwohl der Mechanismus auf dem
Verlauf des Zugriffs beruht, stellt er eine ex-ante Kontrolle dar, weil das Verhalten des
Mechanismus vorher festgelegt wird. Im Fall Bausig findet man in den Interviews
Hinweise darauf, dass auch dort diese Art der Kontrolle helfen könnte. Denn zum einen
besteht die Befürchtung, die auch in der zitierten Stelle des Workshop-Protokolls auf Seite
66 zum Ausdruck kommt, dass das Archiv „leergesaugt“ werden könnte. Zum anderen
kam aus den Interviews heraus, dass die einzelne Zeichnung „nicht das Problem sei“. In
der Festlegung eines Kontingents könnte der Sachbearbeiter den automatischen Zugriff der
HERLEITUNG EINER ERWEITERTEN ZUGRIFFSKONTROLLE
79
Externen begrenzen. Dadurch könnten Vorbehalte gegen einen automatischen Zugriff bei
Bausig abgebaut werden.
5.5 Faktoren für die Zugriffsstrategie
Die Faktoren, die für die Zugriffskontrolle aus der Sicht der Mitarbeiter von Bausig für die
Regelung des Zugriffs relevant sind, sind in Tabelle 5-2 aufgelistet.
Parameter
Faktor
Beschreibung
Objekt
Inhalt
Merkmale bei den beschreibenden Daten zu einer
Zeichnung (Zeichnungs-Nr., Basis-Nr., ...).
Status der
Zeichnung
Ist die Zeichnung aktuell in Bearbeitung?
Subjekt
Benutzer
Von wem geht der Zugriffswunsch aus?
Situation
Zeitangaben
Projektabhängiger Verfall von Zugriffsrechten.
Auftrag
Zuordnung vom Objekt/Subjekt zu einem Auftrag.
Priorität
Welche Priorität hat der Auftrag?
Art des Zugriffs
Nur beschreibende Daten lesen, die eigentliche
Zeichnung lesen oder diese Daten modifizieren?
Operation
Tabelle 5-2 Relevante Faktoren für die Zugriffskontrolle beim OrgTech-Projekt
Interessanterweise wurden in diesem Anwendungsfeld die Zugriffsdimensionen der
Benutzerrolle, Organisationseinheit und Gruppenzugehörigkeit als nicht relevant erachtet.
In einer früheren Untersuchung in der öffentlichen Verwaltung wurde dagegen diesen
Dimensionen eine wichtige Rolle zugemessen [vgl. Stiemerling, Won und Wulf (2000)].
Dies könnte daran liegen, dass bei zwischenbetrieblicher Kooperation die persönliche
Ebene eine wichtige Rolle spielt.
Ebenso unterscheiden sich die Faktoren, die sich auf das zuzugreifende Objekt beziehen.
Im Falle des Stahlwerks wurde auf Zeichnungen zugegriffen, die in einer relationalen
Datenbank gespeichert waren. Dabei kam den dort abgelegten beschreibenden Daten zu
den Zeichnungen eine besondere Bedeutung zu. Zu den beschreibenden Daten zählten
insbesondere die Zeichnungsnummern und die Basisnummern, mit denen die Zeichnungen
inhaltlich gruppiert wurden. Demgegenüber waren in der Studie von Stiemerling, Won und
Wulf (2000) die folgenden Faktoren besonders relevant für die Vergabe von
Zugriffsrechten: Name des Dokuments, Inhalt des Dokuments, Entwicklungsstand des
Dokuments, Objektlage und Elektronische Signatur. In Anwendungsfeldern, bei denen mit
semi-strukturierten Dokumenten gearbeitet wird, können die objektbezogenen Faktoren
80
wiederum anders aussehen. Zusammenfassend kann man wohl davon ausgehen, dass in
jedem Anwendungsfeld die zur Zugriffsregulation relevanten Faktoren unterschiedlich
ausgeprägt sein werden.
5.6 Resümee
In Abschnitt 5.1 wurde gezeigt, warum die klassische Zugriffskontrolle im vorliegenden
Fall zu kurz greift. Deshalb sollte eine Telekooperationslösung die Kontrolle zu allen drei
Zeitpunkten unterstützen. Insbesondere sollte eine uno-tempore Kontrolle berücksichtigt
werden, da die momentan praktizierte Kontrolle darauf beruht. Bei der Unterstützung der
ex-ante Kontrolle sollte es aus den auf Seite 78 genannten Gründen das System auch
ermöglichen ein Kontingent für den automatischen Zugriff festzulegen. Durch die
Unterstützung der ex-post Kontrolle ergibt sich als Nebeneffekt, dass das Vertrauen in die
Telekooperation erhöht werden kann. Denn durch die Protokollierung des Zugriffs und die
Darstellung der Historie kann der Sachbearbeiter nicht nur die Externen, sondern auch das
Computersystem kontrollieren. Dies ist gerade in den Fällen besonders wichtig, wenn, wie
hier, auf eine unbekannte Technik vertraut werden muss63.
63
Auf den Zusammenhang zwischen hohe Kontrollgrad und positiver Chancenbewertung der Technik hat
Rudinger et al. (1999) hingewiesen.
IMPLEMENTIERUNG DES PROTOTYPEN
81
6 IMPLEMENTIERUNG DES PROTOTYPEN
Nachdem in den vorherigen zwei Kapiteln herausgearbeitet wurde, an welcher Stelle eine
Softwarelösung anpassbar sein muss, wird in diesem Kapitel eine Implementierung
vorgestellt, die diese Anforderung realisiert. Bei der Modellierung des Systems steht man
vor der Schwierigkeit, dass der FlexiBean-Ansatz zwar ein technisches Modell zur
komponentenbasierten Anpassbarkeit besitzt, darüber hinaus aber keine Methode zur
Dekomposition bereitstellt. In diesem Kapitel wird gezeigt, wie der WAM-Ansatz die
FlexiBeans in diesem Punkt ergänzt und wie dessen zentrale Idee der engen Korrespondenz
zwischen
dem
anwendungsfachlichen
Begriffsgebäude
und
der
Softwarearchitektur zur Dekomposition herangezogen werden kann.
In Abschnitt 6.1 wird gezeigt, wie sich die wichtigsten Entwurfsmuster des WAMAnsatzes mit Hilfe der FlexiBeans realisieren lassen. In Abschnitt 6.2 wird die
Postfachmetapher vorgestellt, mit der in Abschnitt 6.3 ein elektronischer Zugang der
Externen realisiert wird, der an die momentane Arbeitspraxis bei Bausig und den Externen
anschließt. In Abschnitt 6.4 wird das System durch Bereitstellung neuer
Komponententypen so modifiziert, das es der im vorherigen Kapitel erhobenen Forderung
nach einer erweiterten Zugriffskontrolle gerecht wird. Auf die Modellierung des Materials
durch FlexiBeans wird erst im Abschnitt 7.2.3 eingegangen, da sie noch einen offenen
Punkt in der Softwaregestaltung darstellt.
Die hier dargestellte Version von ADOS-X ist eine Erweiterung der ursprünglichen, im
Anwendungsfeld benutzten Dekomposition. Die Erweiterung resultiert aus der Analyse des
Anwendungsfeldes und den daraus resultierenden Überlegungen, dass es die Möglichkeit
geben sollte, den automatischen Zugriff zu kontingentieren. Die ursprüngliche
Dekomposition, die auch implementiert wurde, ist in Anhang A zu finden. Da die einfache
Erweiterung eine wichtige Eigenschaft des FlexiBean-Ansatzes ist, wird hier die erweiterte
Dekomposition vorgestellt. In der Evaluation komme ich auf diesen Punkt noch einmal
zurück.
6.1 Umsetzung des WAM-Ansatzes mit Hilfe der FlexiBeans
In diesem Abschnitt wird gezeigt, wie die wichtigsten Entwurfsmetaphern des WAMAnsatzes, die im Folgenden kurz charakterisiert werden, sich mit Hilfe von FlexiBeans
realisieren lassen. Die Kurzcharakterisierungen sind aus Züllighoven (1998) entnommen,
die angegebenen Beispiele stammen von dem implementierten Prototyp.
Die vorgeschlagene Umsetzung kann jedoch nur als ein erster Anhaltspunkt für eine
Softwaremodellierung dienen. So wurden bei dem Prototypen einige Komponenten
82
eingeführt, die keinen fachlichen Bezug zum Anwendungskontext haben. Diese wurden
vor allem für die Modellierung der Benutzerschnittstelle gebraucht. Bei der Modellierung
des Materials mittels FlexiBeans herrscht sicherlich noch ein größerer Forschungsbedarf.
Werkzeug: Ein Werkzeug unterstützt wiederkehrende Arbeitsabläufe und -handlungen. Es
ist bei unterschiedlichen Aufgaben und Zielsetzungen nützlich. Ein Werkzeug wird von
seinem Benutzer je nach den Erfordernissen einer Situation gehandhabt oder wieder zur
Seite gelegt. Es schreibt keine festen Arbeitsabläufe vor. Als Softwarewerkzeug ermöglicht
es den interaktiven Umgang mit den Arbeitsgegenständen (Materialien) [Züllighoven
(1998, S.6)]. Ein Beispiel eines WAM-Werkzeugs stellt der Anfragenbearbeiter im ADOSX dar.
Modellierung des Werkzeugs im FlexiBean-Ansatz: Für ein Werkzeug ist die
Interaktion mit dem Benutzer konstitutiv. Es wird deshalb durch eine sichtbare
Komponente modelliert, die auf dem Client ausgeführt wird. Wie auf Seite 84 erläutert
wird, lagern Materialien in Behältern, die durch ein SharedObject zugänglich gemacht
werden. Das Werkzeug kann durch einen SharedObject-Client an den Behälter gekoppelt
werden. Dadurch kann das Werkzeug auf das zu bearbeitende Material zugreifen. Des
Weiteren kann es sinnvoll sein, dass ein Werkzeug auf äußere Ereignisse reagiert.
Beispielsweise kann an das Werkzeug ein Event gesendet werden, dass ein bestimmtes
Material bearbeitet werden kann. Ebenso kann das Werkzeug Events aussenden, z.B. dass
es die Bearbeitung beendet hat.
Material: Materialien sind die Arbeitsgegenstände, die schließlich zum Arbeitsergebnis
werden. Materialien werden mit Werkzeugen entsprechend bearbeitet. Softwarematerialien
verkörpern »reine« anwendungsfachliche Funktionalität. Sie werden niemals direkt benutzt
und stellen sich auch nicht selbst dar. Ein Softwarematerial ist durch sein Verhalten, nicht
durch seine Struktur charakterisiert [Züllighoven (1998, S.6)]. Die Anfragen, die die
Externen an ADOS schicken, sind ein Beispiel für ein Material.
Modellierung des Materials im FlexiBean-Ansatz: Die Materialien bilden den
dynamischen Teil einer Anwendung. Sie werden deshalb auch nicht in der durch die CATFiles spezifizierten statischen Architektur erfasst. Materialien, wie z.B. die Anfrage-EMails, sind vielmehr das, was durch die Komponenten fließt bzw. verarbeitet wird. Sie
werden durch ein SharedObject eines Behälters zur Verfügung gestellt und sind erst durch
die Werkzeuge für den Benutzer zugänglich. Bei ihnen muss zwischen der Bearbeitung
und der Anpassung unterschieden werden. Anpassung bedeutet dabei, einen neuen
Materialtypen zu erzeugen. Auf das Problem der Anpassung eines Materials gehe ich in
Abschnitt 7.2.3 ein.
IMPLEMENTIERUNG DES PROTOTYPEN
83
Automat: In einer Büroumgebung gibt es nicht nur Werkzeuge und Materialien. Viele
lästige Arbeitsroutinen werden heute maschinell, d.h. automatisch, erledigt. Deshalb wurde
die Entwurfsmetapher des Automats eingeführt. Ein Automat erledigt eine vorab
vollständig festgelegte Aufgabe und produziert ein definiertes Ergebnis. Einmal eingestellt,
kann ein Automat über einen längeren Zeitraum ohne Eingriff von außen ablaufen.
Softwareautomaten laufen meist im Hintergrund. Sie werden von ihren Benutzern am
Anfang eingestellt oder im Notfall gestoppt und haben darüber hinaus keine interaktive
Schnittstelle.
[Züllighoven (1998, S.6)]. Der Post-Versandautomat und -Empfangsautomat sind zwei
Beispiele aus ADOS-X, die die Anbindung an einen Mailserver bewerkstelligen.
Modellierung des Automaten im FlexiBean-Ansatz: Automaten werden ähnlich wie
Werkzeuge als eigenständige FlexiBeans realisiert. Im Unterschied zu Werkzeugen
bedürfen sie keiner Interaktion mit dem Benutzer, sondern können autonom arbeiten. Sie
sind deshalb keine sichtbaren Komponenten und müssen auch nicht auf dem Client des
Benutzers ausgeführt werden. Die serverseitige Ausführung erlaubt es dem Benutzer
wiederkehrende Aufgaben an den Automaten zu delegieren, die dieser auch in seiner
Abwesenheit ausführen kann. Aus dieser Autonomie resultiert auch eine andere
Fehlerbehandlungsstrategie als bei Werkzeugen, da nicht davon auszugehen ist, dass der
Benutzer bei einem Fehler eingreifen kann64. Das Konfigurieren des Automaten geschieht
mit Hilfe der Anpassungsumgebung, die das FlexiBean-System bereitstellt 65.
Arbeitsumgebung: Die Metaphern Werkzeuge, Automaten und Materialien benötigen
einen Ort, an dem sie bereitgestellt, angeordnet und aufbewahrt werden. Dies leistet die
Metapher der Arbeitsumgebung. Eine Arbeitsumgebung ist der Ort, an dem
Arbeitsaufgaben erledigt und die dazu benötigten Arbeitsgegenstände und -mittel bereitgestellt
werden.
Arbeitsumgebungen
verkörpern
ein
Raumkonzept
und
Ordnungsprinzipien. Im WAM-Ansatz wird zwischen den persönlichen Arbeitsplätzen, die
Privatheit und eine individuelle Anordnung der Dinge ermöglichen, und den allgemein
zugänglichen Räumen einer Arbeitsumgebung unterschieden [Züllighoven (1998, S.6)].
Modellierung der Arbeitsumgebung im FlexiBean-Ansatz: Durch die hierarchische
Komposition der FlexiBeans ist schon ein Ordnungsprinzip vorgegeben, das mit Hilfe der
Anpassungsumgebung von Hallenberger (2000) in eine dreidimensionale Raumordnung
umgesetzt wird. Durch die Client-Server Architektur der Evolve-Plattform wird auch eine
erste Unterscheidung von privat und öffentlich vorgenommen, die sich auch im
64
Dieses Problem wurde bei der Modellierung erkannt, aber in der vorliegenden Arbeit wurde keine
allgemeine Lösung dafür entwickelt.
65
Das Anpassen durch spezielle Anpassungs-Werkzeuge, wie dies beim der Sortierer-Komponente nötig ist,
wird derzeit vom FlexiBean-Ansatz nicht unterstützt. Ein Lösungsansatz hierzu wird in Abschnitt 7.2.2.2
gezeigt.
84
Raumkonzept widerspiegelt. Jedoch ist auf der Serverseite eine Differenzierung in private
und öffentliche Bereiche wünschenswert. Mit Hilfe von öffentlichen Bereichen ließe sich
auch die in Abschnitt 3.1.3.3 geforderte Anpassungskultur verbessern.
Behälter: Ein (fachlicher) Behälter ist eine spezielle Arbeitsumgebung für Materialien. Er
kann sie aufnehmen, verwalten, ordnen und herausgeben. Dazu führt der Behälter oft
Verzeichnisse. In einem Behälter können viele gleichartige oder ein definierter Satz von
unterschiedlichen Gegenständen verwahrt werden. Behälter vergegenständlichen oft
Prozesse als so genannte Vorgänge und dienen der Kooperation und Koordination. Die
Postfächer, die die Anfragen an das elektronische Archiv aufnehmen, sind ein Beispiel für
einen Behälter [Züllighoven (1998, S.6)].
Modellierung des Behälters im FlexiBean-Ansatz: Behälter werden in FlexiBeans als
unsichtbare Komponenten modelliert, in denen die Materialien gelagert sind. Die
Materialien werden nach außen durch SharedObjects angeboten. Das SharedObject sollte
neben dem Zugriff auf die Materialien auch, wie oben beschrieben, verschiedene Suchund Auflistungsmethoden besitzen. Damit die Materialien auch dauerhaft gespeichert
werden können, sollten sie über einen Persistenzmechanismus verfügen. Auf das Problem
der Persistenz bei FlexiBeans wird in Abschnitt 7.2.1 eingegangen.
6.2 Postfach-Metapher
In diesem Abschnitt wird das Konzept der Postfach-Metapher vorgestellt. Mit Hilfe dieser
Metapher lässt sich ein System für den externen Zugang zum elektronischen Archiv
modellieren, das die Struktur der momentanen Arbeitspraxis von Bausig und den Externen
widerspiegelt.
Wulf, M. (1995) untersuchte in ihrer Diplomarbeit die Bedeutung von Postfächern für die
kooperative Arbeit. Sie hat herausgefunden, dass Postfächer in der Praxis als ein
Koordinationsmedium benutzt werden. Die Bedeutung des Postfachs hängt dabei von
seinem Standort und seinem Gebrauch ab. Grob kann man hier zwischen öffentlichen und
privaten Postfächern unterscheiden. Ein Beispiel für öffentliche Postfächer sind die bei
Stiemerling und Wulf (2000) beschriebenen, allgemein zugänglichen Fächer in einer
Zeitungsredaktion. Ihre Funktionsweise hängt stark mit der allgemeinen Sichtbarkeit des
Zugriffs auf die Fächer zusammen. Private Postfächer erhalten durch ihre Benennung eine
Bedeutung im Arbeitskontext des Benutzers, der den Gebrauch präsupponniert. Wenn z.B.
ein Postfach mit „Anfragen Projekt Kran“ beschriftet ist, wird es eine ganz andere
Bedeutung für den Benutzer besitzen, als wenn es z.B. mit „Papierkorb“ bezeichnet wird.
IMPLEMENTIERUNG DES PROTOTYPEN
85
Mackay (1990, Kapitel 3) zeigt am Beispiel von InfoLens, einem E-Mail-Programm, wie
mit Hilfe von elektronischen Postfächern und dem Aufstellen von IF-THEN-Regeln die
Anwender das System auf vorher nicht antizipierte Art und Weise angepasst haben. Ein
ähnliches Konzept bilden hier die Postfach-Komponenten zusammen mit den SortiererKomponenten. Jedoch ist der Anwendungskontext in beiden Fällen unterschiedlich. Bei
InfoLens ging es um eine bessere Strukturierung der E-Mail-Korrespondenz, während es
hier darum geht, den Zugriff auf eine gemeinsam benutzte Ressource zu kontrollieren.
Auf der software-technischen Seite stellen die Postfächer einen Behälter im oben
beschriebenen Sinne dar. Bei der Implementierung wurde die Modellierung von M. Wulf
übernommen. Sie unterscheidet zwischen Eingangs- und Ausgangspostfächern. Technisch
ausgedrückt bieten die Postfächer ein IN- und ein OUT-SharedObject an, dessen
Schnittstellenbeschreibung in Abbildung 6-1 zu sehen ist. Das Interface Message wird
von den Anfrage-Objekten implementiert. Auf das Message-Interface wird in Abschnitt
7.2.3 eingegangen. Die Unterscheidung in IN und OUT hat den Vorteil, dass man nach
Außen nur das IN-Fach exportieren kann und das Postfach dann wie ein Briefkasten
funktioniert, bei dem man etwas hineinwerfen kann, ohne aber an den Inhalt zu kommen.
«interface»
PO_box
«interface»
IN
+add()
«interface»
Message
«interface»
OUT
+getAndRemove()
+listMsgs()
+get()
Abbildung 6-1 UML-Klassendiagramm der SharedObjects eines Postfachs
6.3 Umsetzung, die auf der praktizierten Zugriffskontrolle beruht
Im Folgenden sollen zuerst die einzelnen Komponenten und die ADOS-Anfragen
vorgestellt werden, bevor auf die Komponentenkomposition eingegangen wird.
FlexiBean
Beschreibung
Postfach: Das Postfach ist der Aufenthaltsort für Dokumente. Über
den Eingang-Port können Dokumente hinein- und über den AusgangPort, herausgenommen werden. Wenn sich der Zustand des Postfachs
ändert, wird über den Geändert-Port ein Event gesendet. Der StorePort dient dazu, dass alle Postfächer sich einen gemeinsamen
Persistenzmechanismus teilen können66
66
Auf den Store-Port wird erst in Abschnitt 7.2.1 eingegangen, da der Port nur für die Persistenz der
Postfächer wichtig ist und die Persistenz ein noch offnes Problem im FlexiBean-Ansatz darstellt.
86
Empfangsautomat und Versandautomat:
Der Empfangs- und der Versandautomat stellen die Verbindung zum
Mailserver her. Beim Empfangsautomat kann am Eingang-Port ein
Postfach angeschlossen werden, in dem der Automat die empfangene
Post hineinlegt. Bekommt der Automat ein Empfange-Event, schaut er
beim Mailserver nach neuer Post. Der Wert des Parameters Häufigkeit
gibt an, wie häufig der Automat, in Millisekunden gemessen, nach
neuer Post schauen soll. Soll er nicht selbstständig die Post abholen,
muss der Wert auf Null gesetzt werden. Der Parameter Protokoll gibt
das verwendete Mailserver-Protokoll an (POP3 oder IMAP)67. Beim
Empfangsautomat muss das Kennwort im CAT-File abgespeichert
werden, damit keine Interaktion mit dem Benutzer beim Initialisieren
der Verbindung zum Mailserver notwendig ist.
Am Versandautomat kann ein Postfach angeschlossen werden, dessen
Dokumente versendet werden sollen. Der Versand wird durch ein
Verschicke-Ereignis ausgelöst.
✦
✗
✘
✙
✖
✚
✛
✌
✜
✣
✢
✤
☛
✎
✎
✥
☛
✓
✔
✡
✕
✖
✎
✏
✎
✂
✄
★
✯
✵
✁
✒
✧
✮
✲
☎
✩
✰
✶
✬
✆
✧
✁
✧
✬
✩
✲
✫
✳
✠
✡
✑
✭
✭
✴
✫
✞
✑
✬
✩
✧
✝
✏
67
✪
✱
☛
✟
☞
✌
✍
✎
✎
Visualizer und Anfragenbearbeiter:
Der Visualizer ist eine abstrakte Komponente, die den eigentlichen
Anfragenbearbeiter enthält. Der Visualizer wird über den GeändertPort aktualisiert. An der Postfächer-Raute68 werden die Postfächer
angeschlossen, die visualisiert werden sollen. In das Postfach, das am
Erlaubt-Port angeschlossen ist, kann der Benutzer die Anfragen
weiterleiten, bei denen ein Zugriff gestattet werden soll. Zum ZurückPort werden die Anfragen geleitet, die direkt an den Empfänger zurück
geschickt werden sollen.
Aus der Sicht des Benutzers wäre die Einstellung des Parameters Protokoll weniger fehlerträchtig, wenn
man nur aus einer vordefinierten Menge auswählen könnte. Ein solcher Enumeration-Typ wird aber vom
FlexiBean-Modell nicht unterstützt.
68
Auf die Semantik der Raute wird im Abschnitt 7.2.3 eingegangen.
IMPLEMENTIERUNG DES PROTOTYPEN
87
ADOS:
Die ADOS-Komponente stellt die Verbindung zum bestehenden
elektronischen Archiv, ADOS, her. Dazu greift die ADOSKomponente auf die Datenbank zu, in der die Archivinformationen
gespeichert sind. Das Postfach mit den Zugriffsanfragen wird am
Eingang-Port angeschlossen. Die Komponente fragt die Datenbank ab,
erstellt eine Antwort, hängt diese an die Anfrage an und leitet sie dann
an den Ausgang-Port weiter. Tritt bei der Bearbeitung ein Fehler auf,
so wird die Anfrage an den Ausg_Fehler-Port weitergeleitet. Durch
den Bearbeite-Port kann die ADOS-Komponente veranlasst werden,
die Anfragen, die im angeschlossenen Eingangspostfach liegen, zu
entnehmen und zu bearbeiten.
Retoure:
Die Retoure -Komponente dient dazu, eine Anfrage an den Empfänger
zurückzuschicken. Sie transportiert dazu die Anfragen, die im
Eingangspostfach liegen, an den Ausgang und vertauscht bei diesem
Vorgang Absender und Empfänger. Durch ein Geändert-Event wird
der Sortierer veranlasst, im Eingang nach Anfragen zu schauen und
diese weiterzuleiten.
Tabelle 6-1 Grundkomponenten für einen externen Zugriff auf das elektronische Archiv
Mit Hilfe der oben genannten Komponenten kann ein System für den externen Zugriff auf
das elektronische Archiv so modelliert werden, dass es die praktizierte Kontrolle des
Zugriffs widerspiegelt. Die Dekomposition begreift die Randbedingung, dass nach draußen
nur über E-Mail kommuniziert werden darf, nicht als eine Einschränkung, sondern
integriert sie in das Modellierungskonzept. Die gefundene Lösung kann man als
asynchrone, auf dem Versandprinzip beruhende CSCW-Anwendung klassifizieren. Sie
besteht aus einem Mailclient für die Bausig-Mitarbeiter und einem für die Externen. Beide
sind jeweils aus den oben genannten Komponenten aufgebaut.
Die Funktionsweise des Systems, im Folgenden ADOS-X genannt, ist wie folgt: Der
Externe initiiert eine Suche im elektronischen Archiv, in dem er mit Hilfe seines
Mailclients eine Anfrage erstellt und sie an seinen internen Sachbearbeiter schickt. Die
Anfrage sieht für den Anwender wie eine E-Mail aus, bei der er aber keinen Text eingibt,
sondern ein spezielles Suchformular ausfüllt. Das Aussehen der Suchformulare ist dabei
den Eingabemasken von ADOS nachempfunden worden. Ein solches Suchformular ist in
88
Abbildung 6-2 zu sehen. Dadurch soll erreicht werden, dass gerade für die Internen
ADOS-X leicht zu erlernen ist.
Abbildung 6-2 Ein Screenshot eines Suchanfrage-Formulars
Die Funktionsweise des Mailclients für die interne Konstruktionsabteilung bei Bausig wird
anhand des internen Aufbaus (Abbildung 6-3) dargestellt.
Empfangsautomat
Eingang
Eingang
Ausgang
Eingang
Anfragenbearbeiter
Zurück
Eingang
Geändert
Geändert
Erlaubt
Eingang
Nach Ados
Ausgang
Geändert
Eingang
Bearbeite
ADOS
Fehler
Eingang
Fehlerhafte
Ausgang
Eingang
RetourePf.
Ausgang
Eingang
Geändert
Geändert
Retoure Ausgang Eingang
Ausgang
Eingang
Ausgang
Geändert
Geändert
Versandautomat
Abbildung 6-3 Komposition des Mailclients für den Bausig-Sachbearbeiter
IMPLEMENTIERUNG DES PROTOTYPEN
89
Die Anfrage wird durch den Versandautomaten in eine E-Mail nach RFC 822 Standard
transformiert und an ein spezielles E-Mailkonto bei Bausig geschickt. Hier steht sie dem
Empfangsautomaten, wie in Abbildung 6-3 zu sehen ist, zur Verfügung. Er holt die Mail
ab und legt sie ins Eingangspostfach. Die Anfrage wird dann vom Sachbearbeiter geprüft.
Ist sie in Ordnung kann er sie über den Erlaubt-Port an das Postfach „Nach ADOS“
weiterleiten. Aus diesem Postfach entnimmt sich die ADOS-Komponente die Anfrage,
generiert eine SQL-Abfrage und hängt das Ergebnis an die Anfrage an. Danach leitet die
Komponente sie über den Ausgang-Port an das Retoure-Postfach weiter.
In dem anderen Fall, bei dem die Anfrage nicht in Ordnung ist, kann der Sachbearbeiter sie
entweder entsprechend abändern oder er leitet sie direkt über den Zurück-Port an das
Retoure-Postfach weiter. Vom Retoure-Postfach werden die Anfragen von der RetoureKomponente in das Ausgang-Postfach transportiert. Dabei vertauscht er den Absender mit
dem Empfänger, so dass der Versandautomat die (beantworteten) Anfragen als Mail an die
Empfänger zurückschickt.
6.4 Umsetzung einer erweiterten Zugriffskontrolle
Die in Abschnitt 6.3 beschriebene Lösung stellt eine Verbesserung des Status quo dar, weil
die Zusammenarbeit zwischen Internen und Externen effizienter gestaltet wird. So muss
der Sachbearbeiter die Anfrage nicht mehr per Hand in ADOS eingeben und das Ergebnis
in eine E-Mail transformieren. Jedoch bleibt sie hinter den technischen Möglichkeiten
zurück, weil für sie jede Anfrage nur einen uno-tempore Kontrollmechanismus (Kontrolle
während des Zugriffs) zulässt. Im Folgenden soll gezeigt werden, wie ADOS-X durch
Bereitstellung neuer Komponenten so umgestaltet werden kann, dass das System diverse
Zugriffskontrollmechanismen unterstützt.
Die Grundidee besteht darin, dass die Zugriffskontrolle durch das selektive Weiterleiten
von Anfragen geregelt werden kann. In der zuvor beschriebenen Lösung geschieht dies
manuell durch den Sachbearbeiter. Wenn er eine Anfrage zum Retoure-Postfach
weiterleitet, dann bedeutet es, dass der Zugriff verweigert wurde. Durch den Sortierer kann
das Weiterleiten automatisiert werden. Dabei stellt der Sortierer ein klassisches Zugriffskontrollsystem dar, auf dessen Konfiguration in Abschnitt 6.4.1 eingegangen wird.
Zunächst werden wieder die Grundkomponenten vorgestellt. Aus diesen
Grundkomponenten lässt sich die in Abbildung 6-4 dargestellte abstrakte Komponente, der
KontrollAutomat, zusammensetzen. Auf die Funktionsweise des Kontroll-Automaten wird
in Abschnitt 6.4.2 eingegangen.
90
FlexiBean
Beschreibung
Sortierer69:
Mit dem Sortierer können die Anfragen weitergeleitet werden. Dazu
besitzt der Sortierer einen Eingang und zwei Ausgänge, die jeweils
an ein Postfach angeschlossen werden können. Je nach Einstellung
der Sortierer wird ein Dokument aus dem Eingangs-Port in den OKbzw. in den KO-Port transportiert. Durch den Geändert-Port kann
wie bei der Retoure-Komponente die Verarbeitung angestoßen
werden.
Kontingentierer:
Der Kontingentierer zählt, wie viele Anfragen er bisher in einem
bestimmten Zeitraum weitergeleitet hat. Ist das eingestellte
Kontingent erreicht, leitet er die Anfrage in den KO-Port weiter.
Ansonsten wird die Anfrage in die OK-Port geleitet. Durch den
Geändert-Port kann, wie bei der Retoure-Komponente, die
Verarbeitung angestoßen werden.
Kopierer:
Beim Kopierer kann man am Eingang-Port ein Postfach anschließen.
Die Anfragen, die in diesem Postfach liegen, werden dann vom
Kopierer dupliziert. Das Original wird dabei in das am Original-Port
angeschlossene Postfach transportiert, die erstellte Kopie wird in das
am Kopie-Port angeschlossene Postfach gelegt. Der Kopierer wird
über ein Geändert-Event aktiviert.
Tabelle 6-2 Grundkomponenten für eine erweiterte Zugriffskontrolle
Der Kontroll-Automat (Abbildung 6-4) wird auf dem Evolve-Server erzeugt und kann
dann eigenständig den Zugriff auf ADOS kontrollieren. Die Ports auf der linken Seite
werden mit dem Visualizer verbunden. Über die Einstellung-Ports auf der rechten Seite
können die Sortierer konfiguriert werden. Auch sie werden mit dem Visualizer verbunden,
der dementsprechend angepasst werden muss. Ein Empfangsautomat kann an den Eingang,
ein Versandautomat an den Ausgang angeschlossen werden.
69
Bei dem implementierten Prototypen heißt die Komponente MOVER. Die Bezeichnung „Sortierer“ hat
jedoch den Vorteil, dass sie im Deutschen zwei Anwendungsmöglichkeiten ausdrücken kann. Die eine
Anwendungsmöglichkeit, ist die E-Mail-Korrespondenz wie bei InfoLens mittels Regeln zu sortieren. Die
andere Möglichkeit ist die Zugriffskontrolle. Hier werden durch die Komponente kritische Anfragen
aussortiert.
IMPLEMENTIERUNG DES PROTOTYPEN
91
Abbildung 6-4 Eine abstrakte Komponente, die eine erweiterte Zugriffskontrolle ermöglicht
Die Visualizer-Komponente, wie in Abbildung 6-5 zu sehen, wurde dem Look&Feel
bestehender Mailprogramme, wie dem Netscape Messanger, nachempfunden. Beim
Visualizer werden die angeschlossenen Postfächer links unten angezeigt. Daraus kann
eines ausgewählt werden, dessen Inhalt dann rechts unten angezeigt wird. Mit den unteren
Buttons können Aktionen angestoßen werden, die sich auf die aus der Liste selektierte
Anfrage beziehen. Der Öffne-Button öffnet ein Fenster, in dem die Anfrage bearbeitet
werden kann. Die anderen Buttons transportieren die Anfrage in entsprechende Postfächer.
Über den Menüpunkt Zugriffsverwaltung können die Einstellungswerkzeuge für die
Sortierer geöffnet werden. Es erscheint dann ein Dialogfenster, wie es in Abbildung 6-7 zu
sehen ist. Auf den internen Aufbau des Visualizers wird hier nicht eingegangen, weil sein
Aufbau nicht im Schwerpunkt der Dekomposition stand.
92
Abbildung 6-5 Ein Screenshot des Visualizers für den Sachbearbeiter bei Bausig
6.4.1 Einstellmöglichkeiten der Sortierer-Komponente
Bevor die Funktionsweise des Kontroll-Automaten erläutert wird, wird zuerst auf die
Einstellmöglichkeiten der Sortierer eingegangen.
Durch die Einstellung des Sortierers kann bestimmt werden, welche Anfrage automatisch
beantwortet werden soll und welche nicht. Durch seine duale Entscheidungsmöglichkeit,
KO oder OK, entspricht der Sortierer einem klassischen Zugriffskontrollsystem. Durch die
Einstellung des Sortierers wird dabei die Zugriffsstrategie festgelegt.
Prinzipiell kann man zur Modellierung des Sortierers auf die in Abschnitt 3.5
beschriebenen klassischen Zugriffsmodelle zurückgreifen. So ist in Abbildung 6-6
skizziert, wie eine Sortierer-Komponente aussehen könnte, die auf dem in Abschnitt 3.5.4
beschriebenen Zugriffsmodell von Stiemerling (1996) basiert. Über das SharedObject
Systemzustand könnte der Sortierer den aktuellen Systemzustand ermitteln70. Bei
Zugriffsmodellen mit negativen Rechten bietet es sich an, einen dritten Ausgang
70
Hier müsste jedoch zunächst ermittelt werden, was alles zum Systemzustand gehört und wie er als
SharedObject zugänglich gemacht werden kann. Im vorliegenden Fall wäre es vermutlich der Zustand des
elektronischen Archivs.
IMPLEMENTIERUNG DES PROTOTYPEN
93
einzurichten. In diesen Ausgang werden alle Anfragen transportiert, wenn weder ein
Verbot noch eine Erlaubnis vorliegt.
Abbildung 6-6 Das Zugriffsmodell von Stiemerling, modelliert als Sortierer-Komponente
Bei dem Prototyp wurde, vor allem um den Aufwand klein zu halten, nur ein rudimentärer
Sortierer implementiert. Ein wichtiger Unterschied zum oben beschriebenen Sortierer
besteht dabei darin, dass der Sortierer bei seiner Entscheidung, in welches Postfach er die
Anfrage transportiert, nicht auf einen aktuellen Systemzustand zurückgreift. Er entscheidet
allein aufgrund der eingestellten Regelmenge und den Informationen, die in der Anfrage
enthalten sind.
Bei den Faktoren für die Zugriffskontrolle, die in Abschnitt 5.5 erläutert sind, wurden nur
die zwei in diesem Anwendungsfeld wichtigsten Gesichtspunkte berücksichtigt. So können
Zugriffsregelungen beim Sortierer hinsichtlich der auszuführenden Operation und dem
zugreifenden Subjekt spezifiziert werden. Aus der Sicht der externen Kooperationspartner
sind die wichtigsten Operationen der Zugriff auf die eigentliche Zeichnung (“Anschauen
von Zeichnungen”), der Zugriff auf die zu einer Zeichnung gehörigen, beschreibenden
Daten (“Beschreibende Daten”) und die Sperrung einer Zeichnung für die Modifikationen
(“Sperren von Zeichnungen”). Das Dialogfenster zur Einstellung eines Sortierers ist in
Abbildung 6-7 zu sehen.
Das Einstellen des Sortierers erfolgt dann in folgender Weise: Der Sachbearbeiter legt
zunächst die Personen fest, die überhaupt für einen Zugriff in Frage kommen. Für diesen
Personenkreis ist der Zugriff erstmal gesperrt, der Sachbearbeiter kann dann dem
Einzelnen den Zugriff freischalten. Im Screenshot ist ein solches „Freischalten“ für den
Zugriff auf beschreibende Daten dargestellt. Durch ein Klicken auf den „<“-Button würde
die Person „Wulf“ von der Liste der gesperrten Personen auf die Liste der Personen
geschoben, denen ein Zugriff gestattet ist.
94
Abbildung 6-7 Ein Screenshot der Einstellmöglichkeiten des Erlaubt-Sortierers
Für den FlexiBean-Ansatz ist vor allem von Belang, dass der Sortierer ein Beispiel für eine
Komponente darstellt, die eines eigenständigen Anpassungs-Werkzeugs bedarf. Ein
solcher Fall wird momentan nicht von dem FlexiBean-Ansatz abgedeckt. In Abschnitt
7.2.2.2 wird ein Lösungsansatz vorgeschlagen.
6.4.2 Funktionsweise des Kontrollautomaten
Die Funktionsweise des Kontrollautomaten soll anhand der verschiedenen
Kontrollmechanismen, die sich durch ihn realisieren lassen, erläutert werden.
1. Fall „Über Zugriff wird vom Sachbearbeiter manuell entschieden!“
ADOS-X kann so konfiguriert werden, dass alle Anfragen vom Sachbearbeiter entschieden
werden müssen. Dazu müssen die Sortierer ERLAUBT und PROTOKOLL so eingestellt
werden, dass sie alle eingehenden Dokumente in den KO-Ausgang befördern. Dadurch
wandert das Dokument, das sich im Postfach EINGANG befindet, erst mal in das NICHT
ERL. Postfach, um von dort in das ANFRAGEN Postfach weitergeleitet zu werden. In
dieser Einstellung entspricht der Kontroll-Automat dem in Abschnitt 6.3 beschriebenen
System.
2. Fall „Zugriff ist erlaubt, er wird aber überwacht!“
Stellt man den PROTOKOLL Sortierer so ein, dass die Dokumente nicht in den KO-,
sondern in den OK-Ausgang transportiert werden, werden die einzelnen Anfragen zur
Ausführung an die ADOS-Datenbank weitergeleitet, aber der Sachbearbeiter erhält eine
Kopie der Anfrage. Der Vorgang ist analog zu Fall 1, nur dass die Anfragen nun im
Postfach ZUM KOPIEREN landen. Die Kopierer-Komponente leitet eine Kopie des
Dokuments in das PROTOKOLL Postfach, das Original in das NACH ADOS Fach. Die
ADOS-Komponente verarbeitet die Anfrage und leitet sie zum KONTIGENT Postfach
weiter.
IMPLEMENTIERUNG DES PROTOTYPEN
95
Dadurch, dass die Aktionen der Externen aufgezeichnet werden, sind sie für den
zuständigen Mitarbeiter des Stahlwerks einer nachträglichen Kontrolle zugänglich. Mittels
dieser Konfiguration wird ein „ex-post“-Kontrollmechanismus (nachträglich Kontrolle)
realisiert.
3. Fall „Zugriff ist erlaubt“
Der Umweg über den Kopierer kann abgekürzt werden, indem man den ERLAUBTSortierer entsprechend einstellt. Dies geschieht dadurch, dass die Aktion für bestimmte
Personen freigeschaltet wird. Darf der Ingenieur Meier beispielsweise Zeichnungen
anschauen, so muss im Dialog beim Reiter „Zeichnung anschauen“ der Name Meier in die
Liste der Freigeschalteten aufgenommen werden. Anfrage-Dokumente des Typs
„Zeichnung anschauen“ von der Person Meier werden dann über den OK-Ausgang direkt
an ADOS geschickt. Auf diese Weise wird ein klassischer „ex-ante“ Zugriffsmechanismus
realisiert.
4. Fall „Beschränkung des automatischen Zugriffs durch die Festlegung eines
Kontingents“
Wird die Anfrage automatisch bearbeitet (Fall 2 und 3) landet sie im KONTIGENT
Postfach und wird, bevor sie an den Ausgang weitergeleitet wird, vom Kontingentierer
erfasst. Durch das Einstellen des Kontingentierers auf z.B. 10 Anfragen pro Tag, kann der
automatische Zugriff durch den Externen auf ein festgelegtes Maß reduziert werden. Dies
verhindert, dass das elektronische Archiv von außen „leergesaugt“ wird. Ist das
Kontingent erreicht, dann werden die Anfragen im KONTIGENT Postfach nicht mehr zum
Retoure-Postfach sondern zum „Kontingent überschritten“-Postfach transportiert. Hier
kann es dann manuell durch den Sachbearbeiter zurückgeschickt werden.
96
97
7 EVALUATION
Durch den Prototyp sollte geklärt werden, wie sich mit Hilfe der durch den FlexiBeanAnsatz gegebenen Modellierungsmöglichkeiten eine für den Endbenutzer verständliche
Dekomposition realisieren lässt. Die Realisierung diente dabei auch der Evaluation des
FlexiBean-Ansatzes.
Der Frage, ob der Prototyp eine angemessene und verständliche Dekomposition besitzt,
wird in Abschnitt 7.1 nachgegangen. Abschnitt 7.2 geht auf Modellierungsschwierigkeiten
ein, die bei der Entwicklung des Prototyps auftraten. Dieser Abschnitt bietet einen
Ausblick darauf, wo beim FlexiBean-Ansatz noch Erweiterungsbedarf besteht. Der
Abschnitt geht auch auf das noch nicht befriedigend gelöste Problem ein, wie sich
anpassbare WAM-Werkzeuge und WAM-Materialien durch FlexiBeans realisieren lassen.
7.1 Evaluation des Prototyps
Bei der externen Evaluation des Prototyps beschränke ich mich auf die Dekomposition der
erweiterten Zugriffskontrolle. Bei der Evaluation der Anpassbarkeit aus der Sicht des
Benutzers übernehme ich die von Stiemerling, Won und Wulf (2000) getroffene
Unterscheidung in Repräsentation, Präsentation und Manipulation (vgl. dazu Abschnitt
3.5.5). Bei der Repräsentation geht es darum, dass die Anwendung flexibel genug ist, so
dass darin alle für den Anwendungskontext relevanten Änderungswünsche vollzogen
werden können. Die Präsentation soll dem Benutzer das aktuelle System zugänglich
machen. Deshalb soll die Präsentation so sein, dass er erstens die, der Anwendung
zugrunde liegende, Dekomposition und das daraus resultierende Verhalten des Systems
versteht und er zweitens die Unterschiede zwischen dem tatsächlichen und dem von ihm
intendierten Verhalten erkennen kann. Die Manipulation sollte so gestaltet sein, dass das
System einfach und effizient während der Nutzung des Systems an die Arbeitssituation
angepasst werden kann.
Die Evaluation basiert dabei auf der im Vorfeld gesammelten Empirie, der Diskussion
anhand eines Papier MockUps und einer Live-Vorführung des Prototyps auf einem
Workshop und auf Test mit Personen außerhalb des OrgTech-Projekts. Der Papier
MockUp wurde zum einen mit zwei Sachbearbeitern von Bausig, zum anderen mit einem
Fremddienstleister diskutiert. Bei dem Workshop waren verschiedene Abteilungen von
Bausig und ein Fremddienstleister anwesend. Die Diskussion des Papier MockUps mit den
internen Sachbearbeitern sollte klären, ob die Dekomposition verständlich ist. Außerdem
sollte überprüft werden, ob die Dekomposition aus der Sicht der Sachbearbeiter die
gewünschte Funktionalität besitzt. Bei der Diskussion mit dem externen Konstrukteur ging
98
es hauptsächlich um den letzten Punkt. Beim Workshop ging es darum, zu sehen, wie die
konfligierenden Parteien auf den Prototypen reagieren und ob die vom Prototypen
angebotenen Kompromissmöglichkeiten von den Beteiligten aufgenommen werden.
7.1.1 Repräsentations-Ebene
Bei der Evaluation auf der Repräsentations-Ebene gilt es zu klären, ob die in Abschnitt 6.3
beschriebene Dekomposition für das Anwendungsfeld die gewünschte Flexibilität
bereithält. Dabei müssen im Falle von gruppenwirksamer Anpassbarkeit nicht nur die
Wünsche der Benutzer und der von der Anpassung betroffenen Personen berücksichtigt
werden, sondern auch für die konfligierenden Interessen Wege bereitgestellt werden, die
eine Kompromisslösung unterstützen.
Im Falle des OrgTech-Projekts liegen die unterschiedlichen Interessen, wie in Kapitel 1
dargelegt, beim Zugriff auf das elektronische Archiv. Diese kamen auch bei der
Vorstellung des Prototyps zum Vorschein. Bei der Diskussion der Funktionalität am Papier
MockUp mit dem Mitarbeiter eines externen Büros meinte dieser, dass für die Externen die
Arbeit durch einen lesenden Zugriff auf das Archiv vereinfacht werde. Im Gegensatz dazu
wurde von den Sachbearbeitern hervorgehoben, dass für sie wichtig sei, dass die Kontrolle
bei Bausig und bei den Sachbearbeitern verbleibe. Für sie ist entsprechend eine Lösung aus
Abschnitt 6.3 ausreichend, solange die durch die „manuelle“ Zugriffskontrolle entstehende
Mehrarbeit von Bausig honoriert wird. Die unterschiedlichen Vorstellungen traten auch bei
der Präsentation des Prototyps auf dem Workshop hervor. So bemängelte der Vertreter der
Externen, dass die Einstellmöglichkeit bei der der interne Sachbearbeiter jeden einzelnen
Zugriff erlauben muss, nicht den Vereinbarungen entsprach, die anfänglich ausgemacht
waren. Ein interner Sachbearbeiter verteidigte diesen Zugriffsmodus damit, dass die
Kontrolle bei Bausig verbleiben müsse. Die Extrempositionen, die sich gegenüberstanden,
waren dabei nicht „erlaubt“ versus „verboten“ sondern „automatischer Zugriff“ versus
„manuelle Kontrolle“. Die vermittelnde Instanz, der protokollierte Zugriff71, wurde von
keiner der Parteien abgelehnt, jedoch wurde sie auch nicht als mögliche
Kompromisslösung aufgenommen. Die Analyse des Anwendungsfelds legt die Vermutung
nahe, dass die Beteiligten zu diesem Zeitpunkt zu einer Kompromisslösung keine Stellung
beziehen wollten, und sie sich deshalb nicht genauer mit dem Mechanismus beschäftigten.
Somit konnte auf dem Workshop nicht geklärt werden, ob die Möglichkeiten, die sich
durch den Prototyp ergeben, auch in der Praxis angewendet werden. Für die Evaluation
reicht es an dieser Stelle aber aus, dass der Prototyp an einer für die Praxis notwendigen
71
Der kontingentierte Zugriff ergab sich erst aus der nachträglichen Analyse des empirischen Materials und
stand deshalb nicht als möglicher Kompromiss zur Verfügung.
EVALUATION
99
Stelle anpassbar ist. Bei der Telekooperationslösung geht es entsprechend darum, wie gut
das System Kompromisse zwischen den Extrempositionen unterstützt. Hier wäre sowohl
ein System, das nur eine klassische Zugriffskontrolle implementiert, als auch ein System,
bei dem der Zugriff immer neu ausgehandelt werden muss, zu unflexibel. Dagegen
unterstützt, wie in Kapitel 1 gezeigt, die durch den Prototyp umgesetzte, erweiterte
Zugriffskontrolle die Beteiligten besser, einen für beide Seiten tragfähigen Kompromiss
umzusetzen.
7.1.2 Präsentations-Ebene
Bei der Evaluation auf der Präsentations-Ebene gilt es zu klären, ob die Dekomposition
und das daraus resultierende Systemverhalten verständlich sind. Im vorliegenden Fall muss
man bei der Evaluation versuchen, die Frage der Präsentation von der vorher
beschriebenen Repräsentation zu trennen.
Mit den Sachbearbeitern wurde die Dekomposition, die in Anhang A beschrieben ist,
anhand eines Papier MockUps diskutiert. Die Diskussion diente unter anderem dazu,
herauszufinden, ob die Dekomposition von den zukünftigen Benutzern, also den internen
Sachbearbeitern, erfasst wurde. Im Nachhinein hat es sich allerdings als ungünstig
erwiesen, bei der Diskussion des Papier MockUps aus „Effizienzgründen“ die Frage nach
der Präsentation mit der Frage der Repräsentation zu koppeln. Denn bei der Frage der
Präsentation sollte der Sachbearbeiter möglichst davon absehen, dass der Prototyp an
seinem Arbeitsplatz eingeführt wird72, damit er nicht die Dekomposition unter interessenbezogenen Gesichtpunkten betrachtet. Im Gegensatz dazu fordert die Frage nach der
Repräsentation den Benutzer dazu auf, sich vorzustellen, wie seine Interessen in einem
zukünftigen System berücksichtigt werden können. So zeigte sich in der Diskussion, dass
sich die Sachbearbeiter eine zukünftige Nutzung nur schwer vorstellen können, aber nach
eigenem Bekunden die Dekomposition verstehen.
Um Herauszufinden, ob es sich um eine allgemeinverständliche Dekomposition handelt,
wurde sie noch mit insgesamt fünf Personen außerhalb des OrgTech-Projekts getestet.
Damit bot sich die Möglichkeit an, die durch die Analyse gewonnenen Erkenntnisse in die
Evaluation mit einzubeziehen. Deshalb wurde nicht die Dekomposition aus Anhang A,
sondern die erweiterte Dekomposition aus Abschnitt 6.4 (Seite 91) getestet. Da sich in den
ersten beiden Tests zeigte, dass die kryptische Benennung der Komponenten und die
doppelten Verbindungen zwischen Postfächern und Sortierern die Tests erschwerten (was
72
Für die Evaluation in diesem Punkt wäre der ideale Proband eine Person mit gleicher Qualifikation und
ähnlichen Arbeitsaufgabe außerhalb des OrgTech-Projekts.
100
zu Nachfragen führte), wurde die Dekomposition zu der in Anhang B dargestellten
verändert73.
Die Tests lehnten sich an die „Thinking-Aloud“-Methode an, deren wesentliche Elemente
in Nielsen (1992) beschrieben sind. Die Grundidee der Methode ist, den Probanden
konkrete Aufgaben zu stellen und sie dann während des Tests anzuhalten, über ihre
Handlungen zu sprechen und ihre Gedanken bei der Lösungsfindung laut zu äußern.
Hinsichtlich des Qualifikationsniveaus der Probanden lassen sich die Tests wie folgt
einteilen: Die Test mit der Dekomposition aus Abschnitt 6.4 (Seite 91) wurden mit
Studenten anderer Fachrichtungen (durchschnittlichen Computernutzern) durchgeführt.
Die Dekomposition von Abschnitt B wurde mit einem Informatikstudenten
(Computerexperte), einem Studenten aus einem anderen Fachbereich (durchschnittlicher
Nutzer) und einer Person getestet, die sich selbst als Computerlaie bezeichnet.
Die Grundlage der Tests war ein Papier MockUp, der auf der Dekomposition aus Abschnitt
6.4 bzw. aus Anhang B beruhte. Zu Anfang der Tests wurde die Bedeutung der einzelnen
Grundkomponenten erklärt und die Dekomposition ähnlich wie in Abschnitt 6.4.2
erläutert. Die Funktionsweise wurde anhand des Verlaufs einer Beispielanfrage durch die
Dekomposition illustriert. Nach dieser kurzen Erläuterung, wurden zwei Kontrollaufgaben
gestellt:
1. Wie kann die Dekomposition so eingestellt werden, dass alle Anfragen
mitprotokolliert werden?
2. Wie kann die Dekomposition so eingestellt werden, dass auch die Antworten der
Anfragen mitprotokolliert werden?
Diese erste Aufgabe zielte darauf ab, ob die
Einstellungsmöglichkeiten verstanden wurden.
Dekomposition neu verdrahtet werden. Damit
Dekomposition als Ganzes verstanden hatten,
verändern.
Funktionsweise der Sortierer und seine
Bei der zweiten Aufgabe musste die
wurde getestet, ob die Probanden die
und ob sie in der Lage waren, sie zu
Die gemachten Beobachtungen wurden zu fünf Thesen zusammengefasst:
1. Die herkömmliche Bedeutung wird auf die Dekomposition übertragen.
2. Die Benennung von Ports und Komponenten tragen stark zum Verständnis bei.
73
Bei der Dekomposition wurde auch ein linearer Aufbau gewählt, damit bei der Erfassung der Bedeutung
möglichst nur der unmittelbare Kontext betrachtet werden muss.
EVALUATION
101
3. Verbindungen und Ports, die keine unmittelbare Bedeutung haben, wirken
verwirrend.
4. Dass zwischen zwei Sortierern ein Postfach geschaltet werden muss, wird als nicht
intuitiv angesehen.
5. Für die Sachbearbeiter der internen Konstruktionsabteilung liegt die Schwierigkeit
darin, sich eine neue Kooperationspraxis vorzustellen.
Insgesamt lässt sich feststellen, dass die Thesen eine gewisse Plausibilität besitzen. Es
bedarf aber noch weiterer, systematische Untersuchungen, um von gesicherten Thesen zu
sprechen.
Die herkömmliche Bedeutung wird auf die Dekomposition übertragen: Die Stärke bei
der Verwendung des WAM-Ansatzes besteht darin, die Komponenten an die Alltagswelt
anzuknüpfen. Dadurch wird es dem Benutzer ermöglicht, die Bedeutung aus der
Alltagswelt auf die Komponenten zu übertragen. Bei den Tests drückte sich dies darin aus,
dass ein Proband beim Zusammenstecken sagte: „Dann verbinde ich die Kopie des
Kopierers mit dem Postfach oder das Original? Ach, eigentlich egal.“ Die Aussage ist
interessant, da sie zeigt, dass die Funktionsweise der Kopierer-Komponente erfasst wurde.
Der Komponente wird aber nicht die Bedeutung eines üblichen Kopierers zugeschrieben,
sondern es wird schon von einer elektronischen Kopie ausgegangen, die mit dem Original
identisch ist. Entsprechend muss man bei der Modellierung nach dem WAM-Ansatz
aufpassen, dass die Übertragung der üblichen Bedeutung(en) auf die Komponente nicht zu
einem antiquierten Verständnis führt.
Die Benennung von Ports und Komponenten tragen stark zum Verständnis bei: Die
Benennung spielt eine wichtige Rolle beim im Verständnis der Dekomposition. Zum einen
liegt das daran, dass der Benutzer bei einer atomaren Komponente nicht hineinschauen
kann bzw. will, um herauszufinden was die Komponente tut. Zum anderen erlaubt es eine
gute Bezeichnung, dass die Bedeutung der Komponente direkt erfasst wird, ohne auf den
umliegenden Kontext zu schauen. Bei den ersten Tests fiel dies z.B. negativ bei den
Namen der Sortierer auf. So stellt das Wort „Erlaubt“ bzw. „Protokoll“ nur eine starke
Verkürzung von „Prüfe, ob der Anfrage ein direkter Zugriff auf ADOS erlaubt ist“ und
„Prüfe, ob der Anfrage ein protokollierter Zugriff auf ADOS erlaubt ist“ aus. Durch die
verkürzte Bezeichnung konnte die Aufgabe, die die beiden Sortierer erledigen, nicht mehr
ausdrückt werden. Dies zeigt sich daran, dass die Arbeitsweise der beiden Sortierer näher
erläutert werden musste.
102
Da es aber nicht immer möglich ist, ein aussagekräftiges Schlagwort für eine Komponente
zu finden, spricht dies dafür, die in Abschnitt 7.2.5 geforderte Annotierbarkeit von
Komponenten, Ports und Verbindungen einzuführen.
Verbindungen und Ports, die keine unmittelbare Bedeutung haben, wirken
verwirrend: Komponenten, Ports und Verbindungen die im Anpassungskontext keinen
unmittelbaren Zweck haben, wirken bei der Anpassung eher störend und verwirrend. So
lenkten die nach außen führenden Verbindungen und die dazugehörigen Ports erstmal von
der eigentlichen Aufgabe ab. Auch wirkte die Verbindung zur Eventverarbeitung zwischen
dem Geändert-Port des Sortierers und dem Geändert-Port des Postfachs verwirrend. Dies
liegt wahrscheinlich daran, dass diese Verbindung technisch motiviert ist. Für den
vorliegenden Fall könnte, wie in Anhang B dargestellt, diese Verbindung mit der
SharedObject-Verbindung zusammengezogen und dem Benutzer als alleinige Verbindung
angeboten werden.
In diesem Punkt zeigt sich, dass Steckverbindungen eine sinnvolle Erweiterung des
FlexiBean-Ansatzes darstellen (vgl. 7.2.5). Auch sind benutzerspezifische
Anpassungsumgebungen sinnvoll, die je nach Qualifikation des Anpassers und
durchgeführte Anpassungsaufgaben bestimmte Komponenten, Ports und Verbindungen
ausblenden, wenn sie für den Anpassungsprozess nicht notwendig sind.
Dass zwischen zwei Sortierern ein Postfach zwischengeschaltet werden muss, wird als
nicht intuitiv angesehen: Beim Einbau des zusätzlichen Kopierers in die Dekomposition
muss zusätzlich ein Hilfspostfach eingebaut werden74. Dies wurde als störend empfunden,
da dies nichts mit der eigentlichen Aufgabe zu tun hatte.
Um dem Anwender einen intuitiveren Zugang zu ermöglichen, sollten die verarbeitenden
Komponenten, wie Kopierer und Sortierer, erweitert werden, so dass es möglich ist, sie in
Reihe zu schalten.
Für die Sachbearbeiter der internen Konstruktionsabteilung liegt die Schwierigkeit
darin, sich eine neue Kooperationspraxis vorzustellen: Insgesamt kann man festhalten,
dass von den Probanden die Funktionalität der Grundkomponenten erfasst wurde. Sie
konnten auch das aus der Dekomposition resultierende Systemverhalten nachvollziehen.
Da auch die Sachbearbeiter nach eigenem Bekunden die Dekomposition verstanden, kann
74
Der Grund liegt darin, dass ein SharedObject-Client nur mit einem Provider verbunden werden darf. Da
Sortierer nur SharedObject-Clients besitzen, können sie nicht direkt verbunden werden. An dieser Stelle
zeigte aber auch eine technische Herangehensweise des Informatikstudenten. Er merkte beim Umstecken der
Komponenten zu den Postfächern an: „Das ist wohl eine Designentscheidung, dass die E-Mail immer
zwischengespeichert wird.“
EVALUATION
103
man vermuten, dass eine für den Endbenutzer verständliche Dekomposition gefunden
wurde.
Die Schwierigkeiten für die Sachbearbeiter sich eine Nutzung vorzustellen, müssten dann
woanders liegen. Ein Grund für die Schwierigkeiten könnte darin bestehen, dass die
Sachbearbeiter sich nicht zugleich eine neue Anwendung, eine durch die veränderte
Zugriffskontrolle neue Kontrollpraxis und eine durch die Virtualisierung neue
Kooperationsform vorstellen können. Abschnitt 7.1.4 zeigt, wie durch evolutionäre
Entwicklung diese Gleichzeitigkeit entkoppelt werden könnte.
7.1.3 Manipulations-Ebene
Eine Evaluation auf der Manipulations-Ebene hätte zu klären, ob durch die
Anpassungsumgebung die Dekomposition einfach an Bedürfnisse angepasst werden kann.
Da hierin nicht der Schwerpunkt der Arbeit lag und entsprechend nicht evaluiert wurde,
kann hierzu keine Aussage gemacht werden.
7.1.4 Komponentenbasierte Anpassbarkeit und evolutionäre Entwicklung
Ein anderes Vorgehen, um mit dynamischen und unsicheren Anforderungen im
Softwareprozess umzugehen, besteht im evolutionären Entwickeln, wie es z.B. auch von
Floyd, Reisin und Schmidt (1989) propagiert wird.
Auch im vorliegenden Fall bietet es sich an, zunächst nur die in Abschnitt 6.3 beschriebene
Lösung zu entwickeln. Diese erlaubt es, den Prototypen ohne die Dynamik des
Aushandlungsprozesses und die damit verbundenen Sicherheitsaspekte im
Anwendungsfeld einzuführen und zu testen. Dies entkoppelt die Einführung einer neuen
Kooperationsform von der Einführung einer neuen Kontrollpraxis. Die Dekomposition aus
Abschnitt 6.4 zeigt, dass die eingeführte Lösung zu einem System mit erweiterter
Zugriffskontrolle ausgebaut werden kann.
Hierbei offenbart sich ein Vorteil der FlexiBeans, die durch den Komponentenaufbau die
evolutionäre Entwicklung unterstützten. Dies zeigt sich auch darin, dass bei dem
implementierten Prototypen ohne großen Aufwand eine Kontrolle durch Kontingentierung
mittels der Kontingentier-Komponente integriert werden kann.
104
7.1.5 Resümee
Aufgrund der Evaluation des Prototyps kann man vermuten, dass die erweiterte
Zugriffskontrolle einen für die Praxis relevanten Punkt darstellt, und dass hier eine für den
Endbenutzer verständliche Dekomposition gefunden wurde. Die Verständlichkeit der
Dekomposition liegt wahrscheinlich daran, dass, sämtliche Bestandteile der
Dekomposition, wie Komponenten, Ports und Verbindungen, sich leicht mit Hilfe der
Anfrage-E-Mail illustrieren lassen und dass eine E-Mail für den Anwender ein
verständliches Objekt ist. In diesem Punkt kann man sagen, dass die Verwendung des
WAM-Ansatzes sich bewährt hat.
Die Fallstudie zeigt aber auch die Grenzen des WAM-Ansatzes auf. Den automatischen
Zugriff der Externen auf das Archiv, der eine echte Transformation der Arbeitspraxis
bedeutet, können sich die Sachbearbeiter trotz verständlicher Dekomposition nicht wirklich
vorstellen.
Für die Methodik der Anforderungserhebung und damit auch für die Evaluation wirft die
Fallstudie die Frage auf, wie mit Interessenskonflikten umgegangen werden soll, zumal der
Entwickler durch das Softwaresystem in diesen Konflikt interveniert.
7.2 Erweiterung des FlexiBean-Ansatz
Im Folgenden werden einige Erweiterungsvorschläge des FlexiBean-Ansatzes erläutert.
Abschnitt 7.2.1 widmet sich dem Problem, wie der Zustand einer Komponente gespeichert
werden kann. In Abschnitt 7.2.2 wird die Idee der reflexiven Komponenten eingeführt. Es
wird gezeigt, wie sich damit anpassbare WAM-Werkzeuge und anwendungsspezifische
Anpassungsumgebungen realisieren lassen. Abschnitt 7.2.3 erläutert die Schwierigkeiten,
die bei der Modellierung von anpassbaren WAM-Materialien entstehen. Den Abschluss
bilden der Abschnitt über die Semantik der SharedObjects und ein Abschnitt in dem
weitere Erweiterungsvorschläge stichpunktartig zusammengefasst werden.
7.2.1 Persistenz und Identität einer Komponenteninstanz
Problembeschreibung: Bei ADOS-X ergab sich das Problem, dass die Anfragen, die in
den Postfächern lagen, nach dem Herunterfahren der Evolve-Plattform nicht verloren
gehen durften. Ein ähnliches Problem ergab sich bei der Speicherung der (Aus-)Sortierungsstrategien des Sortierers, auf die ich aber im nächsten Abschnitt gesondert eingehe.
Allgemein formuliert besteht die Aufgabe darin, bei einer Komponenteninstanz, neben der
durch das CAT-File gegebenen Konfiguration, den Zustand einer Instanz oder Teile davon
persistent zu machen.
EVALUATION
105
Implementierte Modellierung: Bei ADOS-X wurde der Inhalt der Postfächer außerhalb
der Evolve-Plattform abgespeichert. Um den Persistenz-Mechanismus von der Postfachlogik zu trennen wurde eine eigene Komponente, das FileArchiv eingeführt. Das
Zusammenspiel der beiden Komponenten ist in Abbildung 7-1 zu sehen. In der Abbildung
kann man auch das Verfahren dieser Modellierung erkennen.
import java.rmi.*;
public interface Store extends Remote
{
void saveMsg(Msg msg, String postfachID)
throws RemoteExpection, StoreException;
void deleteMessage(Msg msg, String pfID)
throws RemoteExpection, StoreException;
void Msg[] loadMessages(String pfID)
throws RemoteExpection, StoreException;
}
Abbildung 7-1 Persistenz-Mechanismus bei ADOS-X. Links die beteiligten Komponenten, rechts die
Schnittstelle, über die die beiden Komponenten gekoppelt sind
Um den Speicherort eines Postfachs von dem Speicherort eines anderen Postfachs zu
unterscheiden, bedarf es einer Postfach-ID75. Die einzige Möglichkeit diese ID innerhalb
der Evolve-Plattform zu speichern besteht darin, sie als eine Property der Komponente
künstlich einzuführen.
Schwachstellen der Modellierung und alternative Lösungsansätze: Beim FlexiBeanAnsatz ist es nicht möglich, Constraints an die Architektur zu stellen. Deshalb kann nicht
verhindert werden, dass mehrere Postfächer die gleiche ID besitzen und damit bei einem
Neustart die gleichen Anfragen laden, was unter anderem eine Sicherheitslücke darstellt.
Aus diesem Grund sollte der FlexiBean-Ansatz einen eigenständigen PersistenzMechanismus besitzen. Die minimale Anforderung an einen solchen Mechanismus ist die,
dass eine Komponente einen „archimedischen Punkt“ besitzt. Dieser könnte in einer für
jede Instanz eineindeutigen und unveränderlichen ID bestehen76.
Das Modell der Enterprise JavaBeans (EJB) setzt sich mit der Persistenz von
Komponenten auseinander. Deshalb soll hier näher darauf eingegangen werden. Der EJBAnsatz wurde für die Modellierung von Server-Applikationen, wie z.B. Online-Shops,
entwickelt, bei denen viele User die gleiche Anwendung mit unterschiedlichem Inhalt
ausführen. Der Persistenz-Mechanismus der EJBs lässt sich jedoch nicht ohne weiteres auf
die FlexiBeans übertragen. Denn ein grundlegender Unterschied zwischen EJBs und
75
Würde das Postfach sich selbst abspeichern, bedürfte es ebenfalls einer ID um herauszufinden, wo es sich
hingespeichert hat.
76
Die Eineindeutigkeit der ID könnte prinzipiell auch dadurch erreicht werden, dass der FlexiBean-Ansatz
anwendungsspezifische Constraints erlaubt, wie in Abschnitt 7.2.5 kurz erläutert wird.
106
FlexiBeans besteht darin, dass beim EJB-Ansatz Komponenten nicht auf der Instanz-,
sondern auf Typ-Ebene verdrahtet werden77. Erst zur Laufzeit wird ermittelt, welche
Instanzen miteinander verbunden werden. Dabei gibt es zwei Arten von
Komponententypen: SessionBeans und EntityBeans. Hier sind vor allem die EntityBeans
interessant, denn sie zeichnen sich dadurch aus, dass ihre Instanzen einen persistenten
Zustand haben. Typischerweise repräsentieren sie Daten aus einer Datenbank. Bei den
EntityBeans unterscheidet man nochmals zwischen den Beans, die ihre Persistenz selbst
verwalten und jenen, bei denen dies durch die Umgebung geschieht. Im Folgenden werde
ich mich auf den ersten Fall beschränken.
Die Spezifikation schreibt vor, dass eine EntityBean eine Menge von Methoden
implementieren muss, die man in die Bereiche Zustandsmanagement, Identitätsverwaltung
und Anwendungslogik aufteilen kann. Das Zustandsmanagement ist unter anderem für das
Wiederherstellen einer persistenten Bean verantwortlich. Es besteht dabei aus drei Phasen:
1. das Erzeugen der Komponente, 2. das Identifizieren und 3. das Laden des Zustands. Das
Identifizieren geht mit Hilfe einer der EntityBean zugeordneten Klasse, die die Identität
bzw. den Primarykey (PK) einer Instanz darstellt. Mit der Identitätsverwaltungs-Methode
ejbCreate wird ein Primarykey geschaffen. Dabei ist die Komponente selbst dafür
verantwortlich, dass der PK eineindeutig ist.
Der Primarykey steht über den EntityContext zur Verfügung. Hierüber greift die
Zustandsmanagement-Methode Load zu, um den Zustand zu laden. Den Primarykey
speichert sich der Client einer EntityBean, um zu einem späteren Zeitpunkt die EntityBean
über die Identitätsverwaltungs-Methode ejbFindByPrimarykey wieder zu finden.
Daneben kann ein EntityBean noch weitere Find-Funktionen haben, um eine Instanz zu
identifizieren. So kann z.B. eine KundenBean eine ejbFindByKundenNummerMethode besitzen. Der Client greift jedoch nicht auf die EntityBean direkt zu, sondern
stellt seine Anfrage an die EJB-Plattform, auch Application-Server genannt, und bekommt
von dieser ein Proxy-Objekt auf die Bean zurück.
Bei der Übertragung der Idee auf den FlexiBean-Ansatz fallen wegen der
instanzorientierten Verdrahtung die find-Methoden durch den Client weg. Was sich aber
übernehmen lässt, ist die Idee der serialisierbaren Primarykey-Klasse. Bei der Generierung
des Primarykeys sollte es neben dem Fall, ihn von der Komponente selbst generieren zu
lassen, auch die Möglichkeit geben, dass die Evolve-Plattform eine eineindeutige ID
erzeugt.
77
Dieser Unterschied resultiert daraus, dass die Anpassbarkeit für den Server-Administrator, in der EJBSpezifikation auch Deployer genannt, und nicht für den Endbenutzer, im Falle eines Online-Shops also den
Kunden, ausgelegt ist.
EVALUATION
107
Daneben muss bei der Entwicklung eines Persistenz-Mechanismus geklärt werden, wie
eine Komponente auf die ID zugreifen kann. Dabei sind zwei Methoden vorstellbar. Bei
der ersten Methode wird die Verbindung zwischen Plattform und Komponente nicht
explizit in der Architektur angezeigt. Diese Methode ist analog zum EJB-Ansatz und
verlangt, dass eine persistente Komponente ein bestimmtes Interface implementiert. Über
dieses Interface kann die Evolve-Plattform den Kontext der Komponente setzen, worüber
die Komponente ihre ID erfragen kann. Bei der anderen Methode wird die Verbindung
explizit angezeigt und kann durch die, im nächsten Abschnitt dargestellten, reflexiven
Komponenten realisiert werden. Hier kann eine Komponente auf ihre eigene Repräsentanz
in der Evolve-Plattform zugreifen. Dadurch ist es prinzipiell möglich, dass eine
Komponente auf ihre eineindeutige ID zugreifen kann. Da aber der EJB-Ansatz schon ein
Konzept für den gesamten Lebenszyklus einer persistenten Komponente und ein Protokoll
dafür besitzt, wie die Übergänge im Zyklus zu realisieren sind, bietet es sich an, sich
weitgehend an den EJB Persistenz-Mechanismus zu halten.
Ein noch genauer zu untersuchendes Phänomen entsteht durch persistente FlexiBeans, bei
denen sich der persistente Zustand aus zwei Teilen zusammensetzt. Der eine Teil des
Zustands ist durch die Konfiguration im CAT-File gegeben, der andere wird außerhalb der
Evolve-Plattform gespeichert. Damit stellt sich die noch zu beantwortende Frage, was
passieren soll, wenn eine angepasste Anwendung, die momentan durch das CAT-File
gegeben ist, mit einem Kollegen ausgetauscht wird.
7.2.2 Reflexive Komponenten
Die Reflexivität des FlexiBean-Modells beschränkt sich darauf, nur dem Benutzer die
Systemarchitektur durch eine Anpassungsumgebung zugänglich zu machen. Aus einer
Komponente heraus, kann auf die Architektur nicht zugegriffen werden. Dies könnte
dadurch geändert werden, dass die Evolve-Plattform die Kompositionsstruktur nicht nur
der Anpassungsumgebung, sondern auch den Komponenten zur Verfügung stellt. Dies
führt zu dem Modell einer reflexiven Komponente.
Definition einer reflexiven Anpassungs-Komponente
i)
Eine FlexiBean heißt reflexiv, wenn sie auf ihre eigene durch die EvolvePlattform gegebene Repräsentation zugreifen kann.
ii)
Eine FlexiBean ist eine reflexive Anpassungs-Komponente, wenn sie zusätzlich
noch auf die Kompositionsstruktur zugreifen und die sie anpassen kann.
108
Technisch kann eine reflexive Anpassungskomponente dadurch realisiert werden, dass im
CAT-File auf die Evolve-Plattform als eine atomare Komponente verwiesen werden kann.
Die Evolve-Komponente stellt dabei ein SharedObject, in Abbildung 7-2 EVOLVEContext genannt, zur Verfügung, über dass zum einen eine Komponente auf ihre eigene
Repräsentation zugreifen kann, zum anderen ermöglicht das SharedObject auf der
Kompositionsstruktur zu navigieren und sie anzupassen. Dabei kann auf die schon
vorhandene Tailoring-API aufgebaut werden.
reflexive
Anpassungs-Bean
EVOLVEContext
EVOLVEContext
EVOLVE
Abbildung 7-2 Realisierung von reflexiven Anpassungs-Komponenten durch eine atomare EvolveKomponente
7.2.2.1 Anpassbare WAM-Werkzeuge
Ein Problem beim FlexiBean-Ansatz besteht darin, dass mit ihm keine anpassbaren WAMWerkzeuge modelliert werden können. Dies liegt daran, dass Werkzeuge in Abhängigkeit
der Materialien dynamisch erzeugt werden. Bei ADOS-X stellte sich das Problem so dar,
dass eine Anfrage-E-Mail (WAM-Material) in einem eigenen Fenster78, (WAM-Werkzeug)
bearbeitet werden kann. Da in einem Postfach unbegrenzt viele E-Mails liegen können, ist
es auch möglich, unbegrenzt viele Werkzeuge zu öffnen. Da aber der FlexiBean-Ansatz
keine Möglichkeit besitzt aus einer Komponente eine neue FlexiBean zu erzeugen, kann
das Werkzeug nicht durch ein CAT-File beschrieben werden. Bei der Implementierung hat
das zur Konsequenz, dass das Fenster anpassbar ist.
Lösungsansatz: Die Abbildung 7-3 zeigt, wie mit Hilfe der reflexiven AnpassungsKomponente es technisch möglich ist, anpassbare Werkzeuge zu modellieren.
Abbildung 7-3 Abstrakte Komponente, die anpassbare Mini-Applikationen ermöglicht
78
Ein solches Fenster ist im oberen Teil von Abbildung 6-5 zu sehen.
EVALUATION
109
Die zentrale Komponente der Modellierung ist die reflexive Anpassungs-Komponente
MiniApp. Am Port JDesktop79 kann ein SharedObject angebunden werden, dass eine
graphische Oberfläche besitzt, auf der die Mini-Anwendungen angezeigt werden. JComp
bietet ein Objekt an, in das graphische Komponenten eingehängt werden können. Die Ports
Start und Exit dienen dazu, eine Mini-Applikation zu starten bzw. zu beenden.
Das Starten bewerkstelligt die MiniApp-Komponente wie folgt: Zuerst besorgt sie sich die
sie umschließende, abstrakte Komponenteninstanz. In Abbildung 7-3 ist dies die
ViewerApp-Komponente. Von dieser Instanz erzeugt sie eine neue Kopie. Anschließend
werden die Ports der Kopie so verbunden, dass die Verbindungen denen des Originals
entsprechen. Diese Verbindungen stellen die Anbindung einer Mini-Applikation an den
Kontext her. Ist z.B. der Erlaubt-Port der ViewerApp an ein Postfach angeschlossen, so
teilen sich alle durch die MiniApp gestarteten ViewerApps dieses Postfach. Für den Fall,
dass die abstrakte Komponente ein SharedObject anbietet, wird jedoch diese Verbindung
nicht dupliziert. Denn der gegenüberliegende SharedObject-Client kann nur höchstens mit
einem Provider verbunden werden. Dieser Fall ist jedoch keine große Einschränkung, weil
mit dieser Konstruktion WAM-Werkzeuge modelliert werden sollen, die hauptsächlich
SharedObjects benötigen.
Das Beenden erfolgt so, dass die MiniApp sich wieder die, sie umschließende,
Komponente, die ViewerApp, geben lässt und diese von der Evolve-Plattform entfernt. Das
hat zur Folge, dass die MiniApp sich selbst löscht. Dies gilt es bei der Umsetzung des Lösungsansatzes zu beachten.
7.2.2.2 Anwendungsspezifische Anpassungsumgebung
Mittels reflexiven Anpassungs-Komponenten können auch anwendungsspezifische
Anpassungsumgebungen bzw. Anpassungswerkzeuge realisiert werden. Bei der
Implementierung von ADOS-X taucht das Problem auf, dass die (Aus-)Sortierstrategie nur
dann im CAT-File gespeichert werden kann, wenn sie eine Property der Komponente ist.
Das bedeutet aber, dass sie 1. in einen String verwandelt werden muss und 2. die
Sortierstrategie nur über die 3D-Anpassungsumgebung geändert werden kann. Beides
zusammen ist nicht sehr anwenderfreundlich. Deshalb wurde bei ADOS-X die
Zugriffsstrategie außerhalb des CAT-Files in einer Datenbank gespeichert mit den in
Abschnitt 7.2.1 beschriebenen Problemen. Die Strategie konnte durch ein AnpassungsWerkzeug geändert werden80.
79
Die graphische Modellierung bei ADOS-X wurde durch das Wrappen von java-Swing Klassen in
FlexiBeans erreicht. Auf die Swing-Klassen kann durch gleichnamige SharedObjects zugegriffen werden.
80
Das Benutzer-Interface des Anpassungs-Werkzeugs ist in Abbildung 6-7 zu sehen.
110
Durch die reflexive Anpassungs-Komponente wäre es möglich, dass das AnpassungsWerkzeug auf die Repräsentation des angeschlossenen Sortierers zugreifen kann, und
damit die (Aus-)Sortierungsstrategie im CAT-File zu speichern. Eine Dekomposition, die
das Anpassen eines Sortierers mit Hilfe einer reflexiven Anpassungsumgebung erlaubt, ist
in Abbildung 7-4 dargestellt. Zur Änderung der Strategie lässt das SortiererAnpassungswerkzeug sich über den EVOLVE-Context seine Repräsentation in der EvolvePlattform geben. Dadurch, dass der Sortierer über den Einstellen-Port mit dem Werkzeug
verbunden ist, kann das Werkzeug auch auf die Repräsentation des Sortierers zugreifen.
Das Werkzeug kann dann durch die Strategie-Property des Sortierers auf die
Sortierstrategie zugreifen und sie für den Benutzer in einer für ihn angemessenen Form
anzeigen, so dass er sie einstellen kann. Über die Tailoring-API kann die StrategieProperty auf die geänderte Sortierstrategie gesetzt werden.
Sortierer
Anpassungswerkzeug
EVOLVEContext
EVOLVEContext
EVOLVE
Einstellen
Einstellen
Sortierer
Strategie :: String
Abbildung 7-4 Realisierung eines Anpassungswerkzeugs, mit dem man einen Sortierer einstellen kann
Das Prinzip kann auch auf abstrakte Komponenten übertragen werden. Für atomare
Komponenten kann alternativ der in Sun (1997, Kapitel 9) spezifizierte Ansatz zur
komponentenspezifischen Anpassung übernommen werden. Die Spezifikation legt über
Interface-Definitionen, fest wie ein komponentenspezifisches Anpassungswerkzeug
aussehen muss. Durch die Standardisierung ist es einer Entwicklungsumgebung81 möglich
das Anpassungswerkzeug bei der Konfiguration der Komponente aufzurufen. Idealerweise
werden beide Ansätze, reflexive Komponenten und festgelegte Schnittstellen für
Anpassungswerkzeuge, miteinander verknüpft.
7.2.3 WAM-Materialien
Ein noch ungelöstes Problem stellt die Modellierung von anpassbaren WAM-Materialien
durch FlexiBeans dar. In diesem Abschnitt werde ich auf die Probleme eingegehen, die
sich bei der Modellierung ergeben.
Im Falle von ADOS-X stellen die Anfrageobjekte ein Material in Sinne des WAMAnsatzes dar. An die Anfrageobjekte gab es verschiedene Anforderungen, die hier
81
Im Falle des FlexiBean-Ansatz ist es nicht die Entwicklungs-, sondern die Anpassungsumgebung.
EVALUATION
111
stichpunktartig aufgelistet sind: Zunächst einmal muss dem Benutzer eine Anfrage als ein
Suchformular angezeigt werden, so dass er sie bearbeiten kann. Daneben muss sie sich
über einen E-Mail-Server verschicken lassen. Dabei ist zu beachten, dass auch die
Zeichnungen, die als binäre Daten vorliegen, transportiert werden können. Zusätzlich muss
die ADOS-Komponente aus der Anfrage eine Datenbankabfrage generieren und die
Antwort in die Anfrage integrieren. Zusätzlich muss die Anfrage durch die SortiererKomponente analysiert werden können, damit der Sortierer entscheiden kann, welche er
wohin weiterleiten soll. Daneben sollte es möglich sein, nachträglich neue Anfragetypen
einzuführen.
Implementierte Modellierung: Beim Prototypen wurde auf das JavaMail Package von
Sun Microsystems (1998) aufgebaut, zumal es Anbindung an einen E-Mail-Server
sicherstellte. Eine E-Mail wird im JavaMail Package durch ein Objekt der Klasse
javax.mail.internet.MimeMessage präsentiert. Die Anfragen bei ADOS-X
werden durch diese Klasse realisiert.
Im Folgenden soll die Funktionsweise von JavaMail erläutert werden. Wie Abbildung 7-5
zeigt, arbeitet das Package eng mit dem Java Activation Framework (JAF) zusammen. Die
Mail besteht aus zwei Bestandteilen, den Headers und dem Content. Dem Content ist ein
Mimetyp zugeordnet. Über ihn kann das JAF ermitteln, welche java-Klasse den
ContentData verarbeiten kann. Durch die Klasse, die von javax.activation.DataSource abgeleitet sein muss, kann auf den Inhalt zugegriffen werden. Der
DataSource ist ein DataHandler zugeordnet. Die Funktionsweise von DataHandler,
CommandMap und CommandObject soll anhand eines Beispiels aus ADOS-X erläutert
werden.
JavaMail
Java Activation Framework
MimeMessage
DataSource
DataContentHandler
Headers
Content
DataHandler
Command
Map
Command
Object
<mime-type>
ContentData
# Command Map für ADOS-X
multipart/* ; ; x-java-view = com.adosx.co.MultipartViewer; \
x-java-edit = com.adosx.co.MultipartEditor
text/plain; ;x-java-view = com.adosx.co.TextViewer; \
x-java-edit = com.adosx.co.TextEditor
image/tiff; ;x-java-view=com.adosx.co.TifViewer;
java-serialized-object/x-zngsuche ; ; x-java-view = com.adosx.co.ZngSucheViewer; \
x-java-edit = com.adosx.co.ZngSucheEditor; \
x-java-adosexecute = com.adosx.adosdb.co.ZngSucheExecute
...
Abbildung 7-5 Realisierung von Anfragen durch MimeMessages und deren Zusammenspiel mit dem Java
Activation Framework
112
Der Anfragenbearbeiter lässt sich von einer MimeMessage den DataHandler geben.
Anschließend erfragt der Anfragenbearbeiter vom DataHandler, ob er zum edit-Befehl ein
CommandObject besitzt. Dazu lässt der DataHandler sich vom JAF die CommandMap
geben82 und erstellt daraus die Liste der zum Mimetyp vorhandenen CommandObjects.
Dann erstellt er die zum edit-Befehl eingetragene Klasse, initialisiert sie mit der
DataSource und gibt sie zurück. Der Anfragenbearbeiter veranlasst dann das
zurückgegebene CommandObject, sich anzuzeigen. Nach dem gleichen Prinzip kann die
ADOS-Komponente sich ein CommandObject geben lassen, das dann die Datenbank
abfragt und daraus eine Antwort erstellt.
Schwachstellen: Damit ist die implementierte Lösung zwar erweiterbar, aber die in der
CommandMap referenzierten CommandObjects sind durch den Benutzer nicht mehr
anpassbar. Ein anderes Problem besteht darin, dass die CommandMap für das gesamte
System gilt. Dies kann insbesondere bei einem Mehrbenutzersystem zu unerwünschten
Effekten führen.
In der vorliegenden Arbeit wurde jedoch kein allgemeiner Lösungsansatz für die
Gestaltung von WAM-Materialien entwickelt. Es besteht ein entsprechender
Forschungsbedarf, wie durch den Benutzer anpassbare Materialien modelliert werden
sollen, wie diese in den FlexiBean-Ansatz integriert werden können und wie eine für den
Benutzer geeignete Interaktionsform aussehen könnte. Insbesondere bedarf es eines
Mechanismus, durch den das Material mit einem anpassbaren Werkzeug gekoppelt wird.
Für einen solchen Mechanismus bietet es sich an, auf die reflexiven Komponenten
zurückzugreifen. Beim Datenformat bietet es sich an, XML als erweiterbare
Beschreibungssprache zu verwenden.
7.2.4 Semantik von SharedObjects
Bei der Semantik von SharedObjects ist für die Benutzer vor allem von Belang, dass ein
SharedObject-Client nicht mit mehreren SharedObject-Providern verbunden werden kann.
Auf die Auswirkung, die diese eingeschränkte Kardinalität vom SharedObject-Provider auf
die Modellierungsmöglichkeiten hat, gehe ich auf Seite 116 ein.
Im Folgenden gehe ich auf die informal gegebene Semantik ein, da sie einen wichtigen
Bestandteil des FlexiBean-Modells betrifft. Die Semantik ergibt sich daraus, dass
SharedObjects, wie in Abschnitt 1.2 erläutert, die objektorientierte Umsetzung der Idee
von gemeinsamen Variablen darstellen sollen.
82
Der CommandMap-Eintrag hat dabei die Form:
<mimetype>/<subtype> ; ; x-java-<command> = <classname>
EVALUATION
113
Gemeinsame Variablen zeichnen sich unter anderem dadurch aus, dass sie keinen
Kontrollfluss besitzen. Da die Umsetzung beim Zugriff auf das SharedObject einen
Methodenaufruf verlangt, wird jedoch die Kontrolle auf das SharedObject übertragen. Eine
Umsetzung, die einer passiven Variablen am Nächsten kommt, verlangt von den
kapselnden Methoden, dass in ihnen keine anderen Methoden aufgerufen werden. Eine
weniger strenge Umsetzung verlangt nur, dass die Kontrolle innerhalb des SharedObjects
bzw. in der Komponente bleibt. Diese schwächere Anforderung ermöglicht es aber immer
noch, dass der Entwickler einer Komponente den Überblick darüber hat, welche
Eigenarten sich aus dem Kontrollfluss ergeben. Werden keine Anforderungen an den
Kontrollfluss gestellt, so verkompliziert sich die Komponentenentwicklung insbesondere
dadurch, dass hier das Zusammenspiel von Komponenten unterschiedlicher Hersteller
beachtet werden muss.
Dadurch, dass der Kontrollfluss die Komponente verlässt, ergibt sich das von Szyperski
(1998, Kapitel 5) untersuchte Phänomen des Re-Entrance. Er versteht unter Re-Entrance
„the situation in which an object’s method is invoked while another method is still
executing“ [Szyperski (1998, S. 64)]. Das Problem des Re-Entrance besteht in der
Beobachtung eines Objekts, das sich einer Zustandsänderung unterzieht, bei der
inkonsistente Zwischenzustände sichtbar werden.
In Abbildung 7-6 ist ein Beispiel für ein Re-Entrance gezeigt. Die ClientBean1 ruft eine
Methode des SharedObjects auf (1). Damit wird der Kontrollfluss an die ProviderBean
übergeben. Diese führt die SharedObject-Methode aus (2). Während der Ausführung
sendet die ProviderBean ein Event, so dass der Kontrollfluss die Bean wieder verlässt (3).
Über Umwegen erhält so die ClientBean2 den Kontrollfluss, die wiederum eine
SharedObject Methode aufruft (5). Dadurch sieht die ClientBean2 unter Umständen einen
nicht konsistenten Zwischenzustand des SharedObjects.
ProviderBean
(3)
(2)
(1)
(5)
(4)
ClientBean1
Legende:
ClientBean2
Kontrollfluss
Abbildung 7-6 Beispiel eines Re-Entrance, wie er sich im FlexiBean-Modell darstellt
Es spricht also einiges dafür, von SharedObjects zu verlangen, dass der Kontrollfluss auf
die eigene Komponente beschränkt bleibt. Diese Anforderung kann jedoch zu monolithischen Komponenten führen, deren interne Struktur nicht mehr anpassbar ist. Zum
114
anderen erschwert diese Anforderung das Design nach dem „seperation of concerns“Prinzip83. Ein Beispiel dafür findet man in Abbildung 7-1. Hier delegiert das Postfach das
Speichern des Inhalts an die FileArchiv-Komponente. Bei solchen Modellierungsmustern
ist es jedoch notwendig, aus einer SharedObject-Methode auf SharedObjects anderer
Komponenten zuzugreifen, weshalb eine Semantik in diesem Punkt nicht zu restriktiv sein
sollte.
Lösungsansatz: Der hier vorgeschlagene Ansatz ist nicht so streng, dass er verlangt, dass
der Kontrollfluss auf die Komponente beschränkt bleibt. Aber unter bestimmten
Vorraussetzungen kann gezeigt werden, dass das Problem des Re-Entrance bei der
Ausführung einer SharedObject-Methode nicht auftreten kann. Wobei ich unter
Berücksichtigung des java Thread-Modells Re-Entrance etwas anders definiere. Ein
Thread stellt in java einen eigenen Kontrollfluss dar. Existieren mehrere Kontrollflüsse, so
spricht man von Multi-Threading. Beim Multi-Threading stellt sich das Problem des ReEntrance so dar, dass ein Thread auf einen inkonsistenten Zwischenzustand eines Objekts
zugreifen kann. Um dies für einen fremden Thread zu verhindern gibt es in java das
Konstrukt der Synchronisation [Sun (1996)], weshalb ich mich hier auf den Fall des
Single-Threads beschränke.
Definition des Re-Entrance eines SharedObjects:
Ich verstehe deshalb unter dem Re-Entrance eines SharedObjects die Situation, bei der
während der Ausführung einer Methode des SharedObjects im gleichen Thread auf das
SharedObject von außerhalb zugegriffen wird. Ein SharedObject heißt reentrance-sicher,
wenn kein Re-Entrance auftreten kann. Ist ein SharedObject reentrance-sicher, so sieht es
im Falle des Single-Threads nach außen so aus, als ob seine Methoden atomar sind.
Wie oben erläutert, sollte es erlaubt sein, innerhalb einer SharedObject-Methode auf
andere SharedObjects zuzugreifen. Auf der anderen Seite ist es für das SharedObject bzw.
dessen Provider nicht notwendig aus einer SharedObject-Methode Events zu senden, da
dies für die Event-Quelle selbst keinen Informationszuwachs bedeutet. Deshalb dürfte die
folgende Forderung keine allzu große Einschränkung der Modellierungsmöglichkeiten
darstellen. Auf der anderen Seite gewinnt man eine größere Klarheit bei der
Komponentenentwicklung, weil der Zugriff auf ein SharedObject und die
Eventverarbeitung besser getrennt ist.
Anforderung an ein SharedObject: Eine SharedObject-Methode darf innerhalb des
eigenen Threads keine Events senden.
83
Dieses Prinzip besagt, dass eine Komponente sich auf eine einzelne Aufgabe konzentriert und
Teilaufgaben, die sich nicht direkt auf diese Aufgabe beziehen, an andere Komponenten delegieren soll.
EVALUATION
115
Diese Forderung impliziert, dass während des Zugriffs auf ein SharedObject nicht in den
Modus der Eventverarbeitung gewechselt werden darf.
Satz über Re-entrance-Sicherheit: Falls eine Anwendung eine „saubere“ und
hinsichtlich der SharedObjects eine geschichtete Architektur besitzt und wenn die
SharedObject-Methoden die obige Forderung erfüllen, dann ergibt sich, dass
SharedObjects reentrance-sicher sind.
Erläuterung und Beweis: Um zu zeigen, dass der Satz gilt, muss zuerst geklärt werden,
was unter einer „sauberen“ Architektur zu verstehen ist. Saubere Architektur besagt, dass
es keine versteckten Wege gibt, um auf eine Komponente zuzugreifen. Ein solcher
versteckter Weg besteht z.B. darin, in einer Event-Methode eine Referenz auf die Quelle
mitzugeben (vgl. Abschnitt 3.3.1). Durch diese Referenz ist es möglich auf QuellKomponenten zuzugreifen, obwohl dies nicht aus der Kompositionsbeschreibung
ersichtlich ist.
Anders ausgedrückt: Sei G = ( N ,V ) ein gerichteter Graph mit N die Menge der Instanzen
der atomaren Komponenten und V ⊆ N × N die Menge, der durch die Verbindungen der
Ports induzierten Kanten. D.h. n, m ∈ N hat genau dann eine Kante in V, wenn n ein Port p
und m Port q besitzt, die miteinander direkt oder indirekt verbunden sind84. Die Richtung
der Kante ergibt sich aus dem Typen des Ports, ist p ein SharedObject-Client oder ein
Event-Quelle, dann geht die Kante von n aus, d.h. (n, m) ∈ V . Andernfalls geht die Kante
nach n ein, d.h. (m, n) ∈ V . Sind n und m SharedObjects spricht man auch von einer
SharedObject-Kante. Eine saubere Architektur bedeutet dann, dass der Kontrollfluss eine
Komponente nur über die ausgehenden Kanten verlassen kann. Durch den Graphen lässt
sich auch definieren was unter geschichteter Architektur hinsichtlich der SharedObjects zu
verstehen ist. Es bedeutet, dass der durch die SharedObject-Kanten induzierte Teilgraph
azyklisch ist.
Der Beweis läuft nun wie folgt: Wenn der Kontrollfluss eine Komponente über eine
SharedObject-Kante betreten hat, dann kann er wegen der sauberen Architektur und der
Bedingung, dass innerhalb eines SharedObjects keine Events geschickt werden dürfen, die
Komponente nur über eine SharedObject-Kante wieder verlassen. Damit verbleibt er
während der gesamten Zeit der Ausführung einer SharedObject-Methode innerhalb des
durch die SharedObjects induzierten Teilgraphs. Da dieser aber nach Voraussetzung
azyklisch ist, kann es zu keinem Re-Entrance kommen.
84
„Indirekt“ bedeutet dabei, dass die Ports über abstrakte Komponenten miteinander verbunden sind. Auf
eine rekursive Definition der Verbindung wird hier verzichtet.
116
Anwendung des Lösungsansatz: Anhand zweier Modellierungen soll gezeigt werden, wie
man die obige Forderung bei der Gestaltung von FlexiBeans umsetzen kann. Im ersten Fall
(Abbildung 7-7) ist das Propagieren der Änderung ganz in der Verantwortung der
Provider-Komponente.
Abbildung 7-7 Weitertransport einer Anfrage bei ADOS-X mit impliziter Änderungspropagierung
Im zweiten Fall (Abbildung 7-8) wird die Änderungspropagierung von der ClientKomponente angestoßen. Im Folgenden werden die beiden Modellierungen erläutert.
Abbildung 7-8 Weitertransport einer Anfrage bei ADOS-X mit expliziter Änderungspropagierung
In Abbildung 7-7 bekommt der Sortierer ein Triggersignal. Daraufhin entnimmt er die
Messages aus Postfach A und legt sie in Postfach B. Das Entnehmen und das Einfügen
haben als Seiteneffekt, dass das betroffene Postfach einen eigenen Thread startet, der die
Änderung über den PfChanged-Port anzeigt. Nach Außen sieht es so aus, als ob dieser
Thread die ganze Zeit das SharedObject beobachtet und jede Änderung propagiert.
Bei der Modellierung, die in Abbildung 7-8 zu sehen ist, wird das Propagieren der
Änderung explizit angestoßen. Der Ablauf sieht ähnlich aus wie in Abbildung 7-7. Jedoch
werden beim Zugriff auf das SharedObject von diesem keine Events generiert. Stattdessen
sendet der Sortierer nach getaner Arbeit den Provider-Komponenten eine probChangeNachricht.
Dies
veranlasst
das
Postfach
die
Änderungen
ihres
SharedObjects weiterzugeben.
EVALUATION
117
Die erste Modellierung hat den Vorteil, dass sie mit weniger Verbindungen auskommt und
es damit weniger Möglichkeiten gibt, beim Zusammenstecken einen Fehler zu machen.
Auch ist sie einfacher zu implementieren, weil die ganze Eventverarbeitung in einer
Komponente gekapselt ist. Auf der anderen Seite sind Threads im allgemeinen teure
Konstrukte und sie können zu Deadlocks führen. Zum anderen erlaubt die zweite
Modellierung eine größere Kontrolle durch den Client. Z.B. ist im obigen Beispiel ein
konsistenter Systemzustand erst dann erreicht, wenn die entnommenen Anfragen in das
andere Postfach eingefügt werden. Erst danach sollte der neue Zustand der SharedObjects
veröffentlicht werden.
Ein anderer Punkt, der mit der Semantik der SharedObjects zusammenhängt, ist die
Kardinalität der an einen SharedObject-Client angeschlossenen SharedObject-Provider.
Die FlexiBean-Spezifikation legt fest, dass ein Client höchstens mit einem Provider
verbunden werden darf. Hierin drückt sich eine gewisse Symmetrie zwischen der Clientund der Provider-Komponente aus. Bei den Prototypen bedurfte es jedoch einer
Komponente, die die Postfächer-Instanzen zusammenfasst und dem Benutzer anzeigt,
damit er aus der Liste ein Postfach auswählen kann. Eine Modellierung dafür, ist in
Abbildung 7-9 zu sehen.
Abbildung 7-9 Komponente, die es erlaubt, aus einer Liste von Postfächern eins auszuwählen
Auf der linken Seite können die Postfächer bei dem Auswähler eingesteckt werden. Auf
der rechten Seite wird dann der Inhalt des ausgewählten Postfachs (grau markiert)
durchgeschleift. Da jedoch ein Client nur mit einem Provider verbunden werden darf,
musste bei der gefundenen Lösung ein Adapter vorgeschaltet werden, der die Polarität
umdrehte. Statt mit solchen technischen Tricks zu arbeiten, sollte es auch ein Konstrukt
geben, dass es erlaubt SharedObject-Clients mit mehreren Providern zu verbinden.
Graphisch kann ein solcher Client wie in Abbildung 7-9 durch eine unausgefüllte Raute
gekennzeichnet werden.
7.2.5 Sonstige Erweiterungsvorschläge
In diesem Abschnitt werden weitere Punkte kurz angerissen, die sich bei der
Auseinandersetzung mit dem FlexiBean-Ansatz ergaben:
Annotationen: Wie in Abschnitt 3.1.3.11 angemerkt, sollte der Benutzer beim Anpassen
dadurch unterstützt werden, dass das Systemdesign durch zusätzliche Informationen
118
erläutert wird. Kehrseitig dazu sollte der Benutzer seine Anpassung kommentieren
können. Deshalb sollte das CAT-Format auch Kommentare erlauben, auf die auch durch
die Tailoring-API zugegriffen werden kann. Die Struktur der Kommentare sollte das
Annotieren von ganzen Komponenten, aber auch einzelner Komponenteneigenschaften
oder Verbindungen erlauben. Eine mögliche Umsetzung kann sich an die durch javadoc
gegebene Kommentarstruktur orientieren [Gosling, Joy und Steele (1996, Kapitel 18)].
Zusätzlich sollte eine umfassende Lösung festlegen wie die Dokumentation, die zu den
implementierten Komponenten vorliegt, in das System integriert werden kann.
Anpassungsprozesse und Bedingungen („constraints“): Bedingungen stellen in
Gewisserweise einen Spezialfall von Kommentaren dar. Sie können sich auf eine
einzelne Komponente beziehen oder komponenten-übergreifend gelten. In ACME und
vor allem in Wright sind Bedingungen ein Grundbestandteil des
Komponentenansatzes85. Für anpassbare Systeme wurde von Stiemerling der „tailoring
constraints“ gebraucht (Abschnitt 3.1.3.7). Bei der Umsetzung des Konzepts im
FlexiBean-Ansatz sollte zwischen der Darstellung der Bedingungen im CAT-Format
und der Überprüfung der Bedingungen unterschieden werden. Nur der erste Teil muss
allgemein spezifiziert werden. Die Überprüfung könnte einer (anwendungsspezifischen)
Anpassungsumgebung überlassen werden. Bei der Überprüfung von Bedingungen ist zu
beachten, dass Anpassung ein dynamischer Prozess ist. Kopiert man z.B. ein Postfach
und wird die ID mitkopiert, so wird die Bedingung der Eineindeutigkeit zeitweilig
verletzt. Ein anderes Beispiel einer Inkonsistenz ergibt sich beim Prototyp, wenn bei
einem Sortierer an einen Ausgang (OK- bzw. KO-Port) kein Postfach angeschlossen
ist86. Man sollte deshalb bei der Einführung von Bedingungen auch festlegen, wann die
Bedingungen gültig sind, z.B. am Ende eines Anpassungsprozess. Dafür sollte ein
Protokoll spezifiziert werden, dass festlegt, wie ein Anpassungsprozess auszusehen hat.
Dieses Protokoll müsste auch einen Transaktionsmechanismus beinhalten, so dass ein
Anpassungsvorgang, der zu Inkonsistenzen führt, wieder rückgängig gemacht werden
kann.
Späte Verdrahtung: Bei Verdrahtung der Komponenten sollte ausgenutzt werden, dass
die Komponenten erst zur Laufzeit verbunden werden. Damit kann eine dynamische
Konsistenzprüfung unter zur Hilfenahme der beteiligten Komponenten erfolgen. Da
diese Prüfung erst zur Laufzeit geprüft wird, kann man auch von einer späten
Verdrahtung sprechen. Sinnvoll ist es auch, ein Protokoll festzulegen, mit der die
85
Ein Beispiel für eine Bedingung, die sich auf das gesamte System bezieht, besteht in der Forderung nach
einer eineindeutigen Postfach-ID (Abschnitt 7.2.1).
86
Bei der Implementierung wird so verfahren, dass in dem Fall passende Anfragen nicht weitertransportiert
werden. Stattdessen wird durch das Anschließen eines Postfachs der Weitertransport aktiviert. Dieser Seiteneffekt kann aber in einem Anwendungsszenario, bei dem der Weitertransport explizit durch den Benutzer
ausgelöst werden soll, zu unliebsamen Seiteneffekten führen.
EVALUATION
119
beteiligten Komponenten einen Verbindungstyp untereinander aushandeln können und
falls dies fehlschlägt, eine Fehlermeldung produzieren.
Glue Code: Durch ein solches Protokoll kann auch die starke Typisierung gelockert
werden, die manchmal dazu zwingt, neue Adapter-Komponenten einzuführen.
Trotzdem wird es sich nicht vermeiden lassen, dass es gerade bei Komponenten von
verschiedenen Herstellern zu „compositional mismatches“ kommt. Achermann et al.
(2001) sprechen auch vom Glue bzw. glue code, der dazu dient, die Unverträglichkeit
von Komponenten zu überwinden. Sie fordern deshalb, dass eine Skriptsprache ein
Grundelement einer CDL sein sollte. Der glue code kann dann mit Hilfe dieser
Skriptsprache geschrieben werden. Inwieweit eine solche Skriptsprache für den
Benutzer sinnvoll ist, damit er im Notfall möglichst einfach selber einen ad hoc Adapter
schreiben kann, und wie sie im Falle des FlexiBean-Ansatz aussehen soll, ist eine offene
Frage.
Steckverbindungen: Die Evaluation der Dekomposition ergab, dass zu viele
Verbindungen für den Anwender verwirrend wirken. Deshalb sollten sie
zusammengefasst werden. Eine technische Lösung besteht darin, dass es im FlexiBeanAnsatz nicht nur erlaubt ist, abstrakte Komponenten zu definieren, sondern auch
abstrakte Ports und Verbindungen.
120
121
8 ZUSAMMENFASSUNG UND AUSBLICK
In der vorliegenden Arbeit wurde gezeigt, wie sich mit Hilfe des FlexiBean-Ansatzes eine
erweiterte Zugriffskontrolle realisieren lässt. Die Realisierung durch einen Prototyp diente
in der Arbeit dazu, die Modellierungsmöglichkeiten, die durch den FlexiBean-Ansatz
gegeben sind, zu untersuchen. Ein besonderes Augenmerk lag auf der Frage, ob die
Modellierungsmöglichkeiten eine für den Endanwender verständliche Dekomposition
ermöglichen.
Hinsichtlich der Frage, inwieweit die Anpassungsmöglichkeiten des Prototyps für den
Anwendungskontext relevant sind, konnte durch die Analyse des im Anwendungsfeld
erhobenen Materials gezeigt werden, dass in der Gestaltung der Zugriffskontrolle das
größte Konfliktpotential lag. Die Analyse zeigte zudem, dass die Beziehung zwischen den
externen Büros und der internen Konstruktionsabteilung87 durch ein dialektisches
Verhältnis von Kooperation und Konkurrenz geprägt ist. Aus dieser Dialektik entspringt
bei der internen Konstruktionsabteilung ein erhöhtes Kontrollbedürfnis. Diesem Umstand
kommt bei der Gestaltung eines Telekooperationssystems besondere Bedeutung zu, weil
hier durch die Virtualisierung andere Kontroll-Mechanismen (wie z.B. die soziale
Kontrolle) wegfallen.
Bei der Frage nach der Angemessenheit der Anpassungsmöglichkeiten konnte durch die
Analyse gezeigt werden, dass der Mechanismus der klassischen Zugriffskontrolle mit
seiner dichotomen Einteilung in „erlaubt“ und „verboten“, für diesen Anwendungsfall
nicht adäquat ist. Denn die Extrempositionen, die sich im Falle externe Büros – interne
Konstruktionsabteilung gegenüberstanden, sind nicht „erlaubt“ versus „verboten“, sondern
„automatischer Zugriff“ versus „manuelle Kontrolle“. In der Arbeit wurde aufgrund dieser
Erkenntnis ein Ansatz zur Kontrolle entwickelt, der von der Sicht des Kontrolleurs
ausgeht, und der die Kontrollmechanismen in drei Kategorien einteilt. Nach dem Modell
gibt es Mechanismen zur ex-ante (vor), zur uno-tempore (während) und zur ex-post (nach)
Kontrolle. Die Einteilung erfolgt dabei nach dem Zeitpunkt, an dem über die Legitimität
des Zugriffs entschieden wird. Der Mechanismus der klassischen Zugriffskontrolle stellt
dabei eine ex-ante Kontrolle dar, die manuelle Kontrolle gehört der uno-tempore Kategorie
an. Durch eine Protokollierung kann der Zugriff einer ex-post Kontrolle unterzogen
werden. Durch den Prototyp wurden diese Kontrollmechanismen realisiert. In der Arbeit
konnte gezeigt werden, dass in diesem für den Anwendungskontext wichtigen Punkt der
Zugriffskontrolle der Prototyp gegenüber der klassischen Zugriffskontrolle eine größere
87
Auf der Seite des Stahlwerks war die interne Konstruktionsabteilung formal für die Kooperation zuständig.
122
Flexibilität besitzt und für den Anwendungsfall adäquatere Kontrollmechanismen
bereithält.
Eine spezielle Form der ex-ante Kontrolle besteht darin, vorweg eine Obergrenze für einen
automatischen Zugriff festzulegen. Für den Anwendungsfall kann ein solches Kontingent
hilfreich sein, weil damit der Befürchtung entgegengetreten werden kann, dass das Archiv
von außen „leergesaugt“ wird. In der vorliegenden Arbeit wurde gezeigt, wie der Prototyp
mit Hilfe eines neuen Komponententyps, dem Kontingentierer, um diesen
Kontrollmechanismus erweitert werden kann. Damit wurde gezeigt, dass der Prototyp
hinsichtlich der Zugriffskontrolle nicht nur anpassbar, sondern auch erweiterbar ist.
Bei der Frage nach der Verständlichkeit der Dekomposition zeigte sich, dass die
bestehenden Interessenkonflikte die Evaluation im Anwendungsfeld erschwerten, da sich
die technischen nicht von den betriebspolitischen Aspekten trennen ließen. Deshalb wurde
die Dekomposition zusätzlich mit Hilfe der „Thinking-Aloud“-Methode mit verschiedenen
Testpersonen außerhalb des OrgTech-Projekts evaluiert. Die Tests lassen die These
berechtigt erscheinen, dass eine für den Endanwender verständliche Dekomposition
gefunden wurde. Denn die Probanden konnten sowohl die Funktion der einzelnen
Komponenten, als auch die Arbeitsweise der Dekomposition nachvollziehen. Es zeigte
sich, dass die Bedeutung einer Komponenteninstanz vor allem über die Benennung und
weniger über die Verdrahtung erschlossen wird. Als Konsequenz sollte sich die
Funktionsweise der Komponente möglichst vollständig aus der Benennung ergeben, so
dass nicht auf die Verdrahtung Bezug genommen werden muss.
Damit hat die Arbeit für den Fall der Zugriffskontrolle gezeigt, dass es im FlexiBeanAnsatz möglich ist, eine aufgabenorientierte Sicht bis hinunter zu den Grundkomponenten
aufrechtzuerhalten.
Da das Zerlegen des Systems vom WAM-Ansatz gelenkt wurde, stellt er einen möglichen
Ausgangspunkt für eine Methodik zur Gestaltung von komponentenbasiert-anpassbaren
Systemen dar, der die Kluft zwischen Anwendung und Systemarchitektur verringert. Denn
die Dekomposition folgt mit ihrem aufgabenorientierten Aufbau und ihrer Aufteilung
entlang der WAM-Metaphern88 den Grundprinzipien des WAM-Ansatzes. Eine zentrale
Rolle bei der Umsetzung bestand darin, dass eine Zugriffsanfrage als eine E-Mail realisiert
wurde. Durch die E-Mail konnte eine Zugriffsanfrage in einer für den Benutzer
verständlichen Form dargestellt werden. Zudem konnte so an die bestehende Praxis
angeknüpft werden. Mit Hilfe der Anfrage-E-Mail konnte nicht nur die Funktion der
88
Die wichtigsten WAM-Metaphern sind Werkzeug, Material, Automat, Arbeitsumgebung und Behälter
ZUSAMMENFASSUNG UND AUSBLICK
123
einzelnen Komponenten, sondern auch die Verbindungen zwischen den Komponenten
erklärt werden.
Jedoch bedarf es noch weiterer Forschung in anderen Anwendungsfeldern, um aus dem
WAM-Ansatz eine allgemeine Methodik zur Gestaltung von komponentenbasiertanpassbaren Systemen zu entwickeln. Insbesondere sollte man die in der Arbeit nicht
untersuchte Gestaltung der Benutzerschnittstelle und deren Anbindung an die
Funktionalität des Systems analysieren. Außerdem besteht bei der Modellierung von
anpassbaren
WAM-Werkzeugen
und
anpassbaren
WAM-Materialien
noch
Forschungsbedarf. In der Arbeit konnte gezeigt werden, dass dazu der FlexiBean-Ansatz
erweitert werden sollte.
Aus der Analyse des Prototyps ergaben sich vor allem zwei Punkte, in denen der
FlexiBean-Ansatz erweitert werden sollte: 1. Reflexive Anpassungskomponenten und 2.
ein Persistenz-Mechanismus.
Die Forderung, den FlexiBean-Ansatz um reflexive Anpassungskomponenten zu erweitern,
ergab sich aus dem Versuch, ein anpassbares WAM-Werkzeug zu modellieren. So zeigte
sich, dass es der FlexiBean-Ansatz momentan nicht zulässt, aus einer Komponente heraus
auf die, durch die Evolve-Plattform erzeugte, Komponentenstruktur zuzugreifen und zu
verändern bzw. neue Komponenteninstanzen zu erzeugen. Wie in der Arbeit gezeigt, hat
dies zur Folge, dass anpassbare Werkzeuge sich nur eingeschränkt modellieren lassen. In
der Arbeit wurde ein Lösungsansatz zur Erweiterung des FlexiBean-Ansatzes aufgezeigt,
der es einer Komponente ermöglicht, auf ihre eigene, durch die Evolve-Plattform
gegebene, Repräsentation und auf die Kompositionsstruktur zuzugreifen und sie
anzupassen. Eine solche Komponente wurde in der Arbeit als reflexive
Anpassungskomponente bezeichnet. Neben der Modellierung von anpassbaren WAMWerkzeugen ermöglicht es diese Art von Komponenten auch anpassungsspezifische
Anpassungsumgebungen zu modellieren.
Die Forderung nach einem Persistenz-Mechanismus ergab sich daraus, dass es im
FlexiBean-Ansatz nicht möglich ist, den Zustand einer Komponenteninstanz so
abzuspeichern, dass keine andere Instanz darauf zugreifen kann. Im Falle des Prototyps
sollte der Zustand der Postfach-Komponente gespeichert werden. Deshalb sollte der
FlexiBean-Ansatz um einen Persistenz-Mechanismus erweitert werden. Es wurde gezeigt,
dass eine minimale Anforderung an einen solchen Mechanismus in der Bereitstellung einer
eineindeutigen Komponenteninstanz-ID liegt. Ein kompletter Persistenz-Mechanismus
sollte aber den gesamten Lebenszyklus einer persistenten Komponente unterstützen, so wie
dies z.B. bei den Enterprise JavaBeans (EJBs) der Fall ist.
124
Forschungsbedarf besteht ebenfalls noch in der Anpassung der Dekomposition durch die
3D-Anpassungsumgebung. Sie wurde in der vorliegenden Arbeit nicht untersucht, aber die
Analyse des Prototyps und die Tests mit dem Papier MockUp legen nahe, dass es sinnvoll
ist, wenn anwendungs- und benutzerspezifische Anpassungsumgebungen in die generische
Anpassungsumgebung integriert werden können.
Zum Abschluss sei hier noch ein Ausblick auf die Gestaltung und den
Entwicklungsprozess bei gruppenwirksamer Anpassbarkeit geworfen. Die vorliegende
Arbeit ist unter diesen Gesichtspunkten interessant, weil sie die Frage aufwirft, wie mit
Konflikten bei gruppenwirksamer Anpassbarkeit im Software-Prozess umgegangen
werden kann. Hierbei ist zu berücksichtigen, dass bei der Gestaltung von
gruppenwirksamer Anpassbarkeit, die Systemgestaltung keine alleinige Angelegenheit des
zukünftigen Anwenders, sondern ein doppelter Aushandlungsprozess der vom System
betroffenen Personen ist. So muss die Gestaltung zwischen den Beteiligten ausgehandelt
werden und dies vor dem Hintergrund, dass beim Gebrauch des Systems sich dieser
Aushandlungsprozess bei der Anpassung des Systems durch den Benutzer wiederholt.
Diese Zukunftsoffenheit macht es aber schwierig, vor dem Einsatz in der Praxis zu
beurteilen, ob die Anpassungsmöglichkeiten, die aufgrund des ersten Aushandlungsprozess
in die Systemgestaltung eingeflossen sind, im zweiten Aushandlungsprozess auch
tatsächlich wahrgenommen werden.
Der Arbeit lag die Hypothese zu Grunde, dass es bei gruppenwirksamer Anpassbarkeit
nicht ausreicht, die verschiedenen Anforderungen als Alternativen in das System zu
integrieren89. Das System sollte auch Wege bereitstellen, die eine Kompromisslösung
unterstützen. Die Hypothese besitzt zwar eine gewisse Plausibilität, ihr fehlt aber noch die
empirische Bestätigung.
Für die Praxis bietet sich zudem die evolutionäre Softwareentwicklung an. So sollte man
bei der Einführung des Prototyps in die Praxis aus verschiedenen Gründen zunächst nur die
in Abschnitt 6.3 beschriebene „kleine“ Lösung, die nur eine manuelle Kontrolle erlaubt,
verwirklichen. Diese Lösung, und das ist für die Einführung wichtig, hält aber die Option
bereit, dass sie zu einer „großen“ Lösung mit einer erweiterten Zugriffskontrolle – wie in
Abschnitt 6.4 dargestellt – ausgebaut werden kann. Gäbe es diese Option nicht, so würde
von allen Beteiligten zu Recht kritisiert, dass das Telekooperationssystem einen zu
geringen Mehrwert besitzt. Hierbei zeigt sich der Vorteil, dass der Komponentenaufbau
89
Im Gegensatz dazu würde es bei der Individualisierung theoretisch ausreichen, die verschiedenen
Anforderungen als Alternativmöglichkeiten anzubieten. Deshalb macht es Sinn, bei einer Methodik zur
Gestaltung von Anpassbarkeit die unterschiedlichen Kategorien der Anpassbarkeit, die Oberquelle (vgl. Seite
8) aufgestellt hat, zu berücksichtigen.
ZUSAMMENFASSUNG UND AUSBLICK
125
des Systems nicht nur die Anpassbarkeit, sondern auch die evolutionäre Entwicklung
unterstützt.
126
ANHANG A
Abbildung A-1 Ursprüngliche Dekomposition ohne die Kontingentierer- und Retoure-Komponente
ANHANG B
127
ANHANG B
Eingang
Eingang
Ausgang
Ausgang
Nicht erlaubte Anfragen
Einstellungen
Eingang
Eingang
NEIN
Darf Anfrage auf
ADOS zugreifen ?
JA
Eingang
Kont.Postfach
Ausgang
Eingang
Ausgang
Geändert
Kontingent
überschritten
✂
JA
Eingang
✄
✄
Ist Kontigent
überschritten?
Einstellungen
NEIN
Eingang
Kont. OK Postfach
Ausgang
Einstellungen
Eingang
Soll Anfrage protokolliert
werden ?
NEIN
JA
Eingang
Zum Kopierer
Ausgang
Ausgang
Prokollierte
Anfragen
Eingang
Eingang
Kopie
Lege Kopie zur
Protokollierung an !
Orginal
Eingang
Nach Ados
Ausgang
Eingang
Frage ADOS ab !
Ausgang
Eingang
Retour
Ausgang
Eingang
✁
Vertausche Absender
und Empfänger !
Ausgang
Eingang
Ausgang
Ausgang
Abbildung B-1 Dekomposition mit aussagekräftigeren Bezeichnungen, zusammengefassten Verbindungen
und linearen Aufbau
128
129
9 LITERATURVERZEICHNIS
Achermann et al. (2001) ACHERMANN, F. ; LUMPE, M. ; SCHNEIDER, J. ; NIERSTRASZ, 0.:
Piccola - a Small Composition Language. In: BOWMAN, H. ; DERRICK, J. (HRSG.):
Formal Methods for Distributed Processing, an Object Oriented Approach.
Cambridge : University Press, 2001 - in Druck
Achermann und Nierstrasz (2001) ACHERMANN, F. ; NIERSTRASZ, O.: Applications =
Components + Scripts - A Tour of Piccola. In: ASKIT, M. (HRSG.): Software
Architectures and Component Technology. : Kluwer, 2001 - in Druck
Allen (1997) ALLEN, R.: A Formal Approach to Software Architect. Doktorarbeit : School
of Computer Science Pittsburg, Carnegie Mellon University, 1997
Allen und Garlan (1997) ALLEN, R. ; GARLAN, D.: A Formal Basis for Architectural
Connection. ACM Transactions on Software Engineering and Methodology, Bd.
6(4), 1997
Arnold und Härtling (1995) ARNOLD, O. ; HÄRTLING, M.: Virtuelle Unternehmen:
Begriffsbildung und -diskussion. Arbeitspapiere der Reihe Informations- und
Kommunilationssystem als Gestaltungselement virtueller Unternehmen; 1995
Bellissard et al. (1995) BELLISSARD, L. ; ATALLAH, S. ; ALAIN KERBRAT ; RIVEILL, M.:
Component-based Programming and Application Management with Olan. In:
Proceedings of the Fifth European Software Engineering Conference. Barcelona,
1995
Bellissard et al. (1996) BELLISSARD, L. ; BEN ATALLAH, S. ; BOYER, F. ; RIVEILL, M.:
Distributed Application. In: Proceedings of the 16th International Conference on
Distributed Computing Systems (ICDCS’96). Hong Kong, 1996
Bentley und Dourish (1995) BENTLEY, R. ; DOURISH, P.: Medium versus mechanism:
Supporting collaboration through customisation.. In: Proceedings of European
Computer-Supported Cooperative Work (ECSCW). Stockholm : Kluwer, S. 133148, 1995
Biemans, Schuurman und Swaak (2001) BIEMANS, M. ; SCHUURMAN, J. ; SWAAK, J.:
Evaluation of user customisation in e-mail and mobile telephones. Präsentiert auf
der First Conference on Universal Access, part of HCI-International 2001. 5-10
August, New Orleans, USA, 2001
Budde und Züllighoven (1990) BUDDE, R. ; ZÜLLIGHOVEN, H.: Software-Werkzeuge in
einer Programmierwerkstatt. Berichte der GMD, Bd. 182, 1990
Carter und Henderson (1990) CARTER, K. ; HENDERSON, A.: Tailoring Culture. In:
Proceedings of 13th IRIS, 1990
Ciupke und Schmidt (1996) CIUPKE, O. ; SCHMIDT, R.: Components as ContextIndependent Units of Software. In: BERKMANNS, R. ; COINTE, P.(HRSG.):
130
Proceedings of ECOOP Workshop on Composability Issues in Object Orientation /
CIOO ´96. Linz : Springer-Verlag, 1996
Cremers und Hibbard (1978) CREMERS, A. ; HIBBARD, T.: Formal Modeling of Virtual
Machines. IEEE Transactions on Software Engineering, 4(5) S. 426-436, 1978.
Dahrendorf (1961) DAHRENDORF, R.: Elemente einer Theorie sozialen Konflikts. In:
DAHRENDORF, R.(HRSG.): Gesellschaft und Freiheit. München, 1961
Davidow und Malone (1993) DAVIDOW, W. ; MALONE, M.: The Virtual Corporation. New
York : Harper Collins, 1993
Floyd (1994) FLOYD, C.: Sooftware Engineering - und dann? Informatik Spektrum, 17, S.
29-37, 1994
Floyd, Reisin und Schmidt (1989) FLOYD, C. ; REISIN, F. ; SCHMIDT, G.: STEPS to
software development with users. In: ESEC'89 - 2nd European Software
Engineering Conference. Bd. 387. Heidelberg : Springer, 1989
Gamma et al. (1996) GAMMA, E. ; HELM, R. ; JOHNSON, R. ; VLISSIDES, J.: Entwurfsmuster
: Elemente wiederverwendbarer Software. Bonn : Addison-Wesley, 1996
Gantt und Nardi (1992) GANTT, M. ; NARDI, B.: In: Human Factors in Computing
Systems (CHI `92). Monterey, 1992
Garlan, Monroe und Wile (1997) GARLAN, D. ; MONROE, R. ; WILE, D.: Acme: An
architecture description interchange language. In: Proceedings of CASCON'97. ,
1997
Gosling, Joy und Steele (1996) GOSLING, J. ; JOY, B. ; STEELE, G.: The Java Language
Specification. Massachusetts : Addison-Wesley, 1996. ftp://ftp.javasoft.com/docs/specs/langspec-1.0.pdf
Gryczan (1996) GRYCZAN, G.: Prozeßmuster zur Unterstützung kooperativer Tätigkeit.
Wiesbaden : Deutscher Universitätsverlag, 1996
Hallenberger (2000) HALLENBERGER, M.: Eine 3D Benutzerschnittstelle für
komponentenbasierte Anpassbarkeit. Diplomarbeit : Rheinische FriedrichWilhelms-Universität, Institut für Informatik III, Bonn, 2000
Henderson und Kyng (1991) HENDERSON, A. ; KYNG, M.: There's No Place Like Home:
Continuing Design in Use. In: GREENBAUM, J. ; KYNG M.(HRSG.): Design At Work.
Hillsdale, New Jersey : Lawrence Erlbaum Associates, Publishers, S. 219 – 240,
1991
Hinken (1999) HINKEN, R.: Verteilte komponentenbasierte Anpassbarkeit von Groupware
- Eine Laufzeit- und Anpassungsplattform. Diplomarbeit : Rheinische FriedrichWilhelms-Universität, Institut für Informatik III, Bonn, 1999
Iacucci et al. (1998) IACUCCI, G. ; PETERS, R. ; STIEMERLING, O. ; WULF, V.:
Telecooperation Systems in Engineering Companies Supplying the Metallurgy
Industry The Experience of the OrgTech Project. In: Globlization of Manufacturing
LITERATURVERZEICHNIS
131
in the Digital Communications Era of the 21st Century -Innovation, Agility, and the
Virtual. Dordrecht : Kluwer, S. 107 – 119, 1998
Johanson (1998) JOHANSON, R.: Groupware: Computer Support for Business Teams.
New-York : The Free Press, 1998
Kahler (1995) KAHLER, H.: From Taylorism to Tailorability : Supporting organizations
with tailorable software and object orientation. In: Symbiosis of Human and
Artifact, Proceedings of HCI'95. Amsterdam : Elsevier, S. 995-1000, 1995
Kilberth, Gryzan und Züllighoven (1994) KILBERTH, K. ; GRYZAN, G. ; ZÜLLIGHOVEN,
H.: Objektorientierte Anwendungsentwicklung - Konzepte, Strategien, Erfahrungen.
Wiesbaden : Vieweg, 1994
Koch und Teege (1999) KOCH, M. ; TEEGE, G.: Support for Tailoring CSCW Systems:
Adaptation by Composition. In: Proc. 7th Euromicro Workshop on Parallel and
Distributed ion Languages and Models. Funchal, Portugal : IEEE Press, S. 146152, 1999
Lampson (1974) LAMPSON, B.: Proctection. ACM Operation System Review, 8, S. 18 –
24 1974
Lumpe (1999) LUMPE, M.: A pi-Calculus Based Approach for Software Composition.
Doktorarbeit : University of Bern, Institute of Computer Science and Applied
Mathematics, Bern, 1999
Mackay (1990) MACKAY, W.: User and customizable Software: A co-Adaptive
Phenomenon. Doktorarbeit : MIT, Bosten, 1990
Mackay (1991) MACKAY, W.: Triggers and barriers to customizing software.
InProceedings of ACM CHI '91 Human Factors in Computing Systems. New
Orleans, Louisianna : ACM/SIGCHI, S. 153-160, 1991
Magee et al. (1995) MAGEE, J. ; DULAY, N. ; EISENBACH, S. ; KRAMER, J.: Specifying
Distributed Software Architectures. In: Proceedings of the Fifth European Software
Engineering Conference. Barcelona, 1995
Malone und Crowston (1994) MALONE, T. ; CROWSTON, K.: The Interdisciplinary Study
of Coordination. ACM Computing Surveys, 1, 1994
McLean et al. (1990) MCLEAN, A. ; CARTER, K. ; LOVSTRAND, L. ; MORAN, T.: Usertailorable systems: Pressing the issues with buttons. In: Proceedings of CHI '90.
Seattle, Washington, S. 175 - 182, 1990
Mertens, Griese und Ehrenberg (1998) MERTENS, P. ; GRIESE, J. ; EHRENBERG, D.:
Virtuelle Organisationen und Informationsverarbeitung. Heidelberg : Springer,
1998
Minsky (1997) MINSKY, N.: Towards Architectural Invariants of. Rutgers University,
1997
132
Mørch (1997) MØRCH, A.: Three Levels of End-user Tailoring: Customization, Integration
and Extension. In: KYNG, M. ; HERNDERSON, H.(HRSG.): Computers and Design in
context. : MIT, S. 51 – 76, 1997
Mørch und Mehandjiev (2000) MØRCH, A. ; MEHANDJIEV, N.: Tailoring as
Collaboration: The mediating Role of Multiple Representations and Application
Units. Computer Supported Cooperative Work (CSCW), 2000
Mørch, Stiemerling und Wulf (1992) MØRCH, A. ; STIEMERLING, O. ; WULF, V.:
Tailorable Groupware. SIGCHI Bulletin, 2, 1992
Muller, Haslwanter und Dayton (1992) MULLER, M. ; HASLWANTER, J. ; DAYTON, T.:
Participatory practices in the software lifecycle. In: In: HELANDER, M. ;
LANDAUER, T. ; PRABHU, P.(HRSG.): Handbook of Human-Computer Interaction.
Amsterdam : Elsevier, S. 255 – 313, 1997
Nardi (1993) NARDI, B.: A Small Matter of Programming - Perspective on end user
computing. Cambrigde : MIT-Press, 1993
Naur (1992) NAUR, P.: Programming as Theory Building. Computing: A Human Activity,
1992
Nett, Fuchs-Frohnhofen und Wulf (2000) NETT, B. ; FUCHS-FROHNHOFEN, P. ; WULF, V.:
Obstacles to Telecooperation in Engineering Networks of the Building Industry. In:
Proceedings of the Participatory Design Conference 2000. New York, S. 143 –
147, 2000
Ng und Kramer (1995) NG, K. ; KRAMER, J.: Automated Support for Distributed Software
Design. In: Proceedings of 7th International Workshop on Computer-aided
Software Engineering (CASE 95). Toronto, Canada, 1995
Nielsen (1992) NIELSEN, J.: Evaluating the thinking aloud technique for use by computer
scientists. In: HARTSON, H. ; HIX, D.(HRSG.): Advances in Human-Computer
Interaction. Norwood : Ablex Publishing, S. 75-88, 1992
Nierstrasz und Tsichritzis (1995) NIERSTRASZ, O. ; TSICHRITZIS, D.: Object-Oriented
Software Composition. New Jersey : Prentice Hall, 1995
Oberquelle (1994) OBERQUELLE, H.: Situationsbedingte und benutzerorientierte
Anpassbarkeit von Groupware. In: HARTMANN, A. ; HERRMANN, T. ; RHODE, M. ;
WULF, V.(HRSG.): Menschengerechte Groupware - Software-ergonomische
Gestaltung und partizipative Umsetzung.. Stuttgart : Teubner, S. 31-50, 1994
Oevermann (1991) OEVERMANN, U.: Genetischer Strukturalismus und das
sozialwissenschaftliche Problem der Erklärung der Entstehung des Neuen. In:
MÜLLER-DOOHM STEPHAN(HRSG.): Jenseits der Utopie: Theoriekritik der
Gegenwart. Franfurt a.M. : Suhrkamp, S. 267-336, 1991
Oevermann (1993) OEVERMANN, U.: Die objektive Hermeneutik als unverzichtbare
methodologische Grundlage für die Anaylse von Subjektivität. Zugleich eine Kritik
der Tiefenhermeneutik. In: JUNG, T. ; MÜLLER-DOOHM STEPHAN(HRSG.):
LITERATURVERZEICHNIS
133
"Wirklichkeit" im Deutungsprozeß: Verstehen und Methoden in den Kultur- und
Sozialwissenschaften. Franfurt a.M., S. 106-189, 1993
Oevermann (1996) OEVERMANN, U.: Strukturale Soziologie und
Rekonstruktionsmethodologie. Vortrag am 11. November im Rahmen der
Ringvorlesung 'Zentrale Themen der Soziologie und Politologie in Frankfurt' zum
25jährigen Bestehen des Fachbereichs Gesellschaftswissenschaften an der Johann
Wolfgang Goethe-Universität, Frankfurt am Main;1996.
http://www.objektivehermeneutik.de/Fachb-Vortrag-1996.PDF
Oevermann (1997) OEVERMANN, U.: Thesen zur Methodik der werkimmanenten
Interpretation vom Standpunkt der objektiven Hermeneutik. ; vorlegt bei: 4.
Arbeitstagung der Arbeitsgemeinschaft objektive Hermeneutik e.V.; Frankfurt a.
M.; April 1997.
http://www.rz.uni-frankfurt.de/~hermeneu/Werkimman-Interpret-1997.rtf
OMG (1999) OMG: Unified Modeling Language Specification Version 1.3, June 1999.
Technischer Bericht; 1999
Oppermann und Simm (1994) OPPERMANN, R. ; SIMM, H.: Adaptability: user-initiated
individualisation. In: OPPERMAN, R.(HRSG.): Adaptive user support, Ergonomic
design of manually and automatically adaptable software. Hillsdale : Lawrence
Erlbaum, 1994
Orlikowski (1989) ORLIKOWSKI, W.: The Duality of Technologie: Rethinking the concept
of technology in organizations. Unveröffentlichtes Manuskript, 1989
Page et al. (1996) PAGE, S. ; JOHNSGARD, T. ; ALBERT, U. ; ALLEN, D.: User Customization
of a Word Processor. In: Proceedings of CHI '96, S. 14-66, 1996
Peltzer (1998) PELTZER, U.: Auswirkungen neuer Organisationsform. In: SPIEß, E.(HRSG.):
Formen der Kooperation: Bedingungen und Perspektiven. Göttingen : Verl. Für
Angewandte Psychologie, S. 169-176, 1998
Povey (1999) POVEY, D.: Optimistic Security: A new access control paradigm. In:
Proceedings of the 1999 New Security Paradigms Workshop, 1999
Povey (1999b) POVEY, D.: Optimistic Security: A new access control paradigm. Panel
Presentation: Highlights of the 1999 New Security Paradigms Workshop. National
Information Systems Security Conference (NISSC). Arlington, Virginia, 1999. http://security.dstc.edu.au/staff/povey/presentations/optimistic.ppt
Radestock und Eisenbach (1996) RADESTOCK, M. ; EISENBACH, S.: Semantics of a
Higher-Order Coordination Language. In: Proceedings of the First International
Conference in Coordination Languages and Models. Cesena, Italy, 1996
Roock und Wolf (1999) ROOCK, S. ; WOLF, H.: Die Raummetapher zur Entwicklung
kooperationsunterstützender Softwaresysteme für die Organisation. Diplomarbeit :
Universität Hamburg, Fachbereich Informatik, Arbeitsbereich Softwaretechnik,
Hamburg, 1999
134
Rossen (1984) ROSSEN, M.: The effects of experience on learning, using and evaluating a
text-editor. Human Factors, 26, S. 723-728, 1984
Rudinger et al. (1999) RUDINGER, G. ; ESPEY J. ; HOLTE H. ; NEUF H.: Der menschliche
Umgang mit Unsicherheit, Ungewissheit und (technischen) Risiken aus
psychologischer Sicht. In: G. MÜLLER K. STAPF.(HRSG.): Mehrseite Sicherheit in
der Kommunikationstechnik. Bonn : Addison-Wesley, S. 69 – 97, 1999
Sandhu und Samarati (1994) SANDHU, R. ; SAMARATI, P.: Access Control: Principles and
Practice. IEEE Communications Magazine, Bd. 9. , 1994
Schneider (1999) SCHNEIDER, J.: Components, Scripts, and Glue: A conceptual framework
for software composition. Doktorarbeit : University of Bern, Institute of Computer
Science and Applied Mathematics, Bern, 1999
Shen und Dewan (1992) SHEN, H. ; DEWAN, P.: Access Control for Collaborative
Environments. In: Proceedings of Computer-Supported Cooperative Work. S. 5158, 1992
Siering (2000) SIERING, P.: E-Mail sicher machen : Sicherheitseinstellung unter Windows.
c't, 12, 2000
Sikkel (1997) SIKKEL, K.: A Group-based Authorization Model for Cooperative Systems.
In: Proc. European Conf. on Computer Supported Cooperative Work (ECSCW'97).
Lancester, S. 345 – 360, 1997
Stevens (2001) STEVENS, G.: Elektronische Archive in Organisationsnetzwerken : Neue
Erfordernisse für die Zugriffskontrolle. In: ROHDE, M. ; RITTENBRUCH, M. ; WULF,
V.(HRSG.): Auf dem Weg zur virtuellen Organisation : Fallstudien,
Problembeschreibungen, Lösungsansätze. Heidelberg : Physica-Verlag, 2001
Stiemerling (1996) STIEMERLING, O.: Anpaßbarkeit von Groupware : Ein regelbasierter
Ansatz. Diplomarbeit : Rheinische Friedrich-Wilhelms-Universität, Institut für
Informatik III, Bonn, 1996
Stiemerling (1997) STIEMERLING, O.: Supporting Tailorability in Groupware through
Component Architectures. In: Proceedings European Conf. on Computer
Supported Cooperative Work (ECSCW'97). Lancester, S. 53-57, 1997
Stiemerling (1997b) STIEMERLING, O.: CAT : Component Architecture for Tailorability.
Rheinische Friedrich-Wilhelms-Universität, Institut für Informatik III, Bonn, 1997
Stiemerling (1998) STIEMERLING, O.: Komponentenbasierte Anpaßbarkeit von
Groupware. In: Proceedings of DCSCW ’98. Dortmund, 1998
Stiemerling (1998) STIEMERLING, O.: FlexiVeans Specifikation : Version 2.0. Rheinische
Friedrich-Wilhelms-Universität, Institut für Informatik III, Bonn, 1998
Stiemerling (2000) STIEMERLING, O.: Component-Based Tailorability. Doktorarbeit :
Rheinische Friedrich-Wilhelms-Universität, Institut für Informatik III, Bonn, 2000
LITERATURVERZEICHNIS
135
Stiemerling und Cremers (1998) STIEMERLING, O. ; CREMERS, A. B.: The Use of
Cooperation Scenarios in the Design and Evaluation of a CSCW System. IEEE
Transactions on Software Engineering, 24, S. 1171-1181 1998
Stiemerling und Wulf (2000) STIEMERLING, O. ; WULF, V.: Beyond 'Yes or No' Extending Access Control in Groupware with Awareness and Negotiation. Group
Decision and Negotiation 9, Kluwer Academic Publishers, 2000
Stiemerling, Won und Wulf (2000) STIEMERLING, O. ; WON, M. ; WULF, V.:
Zugriffkontrolle in Groupware : Ein nutzerorientierter Ansatz.
WIRTSCHAFTINFORMATIK, 4, S. 318 – 328, 2000.
Suchman (1987) SUCHMAN, L.: Plans and Situated Actions. Cambridge, England :
Cambridge University Press, 1987
Sun Microsystems (1997) SUN MICROSYSTEMS: Java Beans : Version 1.01. Technischer
Bericht, 1997
Sun Microsystems (1998) SUN MICROSYSTEMS: JavaMail (TM) API Design Specification
Version 1.1. Technischer Bericht, 1998
Sun Microsystems (2001) SUN MICROSYSTEMS: Enterprise JavaBeans(TM) 2.0
Specification Final Release. Technischer Bericht, 2001
Sydow et al. (1995) SYDOW, J. ; WINDELER, A. ; KREBS, M. ; LOOSE, A. ; VAN WELL, B.:
Organisation von Netwerken : Strukturationstheoretische Analysen der
Vermittlungspraxis in Versicherungsnetzwerken. Opladen; : Westdeutscher Verlag,
1995
Szyperski (1998) SZYPERSKI, C.: Component Software : Beyond Object-Oriented
Programming. Massachusetts : Addison-Wesley, 1998
Tekinerdogan und Aksit (1996) TEKINERDOGAN, B. ; AKSIT, M.: Adaptability in ObjectOriented Software Development: Workshop Report. In: Special Issues in ObjectOriented Programming - Workshop Reader of the 10th European Conference on
Object-Oriented Programming ECOOP '96. S. 7-11, 1996
ter Hofte (1998) TER HOFTE, H.: Working Apart Together - Foundations for Component
Groupware”,. Doktorarbeit : Enschede, the Netherlands: Telematica Instituut, ,
1998. - http://www.trc.nl/publicaties/1998/wat/wath.pdf
Trigg und Bødker (1994) TRIGG, R. ; BØDKER, S.: From implementation to design:
tailoring and the emergence of systemization in CSCW. In: Proceedings of the
conference on Computer Supported Cooperative Work. S. 45-54, 1994
Weltz, Lullies und Ortmann R.G. (1991) WELTZ, F. ; LULLIES, V. ; ORTMANN R.G.:
Häufig geht es bei der Software-Entwicklung gar nicht so sehr um die Sache.
COMPUTERWOCHE, 3, 1991
Wernet (2000) WERNET, A.: Einführung in die Interpretationstechnik der Objektiven
Hermeneutik. Opladen : Leske + Budrich, 2000
136
Won (1998) WON, M.: Komponentenbasierte Anpaßbarkeit : Anwendung auf ein Suchtool
für Groupware. Diplomarbeit : Rheinische Friedrich-Wilhelms-Universität, Institut
für Informatik III, Bonn, 1998
Wulf (1994) WULF, V.: Anpaßbarkeit im Prozeß evolutionärer Systementwicklung. GMDSpiegel, 3, 1994
Wulf (1997) WULF, V.: Konfliktmangement bei Groupware. Braunschweig : Vieweg, 1997
Wulf (1999) WULF, V.: On Search of Tailoring Functions : Empirical Finding and
Implication for Design. Präsentiert auf der OzCHI `99, 28-30 November 1999.
http://www.csu.edu.au/OZCHI99/full_papers/wulf.doc
Wulf (2000) WULF, V.: Ecploration Environments: Supporting Users to Learn
Groupware. Interacting with Computers, 2, S. 265-299, 2000
Wulf und Rohde (1995) WULF, V. ; ROHDE, M.: Towards an Integrated Organization and
Technology Development. In: Proceedings of the Symposium on Designing
Interactive Systems. S. 55 - 64, 1995
Wulf, Stiemerling und Pfeifer (1999) WULF, V. ; STIEMERLING, O. ; PFEIFER, A.:
Tailoring Groupware for Different Scopes of Validity. Behaviour &Information
Technology, 18(3), S. 199 – 212, 1999
Wulf, M. (1995) WULF, M.: Konzeption und Realisierung einer Umgebung
rechnergestüzter Tätigkeiten in kooperativen Aarbeitsprozessen. Diplomarbeit :
Universität Hamburg, Fachbereich Informatik, Arbeitsbereich Softwaretechnik,
Hamburg, 1995
Züllighoven (1992) ZÜLLIGHOVEN, H.: Umgang mit Software oder: Software als Werkzeug
und Material. In: COY, W. ; NAKE, F. ; PFLÜGER, J. ; ROLF, A. ; SEETZEN, J. ;
SIEFKES, D. ; STRANSFELD, R.: Sichtweisen der Informatik. Braunschweig : Vieweg,
S. 141-156, 1992
Züllighoven (1998) ZÜLLIGHOVEN, H.(HRSG.): Das objektorientierte
Konstruktionshandbuch nach dem Werkzeug- & Material-Ansatz. Heidelberg :
dpunkt, 199
137