Sandini Bib
WebFarm
Sandini Bib
Sandini Bib
Hans-Christian Boos
WebFarm Webtechnologien effektiv einrichten und betreiben
An imprint of Pearson Education München • Boston • San Francisco • Harlow, England Don Mills, Ontario • Sydney • Mexico City Madrid • Amsterdam
Sandini Bib
Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ein Titeldatensatz für diese Publikation ist bei Der Deutschen Bibliothek erhältlich.
Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden, sind gleichzeitig auch eingetragene Warenzeichen oder sollten als solche betrachtet werden. Umwelthinweis: Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt. Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus umweltfreundlichem und recyclingfähigem PE-Material.
10 9 8 7 6 5 4 3 2 1 05 04 03 02 01 ISBN 3-8273-1842-4 © 2001 by Addison-Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH, Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Einbandgestaltung: atelier für gestaltung n&h, Niesner & Huber, Wuppertal Lektorat: Sylvia Hasselbach,
[email protected] Korrektorat: Sonja Fischer, München Herstellung: Anna Plenk,
[email protected] Satz: reemers publishing services gmbh, Krefeld (www.reemers.de) Druck und Verarbeitung: Freiburger graphische Betriebe, Freiburg Printed in Germany
Sandini Bib
Inhaltsverzeichnis Vorwort Teil I:
17
Infrastruktur
1 Firewall-Architektur
19
21
1.1
Allgemeine Ansätze für Netzwerksicherheit
21
1.2
1.1.1 Schutz eines Netzknotens durch eine Firewall Schutzmechanismen für Netzwerke 1.2.1 Single Firewall-Lösungen
21 24 24
1.3
1.2.2 Network of Firewalls Zentrale Komponenten einer Firewall 1.3.1 Packetfilter
25 25 25 26 27
1.4
1.3.2 Application Level Gateway 1.3.3 Empfehlung Firewall-Aufbau im internen Netz (GAN Security) Firewall-Aufbau für eine externe Netzanbindung Sicherheitskonstruktionen als Hosting Area
30
1.5 1.6
1.6.1 1.6.2
DMZ I als Netzsegment für extern zugreifbare Dienste 31 DMZ II als Netzsegment für intern zugreifbare Dienste 31
1.6.3
Das interne Segment als Netzsegment für LAN-intern zugreifbare Dienste
32
Schaffung einer DMZ II-Klasse-Zone ohne Außenanbindung Die komplette Hosting-Infrastruktur im Überblick
32 32
1.6.4 1.6.5 1.7
1.8
28 29
Content Security
34
1.7.1 Skriptsprachen und externe Verbindungen 1.7.2 Viren- und Trojanerscanning Intrusion Detection 1.8.1 Netzwerkscanning
34 35 36 37
1.8.2
Logfristen
38
1.8.3 1.8.4
Hinweise Leitdokumentation
39 39
1.8.5
Anwenderdokumentation
40
Sandini Bib Inhaltsverzeichnis
1.8.6 1.8.7
Betriebsdokumentation Entwicklerdokumentation
2 DNS
40 42 45
2.1
Internes und externes DNS
45
2.2 2.3
Struktur des internen Namenraums Aufbau der DNS-Infrastruktur
46 48
2.4
Datenverwaltung
50
3 Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
51
3.1 3.2
Application-Proxy vs. Web-Proxy Proxy-Konzept
51 52
3.3
Zugang zu internen Netzen
52
3.4 3.5
Proxy-Hierarchie Browser-Konfiguration
53 56
3.5.1 3.5.2
56 57
Zentrale Nicht-Zentrale
3.6
Cache 3.6.1 Was kann gecached werden?
57 57
3.7 3.8 3.9
Reverse-Proxy als Anwendungsschutz Normaler Zugriff Zugriff über einen Reverse-Proxy
58 59 59
3.9.1 3.9.2 3.9.3
59 60 61
Reverse-Proxy zur Zugriffskontrolle Reverse-Proxy zur Trennung der Zugriffssegmente HTTPS-Zugriff auf HTTP-Anwendungen
4 Authentifizierung/Autorisation 4.1 4.2 4.3
4.4
Zielsetzung für dieses Dokument Grundsätze der Berechtigungsstruktur WebFarm und Directories
63 63 63 66
4.3.1
WebFarm-Administrationsberechtigungsstruktur
67
4.3.2 4.3.3
WebFarm-Directory Webanwendungen und Berechtigungen
70 70
Authentifizierung 4.4.1 Passwörter 4.4.2 PIN-TAN (nicht empfohlen)
71 71 71
Sandini Bib Inhaltsverzeichnis
4.4.3 4.4.4
Zertifikate Smartcards, Chipkarten und Buttons
72 72
4.5 4.6
4.4.5 Biometrische Verfahren Accounting und Billing-Infrastruktur Daten
72 73 73
4.7
Standardauswertungen
74
4.8
4.7.1 Server 4.7.2 Anwendungen Billing
75 78 80
4.9 4.10 4.11
Content-Management-Übersicht Verteilung und Redaktion Style-Guides und Checking
80 81 82
5 Content-Management und Content-Pool 5.1
5.2
5.3 5.4
83
Information-Modelling 5.1.1 Was ist Information-Modelling? 5.1.2 Der Informationsbegriff
84 84 85
5.1.3 Informationstypisierung Aufbau eines Wissensnetzes 5.2.1 Informationserfassung und -verteilung
85 91 92
5.2.2
96
Sicherheitsstandard
Redaktionskonzept Grundlagen für ein Informationsmodell
97 98
5.4.1 5.4.2
Basisstruktur des Modells Verwendung von Meta-Informationen zur Klassifizierung
98
5.4.3 5.4.4
Weitere Verwendung von Meta-Informationen Mehrsprachigkeit
99 99 100
5.5
Redaktionssystem und Redaktionsverfahren
100
5.6
Informationsanlieferung 5.6.1 Parameter der Anlieferung
102
5.6.2
Methoden zur Anlieferung von Informationen
103
5.6.3 5.6.4
Packages und Packaging Sicherheitsstandard
105 106
Überprüfung von angelieferten Packages Freigabe und Verteilung
107 109
5.7 5.8
102
Sandini Bib Inhaltsverzeichnis
5.8.1 5.8.2 5.9
Rückverteilung von Packages Versionierung
Personalisierung und Profiling-Datenbanken 5.9.1 Wie wird Personalisierung eingesetzt? 5.9.2 Erzeugung von individualisierten Anwendungen nach Gruppen
112 113
5.9.3
120
Aktivierung der Empfehlungen
6 Suchmaschinen 6.1
6.2
6.3
7.2
118
123
Suchverfahren 6.1.1 Volltextsuche 6.1.2 Meta-Suche
123 124 125
6.1.3 Retrieval-Engines 6.1.4 KI-basierte Suchansätze Arbeitsweise der anwendungsübergreifenden Suchmaschine
126 127 127
6.2.1 6.2.2
127 128
Indizierung Content-Berechtigungen
Lokation einer Suchmaschine in einer WebFarm
7 Anwendungsklassifizierung 7.1
110 111
130 131
Klassifizierung 7.1.1 Software Hardware
131 131 132
7.2.1 7.2.2 7.2.3
133 134 134
Eigene Hardware oder virtueller Server Cluster Speicher und Plattenplatz
7.3
Backup, Fallback und K-Fall-Strategien
134
7.4
Datensicherung 7.4.1 Lokale Datensicherung 7.4.2 Datensicherung per Serveranwendung
135 135 135
7.4.3 7.4.4
Kombination von lokaler und zentraler Sicherung Fail-Over- und Fall-Back-Lösung
136 137
7.4.5
Datenströme
137
7.4.6
Fail-Over und Fall-Back
138
7.5
Cluster
139
Sandini Bib Inhaltsverzeichnis
7.6
K-Fall-Absicherung 7.6.1 Räumliche Trennung
140 140
7.7 7.8
7.6.2 Medienaufbewahrung Network-Connectivity GAN-Verbindungen
141 142 142
7.9
Internetanbindung
143
7.10 7.11 7.12
Archivierung Datentransfer Aktualisierungen
144 145 146
Teil II:
Anwendungsspezifische Systemarchitektur
8 Richtlinien für die Implementierung 8.1 8.2
Entwicklungsumgebung Webserver-Softwaredefinition 8.2.1 Produktklassifizierung bei HTTP-Servern 8.2.2
8.3
Spezifische Webserver im Vergleich zu allgemeinen Webservern
149 149 150 150 151
8.2.3 Plug-ins, Module und Includes 8.2.4 Installation Webserver-Hardwaredefinition
152 153 156
8.3.1 8.3.2 8.3.3
157 158 161
Hardwareplattform Hardwaredimensionierung Cluster-Lösungen
9 Application-Server 9.1 9.2
147
Funktionen eines Application-Servers Typisierung allgemeiner Application-Server 9.2.1 Vor- und Nachteile von TAG-basierten Systemen 9.2.2
Vor- und Nachteile von programmorientierten Systemen
163 164 167 167 168
9.3 9.4
9.2.3 Fazit Arbeitskräfte und Ressourcen Entwicklungsumgebungen
169 170 170
9.5 9.6
Entwicklungsstil Schulung und Time-to-Market
171 172
Sandini Bib Inhaltsverzeichnis
9.7
Einsatz eines Application-Servers 9.7.1 Einsatz von spezifischen Application-Servern
173 173
9.7.2
Standardfunktionen von Application-Servern und Webservern
174
9.7.3 9.7.4
Einsatz von allgemeinen Application-Servern Application-Server vs. CGI
174 174
9.8
Hardwarespezifikationen
175
9.9 9.10
Clustering Cookies
176 176
10 Database-Connectivity
177
10.1
Lokale und entfernte Datenbanken
177
10.2
Connectivity auf Datenbankebene 10.2.1 Datenbankzugriff vom Webserver aus
178 178
10.2.2
179
10.3 10.4 10.5
Datenbankzugriff vom Client aus
Kostenbetrachtung Layer-Zugriffe Datenbank-Zugriffsverwaltung
179 180 180
11 Search
183
11.1 11.2
183
11.3
Suche und Content-Management Volltext- und Metasuche auf lokalen Sites 11.2.1 Konfigurationsvoraussetzungen
184 185
Integration in die globale Suchumgebung
186
12 Content-Management 12.1
12.2
Lokales Content-Management 12.1.1 Statischer Content
189 190
12.1.2 Semi-dynamischer Content Content für eine Anwendung
191 198
13 Management der Navigationsstruktur 13.1
189
201
Anwendungsklassifizierung
201
13.1.1
Reine Programmanwendung
201
13.1.2 13.1.3
Allgemein verwendbare Webanwendung Webanwendung für Experten
202 203
13.1.4
Homepages
205
Sandini Bib Inhaltsverzeichnis
13.2
13.3
Navigationsdesign für allgemeine Anwendungen 13.2.1 Seitenlayout
205 206
13.2.2 Navigationselemente 13.2.3 Navigationsebenen Navigationsdesign für Expertenanwendungen
206 208 209
14 Cluster-Management 14.1
14.2
14.3
Cluster-Varianten 14.1.1 Round-Robin-Verfahren
213 213
14.1.2
214
Reverse-Proxy-Cluster
14.1.3 Director-(Hardware)-Cluster Content-Management für Cluster 14.2.1 Dynamische Informationen
216 216 217
14.2.2 Semi-dynamische Informationen 14.2.3 Statische Informationen Entwicklungsvoraussetzungen für Cluster 14.3.1 Datengenerierung
217 218 219 219
14.3.2
219
Vernetzungsvoraussetzungen
15 Secure-Content 15.1
15.2 15.3
213
221
Sicherheitsverfahren
221
15.1.1 15.1.2
221 222
Authentifizierung Übertragungssicherung
Verschlüsselung SSL
222 223
15.3.1
Andere Verfahren
224
15.3.2
Empfehlung
225
16 HTML-Style
227
16.1 16.2 16.3 16.4
Tags und Attribute Pfade und Dateinamen HTML-Generatoren Test des Codes
227 228 229 230
16.5 16.6
Style und Layout – Wo abgelegt? Extensions
231 231
Sandini Bib Inhaltsverzeichnis
17 XML 17.1
17.2
17.3
235 XML-Einführung 17.1.1 XML – Die Vision 17.1.2 XML – Die Entwicklung
235 235 236
17.1.3 XML – Die Sprache Anwendungsfelder für XML 17.2.1 XML als standardisiertes Datenaustauschformat (z.B.: XML/EDI) 17.2.2 Verlagerung der Rechenleistung (Logik) vom Server zum Client (z.B.: Electronic-Banking, Electronic-Commerce) 17.2.3 Flexible Darstellung von Informationen
237 242
243 243
XML in der Praxis 17.3.1 XML-Design 17.3.2 XML-Verwendung
244 244 244
18 CGIs
243
247
18.1
Programmierumgebung
247
18.2 18.3
Programmiersprachen CGI-Entwicklung
247 248
18.3.1 18.3.2 18.3.3
Modulköpfe Dynamische Ausgaben Verwendung von Konfigurationsfiles
248 248 249
18.3.4
Sicherheit von CGIs
249
19 Skriptsprachen 19.1 19.2
Browser-Skriptsprachen
251
19.1.1
252
Einsatz von Browser-Skriptsprachen
Skriptsprachen für den Einsatz auf Serverseite 19.2.1 Entwicklungsstil
20 Java-Style 20.1
251
253 254 255
Grundsätze 20.1.1 Lesbarkeit
255 255
20.1.2 20.1.3
256 257
Fehlerfreiheit Performante Ausführung
Sandini Bib Inhaltsverzeichnis
20.2
Entwicklungswerkzeuge 20.2.1 Reine Java-Entwicklung 20.2.2
20.3 20.4
Erweiterte Funktionen der Java-Entwicklungsumgebung
21.2
21.3
259
Laufzeitumgebung Servlets und Server-Side-Includes
260 261
20.4.1
Einsatz von Server-Side-Anwendungen
261
20.4.2
Einbindung von Includes und Servlets
262
21 Website-Werkzeuge und Serveranwendungen 21.1
258 258
263
Website-Werkzeuge 21.1.1 Charting
263 263
21.1.2 21.1.3 21.1.4
264 265 265
Community-Tools Mind-Map Shops
Serveranwendungen 21.2.1 Share/Teamworkanwendungen
266 266
21.2.2
Streaming
267
Backoffice-Anwendungen 21.3.1 Mailinglisten
267 267
21.3.2
268
Rules-Engine
Teil III: Systembetrieb
269
22 Betriebsumgebung
271
22.1
22.2
22.3 22.4
Administrationsumgebung
271
22.1.1
Administrationsserver
272
22.1.2 22.1.3
Verteilte WebFarm-Betriebspunkte Backup-Verfahren
272 273
Leistungsbeschreibung im Systembetrieb 22.2.1 Teil A: Laufender Betrieb 22.2.2 Teil B: Aufträge
275 275 282
22.2.3 Teil C: Entwicklung Verfügbarkeit Performance
282 283 283
Sandini Bib Inhaltsverzeichnis
23 Hardwaremanagement und Systemüberwachung 23.1
285
Hardwaremanagement 23.1.1 Wartungsverträge 23.1.2 Standardsysteme
285 285 285
23.2 23.3
23.1.3 Hardware-Fault-Betrachtung Überwachungsverfahren Konfigurationsmanagement
286 287 288
23.4
Logging-Verfahren
288
24 Softwaremanagement 24.1
289
Softwaredefinition 24.1.1 Betriebssystem
289 289
24.1.2 24.1.3 24.1.4
Basissoftware Zusatzsoftware Projektsoftware
290 290 291
24.2
Übergabeverfahren 24.2.1 Standardkomponenten 24.2.2 Zusatzkomponenten
291 291 291
24.3
Lizenzkontrolle
292
25 Sicherheitsabstimmung 25.1
25.2
Systemsicherheit 25.1.1 Systemsicherheit bezüglich Software
293 293
25.1.2 Benutzerprofile 25.1.3 Administrationszugriff Logbücher
294 294 295
26 Sicherheitsantragswesen und Betriebsübergabeverfahren 26.1
26.2
297
Antragsverfahren 26.1.1 WebFarm-Auftrag 26.1.2 Content-Management-Systemanträge
297 297 298
26.1.3
299
Sicherheitsrelevante Freischaltungen
Betriebsübergabe
27 Integrationstests 27.1
293
Testumgebung
300 303 303
Sandini Bib Inhaltsverzeichnis
27.1.1 27.1.2 27.2
Aufbau Betriebsunterstützung
303 304
27.1.3 Planung Testverfahren 27.2.1 Funktionstest
304 305 305
27.2.2
Lasttests
305
27.2.3
Sicherheitstests
306
28 Eskalationsverfahren
307
28.1
Definition von Klassen und Verfahren
307
28.2 28.3
WebFarm-Verfahren 28.2.1 Alarmierung Überwachungsstufen
309 310 310
28.4 28.5 28.6 28.7
Zusatzdienste und Pre-Altering Patch-Verfahren Patch-Verwendung Patch-Verteilung
312 313 313 314
28.8 Außerordentliche Patches 28.9 Servicelevel-Definitionen 28.10 Servicelevel nach Dienstverfügbarkeit
314 315 316
28.10.1 Verfügbarkeit und Konventionalstrafen 28.11 Servicelevel nach Reaktionszeit 28.11.1 Reaktionszeiten für den gesamten Betrieb 28.11.2 Kostentransparenz
316 318 318 321
Teil IV: Organisation
323
29 WebConsulting-Projekte
325
29.1
Leistungsübersicht 29.1.1 Struktur und Aufgabenverteilung 29.1.2 Information-Service
325 326 327
29.1.3 29.1.4 29.1.5
327 327 328
Network-Services Information-Management Consulting
Sandini Bib Inhaltsverzeichnis
30 Setting-up von Webprojekten 30.1 30.2 30.3
Projektantrag Gremien und Personal Phasenmodell
Stichwortverzeichnis
331 331 331 332 335
Sandini Bib
Vorwort Der WebFarm Standard ist ein Ansatz für den Aufbau einer Infrastruktur, die Darstellung eines Entwicklungsstandards und die Definition eines Betriebsverfahrens sowie die Aufstellung von Organisationsrichtlinien für die Durchführung von Projekten und Betrieb im Webumfeld. Arago Institut für komplexes Datenmanagement GmbH beschäftigt sich seit 1996 mit dem Hochverfügbarkeitsbetrieb und der Entwicklung von sicheren Webanwendungen und Anwendungen im Umfeld von Webanwendungen. Diesem Standard liegen die mit dem Großkunden gesammelten Erfahrungen im Bereich der Entwicklung und des Betriebs zu Grunde. Diese Erfahrungen sind Grundlage für diesen Standard, der auf einheitlicher Entwicklung, Wiederverwendung von Verfahren, Bausteinen und Informationen, Automatisierung, Serienfertigung und dem kundenorientierten, effizienten Hochverfügbarkeitsbetrieb von Webanwendungen beruht. Der WebFarm-Standard wurde gemeinsam mit großen Kunden entwickelt und befindet sich als Konzept bereits seit mehreren Jahren im Einsatz. Die Produktempfehlungen und Verfahrensweisen des WebFarm-Standards werden kontinuierlich an die sich schnell verändernde IT-Landschaft im Webumfeld angepasst, so dass die Infrastruktur und Wiederverwendbarkeit der implementierten Standardkomponenten erhalten werden kann. In den WebFarm-Standard gehen nur Verfahren ein, die bereits seit mindestens drei Monaten im Einsatz sind. Empfohlene Hard- und Software ist ebenfalls mindestens drei Monate bei Kunden der arago im produktiven Einsatz und wurde vorher strengen Vergleichs-, Sicherheits- und Performancetests unterzogen. In den Empfehlungen sind Produkte der arago enthalten, da diese selbstverständlich in ihrer Entwicklung sehr gut an die Vorgehensweisen des Standards angepasst werden konnten. Die arago-Produkte folgen den gleichen Maßgaben wie der WebFarm-Standard und halten im jeweiligen Anwendungsfall jeder Testumgebung für den WebFarm-Betrieb und die entsprechende Entwicklung stand.
17
Sandini Bib
Sandini Bib
I Infrastruktur
Sandini Bib
Sandini Bib
1 1.1
Firewall-Architektur Allgemeine Ansätze für Netzwerksicherheit
Im folgenden Abschnitt soll auf verschiedene Verfahren der netzwerktechnischen Systemsicherung eingegangen werden. Dabei steht die Etablierung von Firewall-Systemen, deren Vor- und Nachteile sowie deren Zielausrichtung und somit eine Empfehlung für die zu etablierende Infrastruktur innerhalb des Unternehmens im Mittelpunkt.
1.1.1
Schutz eines Netzknotens durch eine Firewall
Filtering Router
Internet
Router
LAN
Abbildung 1.1: Schema einer Firewall mit Filtering Router
Dies ist die einfachste und günstigste Art des Netzwerkschutzes. Es werden einfachste Angriffe abgefangen. Die Logmöglichkeiten sind sehr beschränkt. Es ist keinerlei Attack-Profiling oder Counter-Measures möglich. Eine solche Konstruktion sollte nur in Kleinbetrieben oder zum Schutz einzelner Netzsegmente verwendet werden, z.B. zwischen Abteilungen. Dual Homed Gate
Internet
Router
Packetfilter
Router
LAN
Abbildung 1.2: Schema einer Firewall mit Dual Homed Gate
Dies ist eine sehr oft eingesetzte Firewall-Variante. Es besteht durch die Rechner-Router-Kombination ein guter Schutz der inneren Netze. Serviceangebote nach außen verlangen Zugriffe auf eigentlich geschützte Netzsegmente. Für
21
Sandini Bib 1 Firewall-Architektur
Hochsicherheitssysteme ist ein solches Setup nicht geeignet. Die Loggingmöglichkeiten für den Servicezugriff sind beschränkt. Bei dieser Konfiguration steht normalerweise nur der eine Firewallhost zwischen dem potenziellen Angreifer und dem zu schützenden Netzwerk. Triple Homed Gate
Internet
Router
Packet Filter
Router
LAN
External Segment
Abbildung 1.3: Schema einer Firewall mit Triple Homed Gate
Grundsätzlich folgt diese Variante dem gleichen Prinzip wie den Dual Homed Gate, allerdings werden nach außen anzubietende Dienste in einem eigenen Netzwerksegment angebunden. Dieses Segment ist durch eine weitergehende Konfiguration des Gates geschützt. Guter Schutz des Netzwerkes ist gewährleistet. Die einzige wirkliche Hürde ist allerdings immer noch das eine Gateway. Die zu extrahierenden Logginginformationen sind für Hochsicherheitssysteme nicht ausreichend. Bei hoher Belastung aus internen LANs und Service-LANs wird das Gate wegen der unterschiedlichen Konfigurationen oft zum Flaschenhals. Firewalls mit DMZ
Internet
Router
Packetfilter
Application Level Gateway
Router
LAN
Abbildung 1.4: Normaler Host-Firewall
Gezeigt wird die Variante mit zwei Dual Homed Gates. In der so genannten DMZ (demilitarized Zone) werden alle nach außen anzubietenden Dienste angebunden. Ein solches Setup ermöglicht ein sehr gutes Extrahieren jeder Log- und Trafficinformationen. Der Zugriff der Services auf das innere Netzwerk ist separat gesichert und die einzelnen Zugriffsparameter werden zumeist durch Proxyservices oder Circuit-Level-Proxies realisiert. Das heißt, gewöhnlich gibt es bei einem solchen Setup keinerlei Zugriffe direkt auf interne Komponenten. Es besteht außerdem eine klare Trennung von Application-Level- und Filtering-Gate.
22
Sandini Bib Allgemeine Ansätze für Netzwerksicherheit
Application Level Gateway
Internet
Router
Packetfilter
Router
LAN
Abbildung 1.5: DMZ
Die DMZ wird nur durch den Router abgeschlossen, der 2. Rechner ist ein reines Application-Level Gate. Auch hier können Logginginformationen gut extrahiert werden. Im Vergleich zur Variante 1 fällt der Zugriffsschutz des Services auf das innere Netzwerk auf den Router zurück. Diese Variante wird oft bei hohem Traffic aus dem internen Netz verwendet, da das Application Gate sonst keinen Belastungen ausgesetzt ist.
Internet
Router
Packetfilter
Router
Application Level Gateway
Router
LAN
Abbildung 1.6: Split DMZ
Grundsätzlich bestehen hier die gleichen Möglichkeiten wie bei einer normalen DMZ- Firewall. Allerdings wird die DMZ in 2 separate Segmente geteilt. Dies ermöglicht z.B. das Aufsetzen von sicheren Datenbankspiegeln für externe Services. Es erscheint sinnvoll, eine solche Variante einzusetzen, wenn extern angebotene Services eine hohe Anzahl Zugriffe auf interne Dienste produzieren. Military Level Firewalls Encaps Filter
Screening Router
Auditing Host
Packet Filter
Splitting Router
Application Gateway Splitting Router
Circuit Gateway
Internet Connection
Screening Router
1st Screened Subnet
Fingerprint Authentication
Screening Router
2nd Screened Subnet
Log Storage
Abbildung 1.7: Military-Level-Firewall 23
Sandini Bib 1 Firewall-Architektur
Abbildung 1.7 zeigt eine Military-Level-Firewallkonstruktion. Ein solches Schema wird im kommerziellen Bereich in der Regel unnötig sein. Die Hardwarekosten einer solchen Konstruktion bewegen sich im Millionenbereich. Zusätzlich zum reinen Setup und der Installation sind bauliche Maßnahmen und die Verwendung von Spezialmaterialien (z.B. Schmelzkabel) notwendig.
1.2
Schutzmechanismen für Netzwerke
1.2.1
Single Firewall-Lösungen
LAN
Internet
Firewall
LAN
LAN
Abbildung 1.8: Single-Firewall-Lösung
Schützt man das gesamte Netzwerk nur durch eine Firewallkonstruktion, spricht man von einer Single Firewall Lösung oder auch einem Hot-Spot Security Konzept. Die Administrationsarbeiten für eine solche Lösung sind im Vergleich zu anderen Lösungen gering. Allerdings gibt es im internen Netz keinerlei Sicherheitsabstufungen und keinen weiteren Schutz vor Eindringlingen.
24
Sandini Bib Zentrale Komponenten einer Firewall
1.2.2
Network of Firewalls LAN LAN
Firewall LAN
Internet
Firewall
LAN LAN
Firewall LAN LAN LAN
Firewall LAN Abbildung 1.9: Network of Firewalls
Spricht man von einem Network of Firewalls, wird man nach der Zugriffs-Firewall zu externen Datenautobahnen im internen Netz weitere Firewall-Lösungen etablieren, mit denen verschiedene Sicherheitsstufen im Netz implementierbar sind. Ein Network of Firewalls ist komplexer zu administrieren, bietet aber einen wesentlich besseren Schutz und bessere Möglichkeiten, potenzielle Angreifer aufzuspüren und zu verfolgen.
1.3
Zentrale Komponenten einer Firewall
1.3.1
Packetfilter
Ein Packetfilter ist der Basisbestandteil jeder Firewall. Ein Packetfilter arbeitet auf IP-Ebene bzw. auf den Protokollen direkt über der IP-Ebene. Ein Packetfilter überprüft alle ein- und ausgehenden Pakete auf deren Ursprungsadresse und -port sowie Zieladresse und -port. Das Regelwerk in der Konfiguration des Packetfilters beschreibt, welche Kombinationen von Ursprungs- und Ziel-
25
Sandini Bib 1 Firewall-Architektur
daten zugelassen werden. Alle unzulässigen Daten werden unbesehen ignoriert, alle zulässigen Daten werden 1:1 durch den Packetfilter, der in diesem Falle wie ein Router funktioniert, geschleust. Ein Packetfilter ist auf jeden Fall Bestandteil einer Firewall-Konstruktion und wird als erste Barriere gegen komplett unsichere Netze sowie zur Trennung von eng verbundenen Netzen verwendet. Im Rahmen von Intrusion Detection spielen Packetfilter auch eine entscheidende Rolle, denn ein Packetfilter kann gewährleisten, dass auf einem Netzsegment nur bestimmte zugelassene Pakete existieren, was ein Scannen nach unzulässigen Paketen und Vorgehen stark erleichtert.
1.3.2
Application Level Gateway
Ein Application-Level-Gateway ist erforderlich für einen gesicherten Zugang, bei dem etwas höhere Ansprüche an die Sicherheit gestellt werden. Im Gegensatz zu »einfachen« Packetfilters arbeitet ein Application Level Gateway im TCP-Stack auf einer höheren Ebene.
Application Level GW
Packet Filter
e.g. smtp (eMail), http (WWW), ftp (Filetransfer)
Applications
connection oriented lossless protocol
TCP IP
connectionless protocol with loss
MAC Media Access (e.g. CSMA/CD Ethernet)
Abbildung 1.10: Application-Level-Gateway
Damit verfügt das Application Level Gateway über zusätzliches Wissen zur Kontrolle und Filterung von Zugriffen. Bei einer möglichen Fernwartung des Systems von außen wird der Authentifizierung Server im Application Level Gateway genutzt.
26
Sandini Bib Zentrale Komponenten einer Firewall
Das Application Level Gateway ist die zentrale separierende Instanz zwischen Intra- und Internetzen. Die Verwendung des Application Level Gateway macht durch die Trennung der Verbindungen eine Address Translation überflüssig. Innen sollten Adressen verwendet werden, die nach außen nicht geroutet werden. Dadurch werden Fehlkonfigurationen leichter erkannt und können keinen Schaden anrichten (die externe DMZ muss selbstverständlich gültige Adressen verwenden).
1.3.3
Empfehlung
In einem Netz sollten verschiedene Subnetze unterschiedlicher Unternehmensteile durch Packetfilter in einem Network of Firewalls voneinander getrennt sein. Eine direkte Kontrolle dieser Komponenten ist nicht zwingend erforderlich, solange die definierte Sicherheitspolicy überprüfbar eingehalten wird. Zum Anschluss des weltweiten Corporate Networks – Global Area Network (GAN) – an andere, unsichere Netze, wie z.B. das Internet oder Netze von Drittanbietern, wird eine mindestens zweistufige Firewall-Konstruktion mit Intrusion Detection und Content Security empfohlen. Auf diese Weise ist im konzerninternen Netz eine definierte Sicherheitspolicy etabliert und eine Netztrennung zumindest auf Dienstebene vorgenommen. Außerdem ist so, eine komplette Abschottung gegenüber externen und unsicheren Netzen vorgenommen. Diese Anbindung nach außen kann vom kompletten GAN genutzt werden. Mehrere Anbindungen nach außen empfehlen sich, wenn eine Ausfallsicherheit geschaffen werden soll, oder ein zentraler Flaschenhals für die Verbindung zu externen Netzen vermieden werden soll. Da auf jeden Fall kein 100%-Ausfall erfolgen darf, und der Ausbau von internen Knotenpunkten im GAN auf ein Niveau, das alle Verbindungen über einen Punkt abdecken würde, zu kostenintensiv ist, empfiehlt es sich, mindestens zwei Außenanbindungen zu haben. Soll Ausfallsicherheit ebenfalls gewährleistet werden, muss die Voraussetzung, im Netzwerkaufbau des GAN durch dynamisches Routing geschaffen sein. In der vorstehenden Grafik werden in einer zweistufigen Firewall-Konstruktion exemplarisch ein- und ausgehende Verbindungen dargestellt. Ein solches zweistufiges Konzept ermöglicht die vollständige Trennung von internen und externen Applikationen, da kein direkter Netzkontakt, sondern nur die Umsetzung von Applikationsanfragen auf der Applikationsebene besteht. Ein solches Konzept ermöglicht es, in einem gesicherten Bereich Dienste nach außen anzubieten, und intern einen komplett abgeschlossenen Netzbereich zu erhalten, auf den nicht direkt zugegriffen werden kann.
27
Sandini Bib
EMail Access Authenticated Access
Packet Filter
Application Level Gateway
Internal WWW Access
Internal R.
External R.
1 Firewall-Architektur
Abbildung 1.11: Zweistufige Firewall-Konstruktion
Dieses Konzept in voller Ausarbeitung entspricht den Richtlinien beispielsweise des BSI (Bundesamt für Sicherheit) und hat somit einen Sicherheitsstandard, der für Finanzapplikationen geeignet ist.
1.4
Firewall-Aufbau im internen Netz (GAN Security)
Ein lokales Netz muss sich, wie bereits oben erwähnt, gegen andere lokale Netze abschirmen, um das Risiko von Datenverlust oder Datenmanipulation möglichst gering zu halten. Als Punkt für eine solche Abschirmung bietet sich der Anschlusspunkt der LANs an das GAN an. An diesem Punkt sollten auch andere eingehende Drittnetze auflaufen, die dann in die Sicherheitskonstruktion einfließen können. An diesem Zugriffspunkt wird ein Packetfilter etabliert. Eine höhere Stufe der Netzwerktrennung, z.B. durch einen Application Level Gateway, ist nicht möglich, da die im GAN verwendeten Protokolle oft nicht einfach umgesetzt werden können und für einige Anwendungen eine direkte Punkt-zu-Punkt-Kommunikation sinnvoll ist. Dieser Packetfilter
28
Sandini Bib Firewall-Aufbau für eine externe Netzanbindung
erhält ein speziell gekennzeichnetes Interface für die Verbindung in das lokale Netz und jeweils ein Interface für jedes anzuschließende Drittnetz bzw. jede Verbindung in das GAN. Diese Packetfilter müssen nicht unbedingt unter lokaler Kontrolle stehen. Es ist aber sinnvoll, die Packetfilter auf dem lokalen Campus aufzustellen, da Außenanbindungen immer kritische Punkte sind und Angriffsmöglichkeiten bieten. Des Weiteren kann durch das lokale Aufstellen der Filter eine BackupGAN-Struktur unterstützt werden sowie die Anbindung aller anderen Netze wie z.B. Datenversorger.
LAN Segment 1
Anbindung dritter Netze
GAN Backbone
LAN Backbone
LAN Segment 2
Packetfilter
Anbindung dritter Netze LAN Segment 3
Untrusted Area
Campusgrenze
Trusted Area
Abbildung 1.12: Netzwerktrennung
In Kombination mit einer Anbindung an externe und unsichere Netze ist die Möglichkeit gegeben, eine Sicherheitskonstruktion auch als Hostingarea für Anwendungen zu nutzen, die entweder nach innen oder nach außen angeboten werden sollen.
1.5
Firewall-Aufbau für eine externe Netzanbindung
Wie bereits im theoretischen Teil empfohlen, bietet sich für die Anbindung komplett unsicherer Netze eine mindestens zweistufige Lösung an, da die Verbindungen zu solchen Netzen keine benutzerdefinierten Protokolle oder direkten Punkt-zu-Punkt-Verbindungen benötigen.
29
Sandini Bib 1 Firewall-Architektur
Insecure Network
DMZ Packetfilter
Application Level Gateway Securely controlled Area DMZ
Insecure and Untrusted Area
Trusted Area
Campusgrenze
Abbildung 1.13: Firewall für externe Netzwerkanbindung
Eine solche Konstruktion bietet einen ausreichenden Schutz gegen unsichere Netze und schafft mit der ohnehin entstehenden DMZ einerseits einen guten Messpunkt für Intrusion Detection und andererseits eine Möglichkeit, extern verfügbare Dienste in einer sicheren Umgebung unterzubringen. Dieser Aspekt wird unten weiter beschrieben. Wie bei der Abschirmung interner Netze ist es auch hier sinnvoll, die Grenze der Sicherheitskonstruktion im Campus zu belassen. Das bedeutet nicht, dass die Konstruktion nicht von anderer Stelle aus kontrolliert werden kann. Der kritische Punkt ist in beiden Fällen der Flaschenhals der nach außen weisenden Leitungen, die, wenn sie direkten Netzzugang haben, einen nahezu perfekten Angriffspunkt liefern. Application Level Gateway und Packetfilter sollten unterschiedliche Betriebssystemplattformen sein und unterschiedliche Softwareprodukte verwenden. Dies erfordert mehr Know-how im Betrieb und kann, wenn das WebFarmKonzept nicht komplett umgesetzt ist, höhere Betriebskosten durch ein heterogenes Netz verursachen, bietet aber den eindeutigen Vorteil, dass sich ein Fehler in der Hardware oder der Basissystemsoftware oder auch der Sicherheitssoftware selbst nicht durch die gesamte Konstruktion ziehen kann. Damit kann ein Sicherheitsloch, das auf einem Fehler auf dieser Ebene zurückzuführen ist, nicht den direkten Zugriff von außen bis in das LAN einer Lokation ermöglichen.
1.6
Sicherheitskonstruktionen als Hosting Area
Die meisten Anwendungen die im Web-Bereich geschaffen werden, sind heute schutzbedürftig. Dies trifft ebenso auf viele existierende Client-ServerAnwendungen zu. Diese aber zu einer Zeit implementiert wurden, als direkter Schutz der Kommunikationsstrecken noch nicht als primäres Thema behandelt wurde.
30
Sandini Bib Sicherheitskonstruktionen als Hosting Area
Aus diesem Grund bietet es sich an, solche Anwendungen in einer Sicherheitskonstruktion unterzubringen, damit die direkten Zugriffe auf diese Anwendungen auf die erlaubten Protokolle und Netzsegmente beschränkt werden können. Selbstverständlich ist dies nicht in jedem Fall erforderlich, da die Sicherheitsstufe der Anwendung vorher festgelegt werden muss. Wird eine zweistufige Anbindung nach außen geschaffen und das interne Netz zusätzlich durch einen Packetfilter geschützt, so entstehen drei verschiedene Zonen, in denen Server sinnvoll platziert werden können. Die zusätzliche vierte Zone (komplett ohne Schutz) sollte lediglich für Netzwerkprobes oder Intrusion Detection, aber nicht für das Anbieten von Diensten verwendet werden. Die drei Zonen werden im Folgenden einzeln beschrieben.
1.6.1
DMZ I als Netzsegment für extern zugreifbare Dienste
Die DMZ I ist die Zone für externe Dienste und befindet sich zwischen dem externen Packetfilter und dem Application Level Gateway. Durch den Packetfilter können Zugriffe auf bestimmte Dienste der in dieser Zone stehenden Server erlaubt werden. Alle anderen Zugriffe sind nicht gestattet. Durch das Application Level Gateway kann eine komplett von der Netzwerkschicht getrennte eventuell notwendige Datenversorgung dieser Dienste eingerichtet werden, die interne Datenquellen verwendet, ohne diese dem unsicheren Zugriff von außen auszusetzen. In der so genannten DMZ I dürfen auf keinen Fall geschäftsrelevante Daten gehalten werden. Die Haltung von lokalen Daten ist lediglich für Applikationsspezifika wie z.B. im Falle von Diskussionsforen und dergleichen erlaubt.
1.6.2
DMZ II als Netzsegment für intern zugreifbare Dienste
Die DMZ II befindet sich bereits im internen Netzsegment zwischen dem Application Level Gateway einer Anbindung und dem internen Packetfilter. In dieser Zone werden Anwendungen bzw. deren Server untergebracht, die nur intern zugreifbar sein sollen und die trotzdem einen gewissen Schutz benötigen, der über eine simple Zugriffskontrolle hinausgeht. Dies trifft auf viele Anwendungen, die Zugriff auf Datenbanken und andere primär geschäftsrelevanten Prozesse haben, zu. Auch der Zugriff zu diesen Anwendungen muss im Sinne einer einheitlichen Sicherheitspolicy geschützt werden, was sicherlich einerseits durch Zugriffskontrolle, anderseits aber durch direkte Kontrolle der Kommunikation mit den Anwendungen erreicht wird.
31
Sandini Bib 1 Firewall-Architektur
In der DMZ II können auch Datenquellen und Spiegelbestände untergebracht werden, die für den Zugriff aus dem LAN sowie anderen LANs im GAN-Verbund freigegeben sind.
1.6.3
Das interne Segment als Netzsegment für LAN-intern zugreifbare Dienste
Hinter dem internen Packetfilter in Richtung des lokalen Campus befindet sich das LAN der Lokation. Auch hier können noch Dienste untergebracht werden, die allerdings nur dem lokalen Netzwerk zur Verfügung stehen sollten oder die Datenquellen des lokalen Netzes sind. Diese Zone ist zwar ein komplett sicherer Bereich, allerdings ist, wenn der Zugriff auf einen Dienst gestattet ist und dieser kompromittiert werden kann, der Zugriff in eben diese komplett sichere Zone ohne weitere Chance auf Verhinderung oder Entdeckung möglich, was auf jeden Fall zu vermeiden ist. Gemäß des Standards dürfen in dieser Zone also lediglich komplett interne Dienste angesiedelt sein. Die Datenversorgung solcher Dienste über die DMZ I und DMZ II ist durch die Sicherheitskonstruktion kontrollierbar, und damit auch zulässig, was vor allem im Falle eines unternehmensweiten Wissensmanagement oder einer unternehmensweiten Data-Mart Struktur wichtig ist.
1.6.4
Schaffung einer DMZ II-Klasse-Zone ohne Außenanbindung
Sollen in Lokationen, die keine Anbindung an komplett unsichere Drittnetze wie z.B. das Internet haben, und dementsprechend auch nicht über ein Application Level Gateway und einen externen Packetfilter verfügen, auch interne Dienste bereitgestellt werden, die im GAN zur Verfügung stehen, so muss dies über den internen Packetfilter abgedeckt werden. Eine solche Konstruktion ist einfach zu erreichen. Es wird im internen Packetfilter ein weiteres Interface aktiviert, das zu einem im Campus befindlichen Netzsegment führt, in dem lediglich im GAN zugreifbare oder schützenswerte Dienste eingerichtet sind. Auf diese Weise wird für den Zugriff über das GAN die gleiche Zugriffs- und Netzkontrolle ermöglicht wie bei einer großen Sicherheitskonstruktion.
1.6.5
Die komplette Hosting-Infrastruktur im Überblick
Das folgende Bild soll die Hosting-Infrastruktur im Überblick für eine Lokation mit externer Anbindung zeigen. Hierbei werden Dienste für externe Kunden, Partner und Mitarbeiter bereitgestellt, Dienste für den unternehmensinternen Gebrauch sowie Dienste für den Gebrauch nur im lokalen Netz der Lokation.
32
Sandini Bib Sicherheitskonstruktionen als Hosting Area
GAN Backbone LAN Segment 1
Insecure Network
DMZ I externer Packetfilter
LAN Backbone
DMZ II Application Level Gateway
LAN Segment 2
interner Packetfilter
LAN Segment 3 Anbietung dritter Netze
nsecureand Untrusted Area
Secureand Controlled DMZ forexternal Services
Secureand Controlled DMZ forinternal Services
Trusted Area
Campusgrenze
Abbildung 1.14: Komplette Hosting-Infrastruktur
Die folgende Zeichnung zeigt das vereinfachte Schema für eine Lokation, das selbst keine Außenanbindung hat, aber dennoch Dienste im GAN anbieten soll.
LAN Segment 1
GAN Backbone
LAN Backbone
DMZ II
LAN Segment 2
interner Packetfilter Anbietung dritter Netze
Secure and Controlled DMZ for internal Services
Trusted Area
Campusgrenze
Abbildung 1.15: Lokation-Schema
33
Sandini Bib 1 Firewall-Architektur
1.7
Content Security
Die Sicherheitsrisiken, die sich in den Datenströmen einiger Dienste verbergen, werden oft stark unterschätzt und sind auch wesentlich schwieriger zu kontrollieren als die Risiken, die sich auf Netzwerkebene ergeben. Um einen möglichst hohen Standard an Content Security zu bekommen, ist es erforderlich, interne Netzwerksicherheit zu etablieren, in dem ein Netzwerk intern zu Point-to-Point-Verbindungen mittels Verschlüsselung zwischen den Kommunikationsendpunkten verändert wird. In Anbetracht der Tatsache, dass nach einschlägigen Studien mehr als 80% aller Schäden intern entstehen, ist dies sicherlich ein sinnvoller Schritt, der aber über die Etablierung eines Standards für Webanwendungen hinausgeht und darum in diesem Buch nicht ausgearbeitet werden kann. Nichtsdestotrotz sollen für die Anbindung von Webanwendungen bzw. die Anbindung von Benutzern an Webanwendungen einige Sicherheitsmaßnahmen auf Contentebene getroffen werden, die zumindest einen groben Schutz erlauben.
1.7.1
Skriptsprachen und externe Verbindungen
Viele Browser und andere Frontends unterstützen heute Skriptsprachen, die einen direkten Zugriff auf die Arbeitsstation des Benutzers ohne dessen Zutun ermöglichen. Dies geschieht vor allem ohne, dass es auch nur im entferntesten bemerkt werden kann. Solche Skriptsprachen sollten auf jeden Fall in einer Firewallkonstruktion gefiltert werden. Zumindest dann, wenn sie aus komplett ungesicherten Netzen wie dem Internet kommen. Im Bereich des GAN kann der Zugriff auf einige Skriptelemente möglich werden. Dies geschieht dann, wenn die durch das WebFarm-Konzept definierten Standards eingehalten werden, Auf jeden Fall gefiltert werden muss ActiveX, da dieses die Arbeitsstation komplett fernsteuerbar machen kann, was einen direkten Einbruch in das interne LAN einer Lokation und damit auch in das GAN bei entsprechender Berechtigung ermöglicht. Ebenso gefiltert werden muss VBScript, das die gleiche Funktionalität ermöglicht. Es ist noch erlaubt, JavaScript zu verwenden, da hiermit keine Fernsteuerung der Arbeitsstation möglich ist. Sollte dies aber in den Sprachumfang integriert werden, muss auch hier eine Filterung vorgenommen werden. Ähnliches gilt für Java, das aber aufgrund des Sicherheitmodells lediglich bei Implementationsfehlern auf Clientseite möglicherweise gefährlich werden kann – diese Fehler müssen daher bei Bekanntwerden sofort durch Einspielen von Patches behoben werden.
34
Sandini Bib Content Security
Diese Filterung wird im HTTP-Proxy oder anderen Proxy-Komponenten des Application Level Gateways eingestellt und dann dort auch vorgenommen. Die Benutzer müssen über diese Funktionalität der Anbindungsumgebung aufgeklärt werden.
1.7.2
Viren- und Trojanerscanning
Virenscanning im internen Netz und auf den Platten der Arbeitsstationen ist im internen Sicherheitsinteresse auch mit externer Virenabsicherung dringend zu empfehlen. Für die Kontrolle des in das Netz eingehenden Contents ist bei einer großen Sicherheitskostruktion innerhalb der DMZ I ein Proxy-Server vorgesehen, der im Gegensatz zu einem normalen Proxy-Server seine primäre Funktionalität auf das Scannen des übertragenen Contents nach Viren und trojanischen Pferden hat. Über einen solchen Server soll in der DMZ I aller HTTP- und FTPVerkehr geleitet werden, da dies die primären Quellen für den Import von Viren ist. In der DMZ II wird symmetrisch dazu ein Server für das Scannen des E-Mail-Verkehrs nach Viren abgestellt. HTTP (Web Access) FTP (File Transfer)
GAN Connection
SMTP (eMail)
Insecure Network
DMZ I externer Packetfilter
LAN Backbone
DMZ II Application Level Gateway
interner Packetfilter
Workstation Proxy-Ext + Scanner
Abbildung 1.16: Externe Plattform zum Scannen von Viren
Wichtig in einem globalen LAN-Verbund eines GAN ist es, dass die Patterns zur Erkennung von Viren auf diesen Rechnern immer aktuell gehalten werden und weltweit einen einheitlichen Stand haben. Über die WebFarm-Automatisierung bietet es sich an, die Verteilung dieser Patterns zu automatisieren
35
Sandini Bib 1 Firewall-Architektur
und von beliebiger Stelle deren Administration zu ermöglichen. Auf diese Weise aktualisiert immer der Erste, der ein Pattern-Update erhält, alle Scanner, und die Scanner haben immer den neuesten Stand. Da die meisten Viren Windows-basierende Rechner angreifen, empfiehlt es sich, die Plattform zum Scannen von Viren auf eine andere Betriebssystemebene zu verlagern.
1.8
Intrusion Detection
Da eine 100%ige Sicherheit selbst durch Sicherheitskonstruktionen militärischer Sicherheitsstufen nicht gewährleistet werden kann, ist die Erkennung von Eindringlingen in ein Netzwerk immer ein wichtiges Thema. Der Vorteil, den ausgereifte und mehrstufige Sicherheitskonstruktionen definitiv bieten, ist die Kontrolle über den erlaubten ein- und ausgehenden Verkehr, so dass die Erkennung von nicht zulässigen Paketen und Protokollen in Verbindungen grundsätzlich einfacher wird, je besser die Sicherheitskonstruktion ausgestattet wird. Das im WebFarm-Standard definierte dreistufige Sicherheitskonzept bei Außenanbindungen und Anbindungen an das GAN ist hierbei sehr gut für die Erkennung von Eindringlingen geeignet. Neben der Kontrolle des Verkehrs und der Verbindungen in und zwischen den Netzen ist auch die Kontrolle der zur Verfügung stehenden Dienste eine wichtige Komponente der Erkennung von Eindringlingen oder zumindest der Erkennung von Diensten, die nicht registriert sind, und ein Eindringen erleichtern könnten. Aus diesem Grunde sollten neben der Archivierung der allgemeinen Netzstruktur auch ein Scanning nach Diensten, die im Netz angeboten werden, durchgeführt werden, und in einer Berechtigungsdatenbank archiviert werden. Treten zusätzliche nicht registrierte Dienste auf, muss diesen nachgegangen werden, so dass keine Sicherheitslücken entstehen. Für das Nachvollziehen eines eventuellen Eindringens sowie den Aktionen des Eindringlings, aber auch für die Verfolgung von internen Sicherheitsproblemen und Vorfällen ist die Archivierung von gesammelten Daten unbedingt erforderlich. Diese Daten können zum Teil personenbezogen sein und fallen daher unter strenge Verchlussklauseln und Aufbewahrungsfristen, bieten aber im Falle eines Einbruchs oder eines Sicherheitsproblems die einzige Möglichkeit, den Vorgang nachzuvollziehen. Bei entsprechender Behandlung der Daten sind auch keine Konflikte mit dem Datenschutz zu befürchten.
36
Sandini Bib Intrusion Detection
1.8.1
Netzwerkscanning
Wie bereits beschrieben muss sowohl auf Netzwerkebene verfolgt werden, ob illegale Verbindungen oder Pakete auf einem Netzsegement auftauchen, aber auch nach angebotenen Diensten in den verschiedenen Netzsegmenten gesucht werden, die nicht registriert sind und daher potenzielle Sicherheitslöcher auftun können. Scannen auf Netzwerkebene Um alle Eventualitäten abzudecken, müßte an jeder Broadcast-unterdrückenden Stelle der Netzinfrastruktur ein Scanner platziert werden, der eben auch Broadcasts nach illegalen Inhalten scannt. Da dies aber die Kosten für eine Intrusion Detection im Verhältnis zum Nutzen in astronomische Höhen treiben würde, ist von einem solchen Ansatz abzusehen. Es wird an jeder Knotenstelle der Sicherheitsinfrastruktur ein Scanner etabliert, der dann für dieses Segment die Daten sammelt, die immer intern ausgewertet werden müssen. Der Zugriff auf die Scanergebnisse und die daraus resultierende Alarmierung kann automatisiert werden, allerdings ist hier ein Eingreifen im Sinne des Outsourcing nur durch Beauftragung durch internes Personal möglich, da die Intrusion Detection auf dieser Ebene gleichzeitig die interne Kontrolle des Outsourcing-Partners darstellt und auf personenbezogene Daten der Mitarbeiter zugreifen kann. An folgenden Stellen, wenn sie verfügbar sind, sollte in einer Lokation eine »Probe« installiert werden. Die Probes sind mit absteigender Priorität geordnet; soll also aus Kostengründen – oder weil angenommen wird, dass das Risiko ab einer bestimmten Ebene zu vernachlässigen ist – auf Probes verzichtet werden, dürfen diese nur von unten nach oben weggelassen werden. Auf jeden Fall ist das genaue Probing zu dokumentieren, damit im Falle der Verfolgung eines Eindringlings sofort Konzepte vorliegen. 1. DMZ I (externes Segment der Sicherheitskonstruktion) 2. DMZ II (internes Segment der Sicherheitskonstruktion) 3. LAN Backbone 4. Verbindung zum GAN Backbone 5. Verbindung zu unsicheren Netzen (meist nicht erforderlich) Die Daten werden alle nach innen geleitet und dort zu einem einheitlichen Bild zusammengefügt und verarbeitet. Die Alarmierung erfolgt nach Patterns, die als Attacken bekannt sind, oder nach Patterns, die der implementierten Sicherheitspolicy widersprechen.
37
Sandini Bib 1 Firewall-Architektur
GAN Connection
Probe 4 Insecure Network
DMZ I externer Packetfilter
Probe 5
LAN Backbone
DMZ II Application Level Gateway
Probe 1
interner Packetfilter
Probe 2
Probe 3
Collection Server
Admin Client
Abbildung 1.17: Installation von »Probes«
Scannen nach Diensten Es sollte ein Automatismus generiert werden, der regelmäßig einen verfügbaren Adressraum eines Netzsegmentes nach verfügbaren Rechnern und deren Diensten (netscan und portscan) durchsucht, diese speichert und mit registrierten Rechnern und Diensten vergleicht. Treten Differenzen auf, muss ein Administrator benachrichtigt werden, der den neuen Rechnern und Diensten nachgeht und diese entweder validiert, wenn deren Aufbau dem WebFarm-Standard entspricht, oder deren weiteren Betrieb unterbindet, wo dies möglich ist. Sollte ein Dienst trotz Nichteinhaltung von Standards noch betrieben werden müssen, so ist dieser in der Liste der Sicherheitsrisiken zu dokumentieren und die Betreiber eindeutig darauf hinzuweisen. Zusätzlich sollten die bekannten und registrierten Rechner mit ihren Diensten regelmäßig auf bekannte Verwundbarkeiten untersucht werden, was auch zu einem Reporting über den gesamten Sicherheitszustand aller WebFarm-Komponenten führt und im Rahmen der Dokumentation für Revision und Zertifizierung eine gute Basis liefert.
1.8.2
Logfristen
Alle relevanten Loginformationen aller WebFarm-Komponenten sollten für ein Accounting und spätere Auswertungen gesammelt und archiviert werden. Die Logpatterns und deren Relevanz sind im Bereich der Systemüberwachung dokumentiert.
38
Sandini Bib Intrusion Detection
Auf jeden Fall relevant sind alle Loginformationen, die in Sicherheitskomponenten generiert werden. Diese müssen sofort zentral archiviert werden, da sie bei der Verfolgung von Eindringlingen wichtige Daten enthalten. Für die Loginformationen, die erfasst werden, gelten die in folgender Tabelle beschriebenen, Aufbewahrungsfristen. Die vorliegende Aufstellung dient der übersichtlichen Darstellung der Aufbewahrungsfristen wesentlicher Dokumentationskomponenten gemäß der geltenden externen und internen Anforderungen für operative Systeme/ Anwendungen. Die Basis für dieses Verzeichnis wurde vom Arbeitskreis »EDV-Revisionen bei privaten Banken« unter Federführung des »Prüfungsverbandes deutscher Banken« erstellt. Ziel war die Erarbeitung der wesentlichen Dokumentationskomponenten im Rahmen einer ordnungsgemäßen Buchführung bei computergestützten Verfahren.
1.8.3
Hinweise
Die Aufbewahrungsfristen (siehe Tabellenüberschrift AF) sind in Jahren angegeben. Die genannten Sperrfristen beginnen am Jahresende der Außerbetriebnahme der jeweiligen Komponenten und gelten für den Regelfall. In der Spalte »Anforderungen« ist die Quelle genannt, die ausschlaggebend für die Wahl der Sperrfristen sind. Unterschieden wird in folgende Einträge: Anforderungskatalog (Katalog der Aufbewahrungsfristen – SAFRIST) GoBS (Grundsätze ordnungsgemäßer DV-gestützter Buchführungsysteme) MaH (Mindestanforderung an das Betreiben von Handelsgeschäften der Kreditinstitute)
(Interne Anforderung)
1.8.4
Leitdokumentation
Dokumentationskomponenten
AF
Anforderungen
Programmier- und Systementwicklungsrichtlinien
10
GoBS
Dokumentationsrichtlinien
10
GoBS
Richtlinien für Programmtests
10
GoBS
Beschreibung Programmfreigabe und Änderungen
10
GoBS
Testrichtlinien
10
GoBS
Sachgebietsübergreifende Ablauf- und Schnittstellenbeschreibung
10
GoBS
Tab. 1.1: Übersicht Leitdokumentation
39
Sandini Bib 1 Firewall-Architektur
Dokumentationskomponenten
AF
Anforderungen
Organigramme (Bank/Teilbereiche)
2
Stellen- und Arbeitsplatzbeschreibungen
2
IDV-Richtlinien
10
GoBS
Programmkatalog/Dateikatalog/Satzartenkatalog
10
GoBS
Dokumentationskomponenten
AF
Anforderungen
Beschreibung des IKS (inkl. Formularmuster)
10
GoBS
Arbeitsablaufbeschreibung (inkl. Anweisungen zur Fehlerbereinigung und zur Vor- und Nachbehandlung von Daten
10
GoBS
Dokumentationskomponenten
AF
Anforderungen
Benutzerhandbücher/Bedienungsanleitungen
10
GoBS
Bildschirm- und Listenlayouts
10
GoBS
Schlüsselverzeichnis
10
GoBS
Tab. 1.1: Übersicht Leitdokumentation (Forts.)
1.8.5
Anwenderdokumentation
Organisationsanweisungen (bankspezifisch)
Tab. 1.2: Übersicht Organisationsanweisungen
Handbücher/Verzeichnisse (bankspezifisch)
Tab. 1.3: Übersicht Handbücher und Verzeichnisse
1.8.6
Betriebsdokumentation
Operatoranweisungen/Operatorprotokolle Dokumentationskomponenten
AF
Anforderungen
Beschreibung System-/Ablaufsteuerung (inkl. Sicherheitsregelung)
2
GoBS
Produktionspläne/Schichtpläne
2
GoBS
Sonderaufträge (Auswertungen); weitere OP-Aufträge 2 Tab. 1.4: Übersicht Operatoranweisungen und -protokolle
40
Anforderungskatalog
Sandini Bib Intrusion Detection
Dokumentationskomponenten
AF
Anforderungen
Sonderaufträge (mit Zugriff auf Praxisdaten; inkl. Protokolle über diesbezügliche Operatortätigkeiten)
6/10
GoBS; Anforderungskatalog
Protokolle Operatortätigkeiten (inkl. Protokolle über Softwarestörungen/Ablaufunterbrechung)
2
Anforderungskatalog
Protokolle über besondere Vorkommnisse/über Änderungen von Praxisdaten
6/10
GoBS
Dokumentationskomponenten
AF
Anforderungen
Beschreibung der Datensicherung
10
GoBS
Verzeichnis Programm- und Dateibibilotheken
10
GoBS
Auslagerungsprotokoll Datenträgerarchivierung
2
Anforderungskatalog/MaH
Tab. 1.4: Übersicht Operatoranweisungen und -protokolle
Datenorganisation/Datensicherung
Bestands- und Inhaltsverzeichnis; Datenträgerarchivie- Letzte rung (bei Fortschreibung) Version Tab. 1.5: Übersicht Datenorganisation und -sicherung
Zutritts-/Zugriffsregelungen Dokumentationskomponenten
AF
Anforderungen
Beschreibung des Zugriffschutzverfahrens (Anwendungen, Betriebssysteme, Datenbanken)
10
GoBS
Nachweis zu den vergebenen Berechtigungen/zugeordnete Benutzerprofile
10
GoBS
Beschreibung der Zutrittsregelung/der eingesetzten Verfahren
10
GoBS
Tab. 1.6: Übersicht Zutritts- und Zugriffsregelungen
Systemsoftware (Betriebssystem/Systemnahe Software) Dokumentationskomponenten
AF
Anforderungen
Systemhandbücher/-beschreibungen
10
GoBS
Verzeichnis eingesetzter Komponenten und Releases
10
GoBS
Parametereinstellungen
10
GoBS
Tab. 1.7: Übersicht Systemsoftware
41
Sandini Bib 1 Firewall-Architektur
Protokolling Dokumentationskomponenten
AF
Anforderungen
Beschreibung der Protokollierungsmechanismen
2
Anforderungskatalog/MaH
Protokollierung des Betriebs (Systemlogs, Joblogs)
2
Anforderungskatalog/MaH
Protokollierung der Dialogzugriffe
2
Anforderungskatalog/MaH
Weitere Protokollierungen (z.B. über sicherheitsrelevante Ereignisse)
2
Anforderungskatalog/MaH
Fehlermeldungen Anwendungssysteme
10
GoBS
Dokumentationskomponenten
AF
Anforderungen
Beschreibung Wartungs- und Fernwartungsverfahren (Zugriffsverfahren)
10
GoBS
Protokolle über Wartungstätigkeiten
2
Anforderungskatalog/MaH
Tab. 1.8: Übersicht Protokolling
Wartung
Tab. 1.9: Übersicht Wartung
Backup Dokumentationskomponenten
AF
Anforderungen
Wiederanlaufbeschreibung
10
GoBS
Protokolle der Backup-Tests
Letzte Version
GoBS
Dokumentationskomponenten
AF
Anforderungen
Verfahrensbeschreibung
10
GoBS
Testdaten und Testergebnisse
10
GoBS
Testprotokolle
10
GoBS
Tab. 1.10: Übersicht Backup
1.8.7
Entwicklerdokumentation
Testverfahren
Tab. 1.11: Übersicht Testverfahren
42
Sandini Bib Intrusion Detection
Projektsteuerung Dokumentationskomponenten
AF
Anforderungen
Vorgehensmodell
10
GoBS
Planungsunterlagen (PIT) bei Projekten
5
Sonstige Planungsunterlagen (PIT)
2
Fachkonzept
10
GoBS
DV- Fachkonzept
10
GoBS
Dokumentationskomponenten
AF
Anforderungen
Verfahrensbeschreibung
10
GoBS
Installationsprotokolle
10
GoBS
Tab. 1.12: Übersicht Projektsteuerung
Programmfreigabe/Programmänderungen
Änderungsnachweise/Versionsführung
10
GoBS
Freigabeerklärung
10
GoBS
Quellcode (inkl. Delta-Listings/Versionsfortschreibung/(Compiler oder andere zugehörige Systemsoftware)
10
GoBS
Dokumentationskomponenten
AF
Anforderungen
Datenmodelle
10
GoBS
Datenbankorganisation (Datensatzfeld/Formate)/ Verzeichnis der Dateien
10
GoBS
AF
Anforderungen
Tab. 1.13: Übersicht Programmfreigabe und -änderungen
Datenstrukturen
Tab. 1.14: Übersicht Datenstrukturen
Programmdokumentation Dokumentationskomponenten
Programmbeschreibung (Verzeichnisse/Menüs/Bild10 schirmaufbauhierarchien/Crossreferenzen/Programmablaufpläne/Entscheidungstabellen/Rechenformeln/ Dateibeschreibung/Satzbeschreibung)
GoBS
Buchungstellenanweisung
10
GoBS
Datenflusspläne
10
GoBS
Tab. 1.15: Übersicht Programmdokumentation
43
Sandini Bib 1 Firewall-Architektur
Dokumentationskomponenten
AF
Anforderungen
Verzeichnis automatisch erzeugter Buchungen
10
GoBS
Plausibilitätskontrollen
10
GoBS
Verzeichnis der Fehlermeldungen
10
GoBS
Dokumentationskomponenten
AF
Anforderungen
Linkage-Protokolle
10
GoBS
Tab. 1.15: Übersicht Programmdokumentation
Programmprotokolle
Tab. 1.16: Übersicht Programmprotokolle
Entwicklersoftware Dokumentationskomponenten
AF
Verzeichnis der betriebssystemnahen Entwicklung
2
Herstellerhandbücher (Hardware/Systemsoftware)
Letzte Version
Tab. 1.17: Übersicht Entwicklersoftware
44
Anforderungen
Sandini Bib
2
DNS
Das WebFarm-Konzept beinhaltet eine DNS-Infrastruktur, die ein internes unabhängiges Namenschema unterstützt. Interne Strukturen, sowohl organisatorischer als auch netzwerktechnischer Art, sollen nicht in die Außenwelt getragen werden, darum ist eine solche Trennung sinnvoll. Im internen Netz kann eine etwas breiter angelegte Namenstruktur zur Transparenz der Netzstrukturen und Servicestrukturen erheblich beitragen. Ein Relaying von DNS-Anfragen, die das externe Netz betreffen, kann über die Sicherheitskonstruktionen mit Außenanbindung erfolgen, so dass an jedem Punkt des internen Netzes der komplette Namenraum sowohl an internen als auch an externen Namen zur Auflösung bereitsteht, extern aber nur die Elemente bis DMZ I sichtbar sind, da diese auch offizielle Adressierungen besitzen. Dieses Dokument beschreibt den Aufbau von interner DNS-Infrastrukturanbindung an die weltweite DNS im Internet sowie die Namenvergabe im GAN, um strukturierte Schemata als Bestandteil des Standards zu präsentieren.
2.1
Internes und externes DNS
Wie bereits erwähnt, wird eine interne und eine externe DNS-Struktur aufgebaut. Die externe DNS-Struktur kann von den verschiedenen Punkten des GAN frei gewählt werden. Es ist unternehmenstechnisch sicherlich angenehmer, eine vorgegebene Namenstruktur zu haben, allerdings ist es oft marktbezogen nicht durchzusetzen. Die interne Struktur hingegen wird zentral definiert, und lokal werden die Unterbäume oder Blätter der definierten Hierarchie ausgefüllt. Der WebFarmStandard sieht vor, eine registrierte Domäne für den Aufbau der internen Namenstruktur zu verwenden, um eventuell die Möglichkeit zu haben, die Namenräume der internen und externen Welt miteinander zu kombinieren. Da es sich um die Namenstruktur für ein komplettes globales Netzwerk handelt, bietet sich als Top-Level-Domäne .net an. Die verwendete registrierte Second-Level-Domäne sollte etwas Unternehmensnahes sein, wie z.B. arago, die internen Namenserver würden in diesem Fall auf arago.net aufbauen.
45
Sandini Bib 2 DNS
.
net
arago
frankfurt
munich
www
com
de
arago
www
www
Abbildung 2.1: Infrastruktur
Um der verwendeten Domäne auch nach außen einen Sinn zu geben, können die Standardadressen wie www, ns, mail auf die externen Server des zentralen Zugangspunktes des Unternehmens umgeleitet werden; wie z.B. www.arago.net ist ein Pointer auf www.arago.de.
2.2
Struktur des internen Namenraums
Der interne Namenraum muss komplett unabhängig von anderen DNS sein, da ansonsten eine Verbindung nach außen vitaler Bestandteil der internen Netzstruktur wäre. Aus diesem Grund werden Nameserver geschaffen, die sowohl die Root-Domain ».« als auch die darunter liegenden unternehmen.netDomains verwalten. Unter dieser Third-Level-Domain, die für den gesamten Unternehmensverbund bezeichnend ist, werden nun Strukturen geschaffen, die der Unternehmensstruktur entweder organisatorisch oder nach Lokationen am Nächsten kommen. Die folgenden Diagramme zeigen eine Struktur, die geografisch ausgerichtet ist, wobei auf Basis der Städte und Länder wird. Es muss auf jeden Fall beachtet werden, dass die Strukturen nicht zu tief werden, da ansonsten die Namen nicht mehr ausschreibbar sind und somit zwar lokale Zugriffe einfach sind, da eine Domain-Zugehörigkeit feststeht, aber Zugriffe auf entfernte Dienste im GAN nur unkomfortabel zu erreichen sind.
46
Sandini Bib Struktur des internen Namenraums
.
net
arago
de
frankfurt
munich
usa
new-york
Abbildung 2.2: Struktur eines internen Namensraums
Eine Organisation nach Geschäftsfeldern oder Tochtergesellschaften könnte folgendermaßen aussehen:
.
net
arago
webfarm
intra-ffm
dmz-ffm
docme
dmz-ext-ny
intra-ny
Abbildung 2.3: Struktur eines internen Namensraums (2)
47
Sandini Bib 2 DNS
Der WebFarm-Standard lässt den Betreibern zwischen diesen Organisationsmodellen die Wahl. Unsere Erfahrung allerdings besagt, dass das zweite Modell, also das nach Organisationsstrukturen, einfacher zu handhaben ist und für die Benutzer logischer erscheint. Außerdem können so Lokationsveränderungen von Diensten, wenn sie korrekt geplant sind, für den Benutzer völlig transparent sein. Mehr als drei Unterstufen unter der Second-Level-Domain empfehlen sich nicht, bevor die tatsächlichen Blattknoten, also Rechner und Dienste angesprochen werden.
2.3
Aufbau der DNS-Infrastruktur
Es ist, wenn das DNS maximale Effizienz bringend eingesetzt werden soll, wichtig, dass das System mit einer sehr hohen Ausfallsicherheit aufgesetzt wird. Wenn man das Internet als Vorbild nimmt, in dem es nur sehr selten zu Ausfällen beim Auflösen von Namen kommt, kann man sich an der komplett verteilten Struktur der Root-Nameserver ein Beispiel nehmen. Es ist also wichtig, die Root-Nameserver des internen Netzes und die Nameserver für die Top-Level-Domains der internen Namenstruktur weltweit zu verteilen. Die Blattknoten sollten ebenfalls dupliziert werden. Das DNS schreibt einen Secondary-Nameserver vor. Für die Secondaries in der WebFarm-Infrastruktur werden allerdings die Transferzeiträume für die kompletten Datenbanken von den Primary-Nameservern von 24 Stunden auf 12 Stunden heruntergesetzt. Die Server sind weltweit verteilt, dabei werden die Regionen Europa, Amerika, Afrika und Asien (inklusive Australien) betrachtet. In jeder Region gibt es zwei Server, wobei in Afrika wegen der geringen Infrastrukturdichte auf den zweiten Server verzichtet wird. Jede Region hat einen Name-Space, der von beiden Servern im Mirroring-Verfahren gehalten wird. Jeder Server hat zwei Secondary-Server, die weltweit verteilt sind und so angelegt sind, dass keine Secondary-Primary-Beziehung doppelt auftaucht. Im folgenden Bild werden die Verbindungen zwischen den Servern verdeutlicht.
48
Sandini Bib Aufbau der DNS-Infrastruktur
Primary DNS Mirror Secondary DNS 2nd Secondary DNS
Abbildung 2.4: Verbindungen zwischen Servern
Die Server sollten auf einer modernen »bind«-Softwareversion beruhen, die das kontinuierliche Mirroring von Daten unterstützt. In jeder Region gibt es einen Server, an dem Änderungen für seine Region vorgenommen werden, die dann auf den anderen Server gespiegelt werden. Es ist möglich, die Regionen weiter zu unterteilen, so dass das lokale Management eines Namespace bei jedem Server erlaubt wird. Dieses Vorgehen ist aber nur sinnvoll, wenn an den jeweiligen Standorten genügend qualifiziertes Personal vorhanden ist, um die Server entsprechend zu pflegen. Es ist offensichtlich, dass das DNS an sich ein sehr einfaches System ist, aber in der Datenpflege eine sehr geringe Fehlertoleranz besitzt. Ein entsprechend sorgfältiger Umgang mit den Namendatenbanken und den Serverkonfigurationen ist hier ähnlich wie bei Sicherheitskonstruktionen auf jeden Fall vorauszusetzen, da viele andere Systeme auf der Verfügbarkeit des internen DNS beruhen. Genau aus diesem Grunde beinhaltet der WebFarm-Standard die Unterteilung zwischen internem und externem Namenraum, denn nur so kann die gesamte Kontrolle über die Verfügbarkeit von DNS-Servern im Unternehmen selbst gewährleistet und kontrolliert werden, was im Falle der Verwendung von Internet-Nameservern sicherlich nicht gegeben ist. Die Clients werden so konfiguriert, dass sie einen netzwerktechnisch am nächsten gelegenen Nameserver als Primary-Server verwenden, den zweiten Primary-Server der Region als Secondary eingetragen haben, den ersten Secondary-Server der Region als weiteren Secondary und den zweiten Secondary-Server der Region als zusätzlichen weiteren Secondary. Auf diese Weise ist die Verfügbarkeit des Namendienstes mit einer sehr hohen Ausfallsicherheit gegeben.
49
Sandini Bib 2 DNS
Alle Server fungieren auch als Root-Server und werden in der DNS-Konfiguration (cache.de) auch als solche angegeben. Auf diese Weise ist auch die Verfügbarkeit der Top-Level-Domain immer gewährleistet.
2.4
Datenverwaltung
Wie bereits erwähnt, können die DNS-Daten sowohl in den für DNS-üblichen Datendateien als auch in einer Datenbank abgelegt werden. Wird eine Datenbanklösung bevorzugt, was bei derart großen Netzstrukturen im WebFarmStandard empfohlen wird, sollte diese für eine Region an die Netzwerküberwachung angeschlossen sein. So können aus OpenView-Datenbanken auch Nameserver-Datenbanken erzeugt werden, und es ist gewährleistet, dass das Netzwerkmanagement eine eindeutige Sicht auf die vorhandenen Rechner und deren Namensgebung hat. Ist eine Koppelung an das Netzwerkmanagement nicht möglich, so existieren im Internet frei verfügbare Werkzeuge, um DNS-Management zu betreiben, die in diesem Falle eingesetzt werden können.
50
Sandini Bib
3
Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
Dieses Kapitel beschäftigt sich mit dem Design einer Proxy-Infrastruktur für Webanwendungen und Anwendungen der neuen Medien. Es wird eine Infrastruktur aus Proxy-Server beschrieben, die HTTP/S und FTP mit ProxyCache-Funktionalität bedienen und direkte Verbindungen als Proxy durchschleusen können. Der Sinn einer solchen Infrastruktur ist es, die Performance von Anwendungen durch die lokale Verfügbarkeit von Seiten zu erhöhen und, noch wichtiger, Bandbreite auf teuren Verbindungen durch das Caching einzusparen.
3.1
Application-Proxy vs. Web-Proxy
Viele Anwendungen haben eigene Proxyservices, die eventuell auch eine Cache-Infrastruktur abbilden können. Es ist aber auf keinen Fall sinnvoll, pro Anwendung eine Proxy-Infrastruktur zu designen, da dies einen enormen Hard- und Software-Betriebsaufwand verursachen würde, der betriebswirtschaftlich und administrativ völlig untragbar wäre. Ähnlich wie beim Anwendungsdesign im Webbereich, das so ausgelegt ist, dass Webanwendungen direkt im Browser ablaufen können, muss bei der Infrastruktur und den Anwendungen darauf geachtet werden, dass eine Standard-Web-ProxyInfrastruktur für die Abwicklung der Anwendungszugriffe verwendet werden kann. Dabei gilt grundsätzlich, dass Caching aufgrund der Kostenersparnisse berücksichtigt werden und darum ein entsprechendes Anwendungsund Tool-Design eingehalten werden muss. Eigene Proxy-Services für Anwendungen und Werkzeuge sind nur im Komplex der Firewall vorgesehen, wo auf dem Application-Level-Gateway entsprechende applikationsspezifische Proxy-Server abgelegt werden können, wenn diese sicherheitszertifiziert sind. Im Bereich der Firewall werden ProxyServer zur Netzwerktrennung eingesetzt, wozu man auf Applikationsebene eine entsprechende Umsetzung machen muss. Fazit: Anwendungen müssen für Caching und zum Benutzerzugriff WebProxy-Server unterstützen oder zumindest so designed sein, dass cachebare Informationen in einer solchen Web-Proxy-Infrastruktur auch zwischenge-
51
Sandini Bib 3 Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
speichert werden können. Applikationsspezifische Proxy-Server werden nur auf Application-Level-Gateway in Firewalls zur Unterstützung der 100%igen Netzwerktrennung eingesetzt.
3.2
Proxy-Konzept
Viele Informationen, die in Webanwendungen abgelegt sind, werden nicht als dynamisch angesehen, das bedeutet, sie haben eine Gültigkeitsdauer, in der sie sich nicht verändern. Da ein bestimmender Faktor in den IT-Kosten heutzutage die Bandbreite in WAN-Verbindungen ist, ist auf jeden Fall dafür zu sorgen, dass Dokumente, deren Lebensspanne noch nicht überschritten ist, möglichst selten über solche Leitungen übertragen werden. Dies bedeutet, solche Dokumente müssen in einem Cache zwischengespeichert werden. Ein solcher Cache wird verbunden mit einem Proxy-Server, der den zentralen Zugriffspunkt einer Einheit auf Internet- und GAN-Services bietet. Ein solcher Zugriffspunkt hat neben der Informationsspeicherung und damit der Bandbreitenoptimierung auch den Vorteil der Zugangskontrolle auf bestimmte Dienste anhand der Dienste selbst oder anhand eines Berechtigungskonzepts. Da solche Cache- und Proxy-Server auch kaskadiert werden können, bietet es sich an, eine entsprechende Hierarchie zu schaffen, die eine weitere Optimierung der Bandbreite zulässt. Die Konfiguration für eine solche Zugriffshierarchie auf Clientseite kann manuell umständlich werden, insbesondere wenn Ausfallssicherheitskonzepte ebenfalls implementiert werden sollen. Aus diesem Grund wird zugleich von den Servern eine automatische Browser-Konfiguration vorgenommen werden, die alle notwendigen Konfigurationen für den Benutzer vornimmt.
3.3
Zugang zu internen Netzen
Der WebFarm-Standard definiert das Layout eines Zugangspunkts zu anderen unsicheren Drittnetzen in der Sicherheitsinfrastruktur. Hier wird in der DMZ II ein Ort geschaffen, in dem interne Dienste bereitgestellt werden können, wie z.B. der Dienst eines Zugangs-Proxy-Servers. Es ist davon auszugehen, dass ein solcher Proxy-Server, da es nur eine beschränkte Anzahl an Zugangspunkten zu externen Netzen innerhalb des GAN gibt, stark belastet ist, darum sollte er sofort auf ein Clustering-System oder einen Proxy-Cluster ausgelegt werden. Von Anfang an sollten also in der DMZ II eines Zugangsknotens zwei interne Proxy-Server verfügbar sein. Diese internen Proxy-Server sind für das Routing eventuell eingehender interner Requests zu anderen internen Servern verantwortlich, für die Benutzerberechtigung und für die
52
Sandini Bib Proxy-Hierarchie
Zugriffskontrolle an sich. Ebenso stehen diese Server in Kontakt mit den so genannten PAC(Proxy Automatic Configuration)-File-Servern, um die Möglichkeiten zum Load-Sharing und zur Ausfallsicherheit mit den Proxy-Clustern und anderen Zugangspunkten zu verwalten. In der DMZ I, also in der externen DMZ der Sicherheitskonstruktion, befindet sich ein gleich konzipierter Cluster an Proxy-Servern, die den tatsächlichen Zugang in das externe Netz vornehmen. Diese Server haben die Aufgabe, Content-Security zu implementieren sowie das allgemeine Filtern von ungewollten Seiten (z.B. Pornographie oder Gewalt) vorzunehmen. Das Routing unter diesen Proxy-Servern ist so ausgelegt, dass sie auch beim Ausfall einzelner Komponenten dieser beiden kaskadierten Cluster verfügbar sind und ggf. lediglich die Performancefluktuationen aufweisen. PAC-FileServer
Internet
LAN Externer Packetfilter
Interner Paketfilter Packetfilter
Application Levelgateway Proxy-ext-1 Proxy-ext-2
ClusterManagement/Load Sharing
Proxy-in-1
BrowserConfiguration RoutingInformationExchange
Proxy-in-2
Client
Client AccesstoProxy Proxy AccesstoProxy AccesstoFinal Destination
Abbildung 3.1: Routing unter Proxy-Servern
Für den Zugriff auf interne Anwendungen bzw. Anwendungen im GAN wird eine andere Proxy-Konstruktion verwendet.
3.4
Proxy-Hierarchie
Wie bereits kurz in der generellen Idee der Proxy-Infrastruktur beschrieben, ist es sinnvoll, eine Hierarchie von Proxy-Servern aufzubauen, welche die Kommunikation innerhalb des GAN und mit den Verbindungen nach außen so bandbreitenschonend und effizient wie möglich gestalten. Studien über allgemeine Anwendungsentwicklung besagen, dass in kürzester Zeit 75% aller Anwendungen als Webanwendungen realisiert werden, was auf die offensichtlichen Vorteile dieser Plattform zurückzuführen ist. Aus
53
Sandini Bib 3 Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
diesem Grund muss eine Proxy-Infrastruktur robust sein und auch zukünftigen Anforderungen standhalten bzw. entsprechend erweiterbar sein. Der Nutzen einer Proxy-Infrastruktur wird durch die Anwendungsentwicklung an sich festgelegt, denn die Anwendungen müssen ein Caching von nicht veränderten Daten unterstützen und können auf diese Weise die Kommunikation im GAN wesentlich verbessern sowie enorme IT-Kosten einsparen, die anfallen würden, wenn Bandbreitenerweiterungen für ganze GANs im größeren Umfang notwendig werden. Die entsprechenden Vorgaben sind im Anwendungsentwicklungsteil des WebFarm-Standards hinterlegt. Generell ist davon auszugehen, dass es unterschiedliche Größen von Arbeitsgruppen gibt, die mit unterschiedlichen Anforderungen Anwendungen innerhalb ihrer eigenen Arbeitsgruppe und innerhalb des GAN beanspruchen. Hierbei ist dann auch eine entsprechende Proxy-Infrastruktur erforderlich. Die Anbindungspunkte an externe Netze bieten gute Knotenpunkte in der Infrastruktur, da sie ohnehin technisch und GAN-verbindungstechnisch am besten ausgestattet sind. PAC-FileServer
Internet
LAN Externer Packetfilter
Interner Packetfilter
Application Levelgateway Proxy-ext-1 Proxy-ext-2
ClusterManagement/Load Sharing
Proxy-in-1
GAN Application BrowserConfiguration RoutingInformationExchange
Proxy-in-2
intraproxy-1 intraproxy-2
Client
LAN Application Client AccesstoProxy Proxy AccesstoProxy AccesstoFinal Destination
Abbildung 3.2: Proxy-Infrastruktur
Darum werden an den Anbindungspunkten so genannte Intra-Proxy-Cluster errichtet, die das interne Routing der Proxy-Infrastruktur übernehmen und den Zugriff auf interne Applikationen steuern. Die automatische Konfiguration der Clients unterscheidet anhand des eingeführten DNS, welche Zugriffe intern und welche über die Außenanbindung zu erfolgen haben, und verwendet also entsprechend die Proxy-int- oder Intra-Proxy-Server beim Zugriff.
54
Sandini Bib Proxy-Hierarchie
Für den Aufbau der eigentlichen Hierarchie sind vier verschiedene Arbeitsumgebungen, an Größe der Umgebung gemessen, vorgesehen. Es handelt sich nach kleiner werdender Größe sortiert um die Typen 왘 Zentrale 왘 Niederlassung 왘 Geschäftsstelle 왘 Außenstelle
Generell kann aber gesagt werden, dass ab einem Team von vier Benutzern, die in ihrer täglichen Arbeit mehr als 25% Webanwendungen nutzen sollen, ein Proxy auf jeden Fall sinnvoll ist. Betrachtet man den Anstieg am Nutzen von Webanwendungen muss man also von einer Proxy-Infrastruktur ab einer Außenstelle von vier Benutzern rechnen, die mit großer Wahrscheinlichkeit über eine sehr langsame Leitung angebunden sind und daher die Investition in einen Proxy-Server eher rechtfertigen, als die Leitung zu erweitern. Ohne Proxy-Server muss von einer Leitungsverfügbarkeit von 64 KBps bis 128 KBps pro Benutzer ausgegangen werden.
proxy-in
intraproxy
ne
bo
ck
AN
Ba
Client
Client
G
Intraproxy-sub-1
Client
Client
Intraproxy-sub-2
Client
Client
Intraproxy-sub-3
Client
Client
Abbildung 3.3: Konfiguration Proxy-Routing
55
Sandini Bib 3 Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
Die Skizze zeigt die Konfiguration des Proxy-Routings sowie der Client-Konfiguration. Sowohl das Routing als auch vor allem die Client-Konfiguration wird durch PAC-Files generiert, um auf eventuelle Systemausfälle oder Netzwerkbesonderheiten dynamisch reagieren zu können. Bis auf die Zugriff-Cluster für externe Netze benötigen die Proxy-Server keine Zugriffskontrolle, da das GAN ein offener Transaktionsraum ist. Einzelne Anwendungen im GAN werden nicht durch die Proxy-Server, sondern durch deren Benutzerverifikation bzw. Freischaltungen in der Firewall an sich geschützt.
3.5
Browser-Konfiguration
Alle Browser-Konfigurationen werden automatisch generiert und vom Browser bei jedem Start vom so genannten PAC-File-Server heruntergeladen, wenn dieser verfügbar ist. Sollte der PAC-File-Server nicht verfügbar sein, wird eine Standardeinstellung verwendet, die ebenfalls durch den PAC-File-Server verteilt werden kann, wenn eine Verbindung zu diesem besteht. Eine solche automatisierte Konfiguration der Browser ist sehr sinnvoll, da auf diese Weise auch bei Netzwerk- und Infrastrukturveränderungen keine weitere Interaktion mit Clients und Client-Arbeitsplätzen erforderlich wird, was die Kosten für solche Änderungen und Erweiterungen erheblich verringert. Zusätzlich werden lokale Konfigurationsfehler als Fehlerquelle ausgeschlossen, was den Benutzersupport erheblich entlastet.
3.5.1
Zentrale
In zentralen Standorten ist die Konfiguration der Browser komplexer als in anderen Standorten. Dies liegt daran, dass hier der Browser unterscheidet, ob es sich um einen GAN-Zugriff oder um einen Zugriff auf externe Netze handelt. Im Falle eines Zugriffs auf GAN-Applikationen werden Zugriffe auf den Cluster der Intra-Proxy-Server gesendet und direkt dort verarbeitet. Da hier auch keine Benutzerkontrolle vorgenommen wird, ist es nicht erforderlich, in der Zentrale selbst eine Schicht zwischen Proxy-Proxy-Verbindungen und Client-Proxy-Verbindungen einzuziehen. Im Falle eines Zugriffs auf externe Adressen wird der Proxy-In-Cluster verwendet, der direkt über die Sicherheitskonstruktion und unter Verwendung der Proxy-Ext-Cluster eine Verbindung zum gewünschten externen Server herstellen kann, wenn der verwendete Client über die entsprechende Berechtigung verfügt und die gewünschte Zieladresse nicht generell gefiltert wird.
56
Sandini Bib Cache
3.5.2
Nicht-Zentrale
In allen anderen Standorten, sprich in allen Standorten, die nicht selbst über eine Außenanbindung verfügen, werden die Clients so konfiguriert, dass sie auf jeden Fall ihren lokalen Proxy verwenden. Die Proxy-Konfiguration wird so erweitert, dass die in der Hierarchie höher liegenden Proxy-Server als FallBacks verwendet werden, wenn der lokale Proxy-Server nicht verfügbar ist, so dass der Client in fast allen Fällen eine Verbindung zur gewünschten Anwendung erhalten wird. Aus diesem Grund muss auch der Intra-Proxy-Cluster so konfiguriert sein, dass er ggf. (im Fall-Back-Fall) Anfragen an den Proxy-In-Cluster weiterleiten kann.
3.6
Cache
Eine der wichtigsten Funktionen der Proxy-Server ist der Cache, also das Zwischenspeichern von Daten, damit diese nicht über externe Verbindungen wieder und wieder herangeholt werden müssen. Die verwendeten Protokolle unterstützen im Caching eine Nachfrage an den Originalserver, ob sich das Dokument verändert hat – wenn nicht, wird das Dokument nicht neu übertragen, sondern der Client, der den Proxy nach dem Dokument gefragt hat, bekommt das zwischengespeicherte Dokument; wenn sich das Dokument verändert hat, wird es heruntergeladen und auf dem Proxy-Cache-Server zwischengespeichert und steht somit auch anderen Clients zum Abruf zur Verfügung. Generell ist die Art des Caching und die Strategie des Caching abhängig von der Software zu sehen. Es sollte aber ein moderner Priority-Queue-CacheAnsatz gewählt werden, der auch von allen Produkten, die im WebFarmStandard eingesetzt werden, verwendet wird. Zusätzlich ist die Frage nach Garbage-Collection, also dem Sammeln alter Daten, die im Zwischenspeicher liegen und nie oder nur sehr selten abgerufen werden und wichtigeren Daten den verfügbaren Speicherplatz wegnehmen, zu stellen; eine solche Garbage-Collection oder eine Reorganisation des Cache-Space sollte auf jeden Fall definierbar sein.
3.6.1
Was kann gecached werden?
Die Grundsatzfrage nach der Effizienz von Anwendungen oder der Effizienz von Proxy-Servern an sich ist, was kann eigentlich alles gecached werden, und was muss eins zu eins durchgeschleust werden.
57
Sandini Bib 3 Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
Die Antwort ist relativ einfach. Gecached werden können alle Informationen, die eine gleich bleibende URL, also eine gleich bleibende Lokation in einer Anwendung, haben und nicht direkten Programmcode oder Verschlüsselung beinhalten. Nicht gecached werden können alle Informationen, die dynamische URLs haben, Anwendungen, die auf dem Server ausgeführt werden müssen, um Programmresultate zu übertragen, oder Anwendungen, die dem Client übertragen werden und dort nicht abgelegt werden. Nicht gecached werden also z.B. Dokumente, die von einem Such-CGI zurückgeliefert werden oder von einem datenbankbasierten Content-Management-Werkzeug, das jeden Zugriff auf die Informationsbasis dynamisch generiert; genauso wenig gecached werden JAVA-Applets, weil diese Informationen enthalten, die sich von Release zu Release ändern können. Ebenfalls nicht zwischengespeichert werden verschlüsselte Informationen, also Informationen, die per SSL übertragen werden. Caching von Applets und SSL-Übertragungen Applets werden, weil es ja Applikationen sind, die für das einmalige Ausführen gedacht sind, genauso wenig wie verschlüsselt übertragene Daten nicht zwischengespeichert, da Applets und auch verschlüsselte Daten durchaus cachebar sein sollten, wenn dies der Sicherheitsstufe der Infrastruktur entspricht, was bei internen Netzen gegeben ist. Es ist darum möglich, Applets mit einem Zertifikat bei der Entwicklung zu versehen, das die Version des Applets und dessen Authentizität kennzeichnet. Der Proxy-Server kann angewiesen werden, dass korrekt identifizierte und versionierte Applets zwischengespeichert werden. In einigen Situationen kann der Proxy auch mit einem eigenen Verschlüsselungszertifikat ausgerüstet werden und kann dann auch gemäß des WebFarm-Standards angewiesen werden, mit SSL übertragene HTML- oder andere Dateien zwischenzuspeichern.
3.7
Reverse-Proxy als Anwendungsschutz
Um einen besonderen Schutz für den Zugriff auf bestimmte Anwendungen zu schaffen, ist es eventuell wünschenswert, den Zugriff auf Anwendungen über einen zentralen Punkt zu etablieren. Hierbei kann ein Proxy-Server verwendet werden, der in entgegengesetzter Richtung arbeitet – als ReverseProxy.
58
Sandini Bib Normaler Zugriff
3.8
Normaler Zugriff
Bei einer Webanwendung, die in einem geschützten Segment einer Firewall steht, werden die Zugriffe der externen Benutzer meist durch einen Packetfilter auf einen bestimmten Port der Webanwendung (üblicherweise 80 oder 443) beschränkt. Die Anwendung selbst muss sich um Verschlüsselung, Zugriffsberechtigungen und Content-Berechtigungen sowie potenzielle Angriffe kümmern.
Client Ethernet
WAN Packet Filter
Application
Client
Client
Abbildung 3.4: Normaler Zugriff
Diese Installation bietet üblicherweise ein ausreichendes Maß an Sicherheit, da die Berechtigungsstrukturen in Webanwendungen sehr granulär definiert werden können. Soll aber der Zugriff auf die Anwendung ohne Kontakt zur eigentlichen Anwendung eingeschränkt werden, soll bei externen Zugriffen auf eine interne Anwendung Verschlüsselung zum Einsatz kommen oder auch die Trennung von Zugriffssegmenten erzeugt werden, so ist die normale Lösung nicht ausreichend.
3.9
Zugriff über einen Reverse-Proxy
Konstruktionen mit Reverse-Proxy-Servern können diese Anforderungen erfüllen. Sie bieten einen Zugriffspunkt für zumeist externe Benutzer auf bestimmte Anwendungsgruppen, der vom Unternehmen selbst kontrolliert werden kann und noch nicht dem Sicherheitsniveau der Anwendungen selbst entsprechen muss.
3.9.1
Reverse-Proxy zur Zugriffskontrolle
In der Konfiguration des Reverse-Proxy-Servers kann eine Zugriffskontrolle auf die Anwendung selbst erfolgen. Es stehen hierbei alle Kontrollmechanismen des HTTP-Protokolls zur Verfügung. Grundsätzlich ist die beste Lösung
59
Sandini Bib 3 Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
eine Zugangskontrolle über Zertifikate, aber auch Passwortverfahren sind möglich. Die im WebFarm-Standard eingesetzte Proxy-Software unterstützt auch Side-Includes, über die andere Methoden eingebracht werden können, die aber für spezifische Anwendungen ausgewählt werden müssen. Zusätzlich können bereits bestimmte Teile von Webanwendungen, die über URLs gekennzeichnet werden, durch die Identifikation des Benutzers am ProxyServer für bestimmte Benutzer überhaupt zugreifbar bzw. bereits am ProxyServer verweigert werden.
Client
Client LAN
Ethernet ApplicationLevelGateway
Application
WAN Packet Filter
ReverseProxy
Client
Client
Abbildung 3.5: Zugriff über Reverse-Proxy
Das Vorhandensein einer Zugriffskontrolle über den Proxy-Server sollte die Anwendung nicht davon entbinden, selbst eine Berechtigungsschematik zu implementieren. Es kann so ein durchaus sinnvoller doppelter Schutz geschaffen werden, vor allem wenn der Reverse-Proxy für differenzierte Benutzergruppen eingesetzt wird.
3.9.2
Reverse-Proxy zur Trennung der Zugriffssegmente
Ist diese Trennung sicherheitstechnisch noch nicht ausreichend, können die Segmente, in denen die Anwendung platziert ist und in denen der tatsächliche Zugriff der Benutzer erfolgt, über den Reverse-Proxy getrennt werden. Dabei steht der Reverse-Proxy in einem anderen Segment des gefilterten Netzwerks als die Anwendung. Ein Zugriff auf dieses Segment ist dann über den Packetfilter nur noch vom Reverse-Proxy aus möglich. Auf diese Weise entsteht ein zusätzlicher Schutz für den Anwendungsserver selbst, und die Benutzerkontrolle auf bestimmte Serverbereiche kann auf dem Reverse-Proxy vorgezogen werden. Wie bereits erwähnt, kann dies nicht die Anwendung von einer eigenen Benutzerkontrolle entbinden. Eine zusätzliche Möglichkeit des Reverse-Proxy-Servers ist das Ändern des Namens der Anwendung, wenn z.B. eine Anwendung in der DMZ über einen DMZ-Strukturnamen angesprochen wird, vom GAN oder Internet aus
60
Sandini Bib Zugriff über einen Reverse-Proxy
Ethernet
aber über einen anderen Namen erreichbar oder zusätzlich über einen anderen Namen erreichbar sein soll, kann ein entsprechendes Mapping auf dem Proxy-Server konfiguriert werden. Bei einer solchen Konfiguration ist darauf zu achten, dass entweder die Anwendung so designed ist, dass sie nur relative Links in der eigenen Anwendung verwendet oder dass der ReverseProxy-Server, was mit der im WebFarm-Standard vorgeschlagenen ProxyUmgebung möglich ist, ein Content-Scanning vornimmt und eventuelle Links und Verweise auf den internen Server, der ja nicht angesprochen werden soll, erkennt und in die Adresse des Reverse-Proxy-Servers einträgt.
ApplicationServer Client
Client LAN
Ethernet ApplicationLevelGateway
WAN PacketFilter Packet Filter
Client
Client ReverseProxy
Abbildung 3.6: Reverse-Proxy mit Trennung der Zugriffssegmente
3.9.3
HTTPS-Zugriff auf HTTP-Anwendungen
In vielen Fällen macht es Sinn, eine interne Anwendung, die innerhalb des GAN einen Sicherheitsstandard hat, der keine Verschlüsselung vorschreibt, für den externen Gebrauch verschlüsselt anzubieten, da hier im Gegensatz zum GAN keinerlei Kontrolle über die Netzwerkwege besteht. Anwendungen, die für den internen Gebrauch entwickelt wurden und dann doch einem sicheren Umfeld zugeführt werden sollen, bzw. Anwendungen, die nachträglich durch Verschlüsselung abgesichert werden sollen, können mit einem Reverse-Proxy-Server von HTTP- auf HTTPS-Übertragung, die SSL zur Verbindungsabwicklung verwendet, umgestellt werden. Dabei erfolgt der verschlüsselte Zugriff vom Client bis hin zum ReverseProxy, der in diesem Falle ein eigenes Zertifikat benötigt. Der Reverse-Proxy selbst setzt dann auf den eigentlichen Application-Server um. Der WebFarmStandard sieht hier zwei verschiedene Konfigurationen vor. Erstens kann ein ganz normaler Reverse-Proxy-Server verwendet werden, der den Zugriff auf einen internen Application-Server umsetzt, wie das bei
61
Sandini Bib 3 Proxy-Infrastruktur, Browser-Konfiguration und Zugriffsberechtigung
Ethernet
den vorhergehenden Modellen bereits der Fall war. Zusätzlich zu den bisher beschriebenen Aufgaben des Reverse-Proxy-Servers kommt in diesem Fall noch das Umsetzen von HTTPS nach HTTP hinzu.
Application Server
Client
Client LAN
Ethernet Application Level Gateway
WAN Packet Filter
Client
HTTP HTTPS
Client
Reverse Proxy
Abbildung 3.7: Reverse-Proxy mit Umsetzung HTTP/HTTPS
Im anderen Falle wird der Reverse-Proxy-Server in den WWW-Server des Application-Servers integriert, und er setzt den Zugriff auf die lokale Maschine des Application-Servers um, eben nur auf den anderen Port. Hierzu kann entweder eine HTTPS nach HTTP-Umsetzung verwendet werden oder eben der Zugriff auf den Webtree des Application-Servers. Letztes ist nur sinnvoll möglich, wenn keine Namenumsetzung oder zusätzliche Benutzerberechtigung erfolgen soll und wenn der Aufwand, einen zweiten, identisch konfigurierten Webserver aufzusetzen, vertretbar ist.
Client
Client LAN
Ethernet Application Level Gateway
Packet Filter
Application
62
Client
Client
HTTP HTTPS
Abbildung 3.8: Integrierter Proxy
WAN
Sandini Bib
4
Authentifizierung/ Autorisation
4.1
Zielsetzung für dieses Dokument
Zunächst einmal muss es als nicht zentrale Aufgabe einer Webumgebung gesehen werden, einen unternehmenszentralen Identifikations- und Berechtigungsservice bereitzuhalten, auch wenn PKIs meistens über Webanwendungen realisiert werden. Ziel dieses Dokuments ist es, die Anforderungen an einen Authentifizierungs-Service und dessen Protokolle abzustecken, die Webanwendungen und deren Umgebung an derartige Dienstleistungen haben. Selbstverständlich kann dieses Dokument auch als Grundlage für den Aufbau entsprechender PKI- und Directory-Lösungen verwendet werden, da die Basisideen einer modernen Identifikations- und Berechtigungsumgebung selbstverständlich abgedeckt sind.
4.2
Grundsätze der Berechtigungsstruktur
Grundsätzlich ist die Geschichte von Berechtigungen und Rechten einzelner Benutzer so alt wie die Anwendungsentwicklung auf IT-Systemen selbst. Aktuell wird eine Rechtevergabe aber nicht mehr nur an einen Benutzer selbst festgemacht, sondern an den Rollen des Benutzers innerhalb eines Unternehmens und dessen Zugehörigkeit zu verschiedenen Rollengruppen. Es wird in diesem Falle von einer so genannten rollen-orientierten Berechtigung gesprochen, die auch die Trennung von Person und Rollen, wie sie von vielen internen und externen Revisionen gefordert wird, unterstützt. Auf diese Weise können darauf folgende Berechtigungsstrukturen eben nicht an Benutzern selbst, sondern an deren Rollen innerhalb des Unternehmens festgemacht werden, was die Abhängigkeit von Unternehmen gegenüber einzelnen Personen verringert, die Verwaltung von Personalentwicklungen vereinfacht und einen generell besseren Überblick über die Berechtigungsstruktur erlaubt. In dieser Berechtigungsstruktur werden nun einzelne Rechte an bestimmte Rollengruppen vergeben.
63
Sandini Bib 4 Authentifizierung/Autorisation
User
User
CEO
User
Accountant
User
User
Manager
IT Staff
Abbildung 4.1: Benutzer und Berechtigungen
User
CEO
See Accounting
User
User
Accountant
Create Users
User
User
Manager
IT Staff
See Controlling
Computer Admin Logon
Abbildung 4.2: Benutzergruppen und Berechtigungen
Da es in größeren und globalen Organisationen eine Vielzahl von Rollen und eine noch größere Vielfalt an Rechten gibt, die zusätzlich noch von der Kombination von Rollen abhängen können, werden die Berechtigungen und Rollen sinnvollerweise in einer geordneten Struktur abgelegt und miteinander verbunden. Eine Baumstruktur bietet sich hier an, da mit dieser gleichzeitig »Ober«- und »Unter«-Rechte definiert werden können. In einer Baumstruktur an Rechten ist ein in der Hierarchie tiefer angesiedeltes Element immer eine Untermenge an Rechten, die in der höheren Ebene vorhanden sind.
64
Sandini Bib Grundsätze der Berechtigungsstruktur
GOD
Accounting See Data
Change Data
Create Reports
Controlling
IT
Abbildung 4.3: Struktur von Berechtigungen
Der Nachteil einer solchen Organisation von Rechten ist, dass es immer eine absolute Superberechtigung gibt, God oder Superuser, die alle Rechte, die definiert sind, vereinen. Andererseits ist es einfach klar definiert, dass eine solche Berechtigung nicht an einen Benutzer weitergegeben wird. GOD CEO Accounting Head of IT Departmenr
Head of Accounting
See Data
Head of Contolling
Change Data
Network Server
Create Reports Users NT
Unix
Print
Sup. Controlling
IT
Abbildung 4.4: Struktur von Berechtigungen (erweitert)
65
Sandini Bib 4 Authentifizierung/Autorisation
Ab einer bestimmten Tiefe im Berechtigungsbaum darf ein Berechtigter die Rechte für tiefer liegende Äste an andere Benutzer selbst weitervergeben, um ein dezentrales Berechtigungsmanagement, das die Administration weniger belastet und die Verantwortung erheblich verteilt und an diejenigen delegiert, die auch mit den einzelnen Rollen und deren Themen beschäftigt sind, zu schaffen. Viele Konzepte verbinden die Organisationsstruktur des Unternehmens mit der Berechtigungsstruktur und schaffen auf diese Weise einen linken und einen rechten Teilbaum, dessen Blätter und Knoten miteinander, eventuell mit bestimmten Bedingungen (wie Rechteweitervergabe gestattet oder nicht gestattet) verbunden sind. Ein solches Vorgehen kann in einem Directory-Server abgebildet werden. Nach modernen Standards wird ein solches Directory über LDAP angesprochen und ist in seinen Datenstrukturen sehr flexibel. Das bedeutet, an die einzelnen Berechtigungen und Benutzerobjekte können unterschiedlichste Daten angehängt werden, die ein einfacheres Arbeiten mit dem Directory ermöglichen und sehr viele Informationen in dem zentralen Directory einbringen.
4.3
WebFarm und Directories
Die Berechtigungsverwaltung von Webanwendungen über eine zentrale Datenbank mit Rechten erscheint sehr sinnvoll. Dabei sollte für jeden Hauptstandort eines WebFarm-Betriebszentrums eine Echtzeitkopie oder Replikation dieses Directory vorhanden sein. Wenn es ein verteiltes Konzept für die Pflege von Directories und Benutzerdatenbanken gibt, sollte in einem WebFarm-Betriebszentrum trotzdem eine Gesamtkopie (read only) vorhanden sein, um gegen eventuelle Backbone-Ausfälle im GAN eine gewisse Sicherheit zu bieten. Um die oben beschriebene Struktur von Rollen und deren resultierenden Berechtigungen abzubilden, wird eine Gruppenstruktur für die Rollen eingerichtet, in der dann die Benutzer selbst erfasst werden. Ebenfalls eine Gruppenstruktur wird für die Berechtigungen eingerichtet. Die Rollengruppen werden nun in verschiedenen Berechtigungsgruppen als Mitglieder aufgenommen, wodurch automatisch die Mitglieder der Rollengruppe die entsprechende Berechtigung erhalten. Eine Rollen-orientierte Trennung von Berechtigung und Benutzer sowie Berechtigung und Rolle ist somit gegeben, und der Verwaltungsaufwand für die Rollen- und Berechtigungsstruktur ist minimalisiert. Durch die flexible Erweiterbarkeit der Datenstrukturen in einem DirectoryServer, der mittels LDAP angesprochen wird, können von Webanwendungen eventuell zusätzlich geforderte Daten problemlos unabhängig von der Berechtigungsstruktur des Unternehmens abgelegt werden und die weitere Sign-on-Lösung in keinem Falle beeinflussen.
66
Sandini Bib WebFarm und Directories
4.3.1
WebFarm-Administrationsberechtigungsstruktur
Innerhalb der WebFarm zeichnet sich durch die klare Trennung der Infrastruktur und Serverkomponenten eine Rollenstruktur ab. Für jedes Thema der Basisinfrastruktur gibt es pro Lokation eine Rollengruppe, die genau diese Infrastrukturkomponenten verwalten darf. Bei weiteren Untergliederungen, wie z.B. Webservern, die eine Maschine, aber auch die Administration des HTTP-Servers selbst haben, wird der Baum weiter aufgeteilt. Dieser Baum lässt sich problemlos in fast jede Berechtigungsstruktur einbinden und mit Verbindungen in den Berechtigungsbaum des Unternehmens selbst bzw. arago als Outsourcing-Partner verbinden. Im Folgenden sollen die konkreten Berechtigungen in der Hard- und Software der WebFarm-Komponenten beschrieben werden. Die hier aufgeführten Berechtigungen und Rollen sind eine repräsentative Untermenge der WebFarm-Rollen. Weitere Rollen können aus den weiteren Infrastrukturkomponenten ggf. direkt abgeleitet werden (siehe Abbildung 4.5).
...
WebFarm Admin
WebFarm Location X1 Org Admin WebFarm Location X1 Admin WebFarm Proxy Admin WebFarm WebServer Admin WebFarm HTTP Server Admin WebFarm KM/ CMS Admin WebFarm DNS Admin WebFarm Security Admin WebFarm Firewall Admin WebFarm Intruder Detection Admin
Abbildung 4.5: Administrationsberechtigungsstruktur
67
Sandini Bib 4 Authentifizierung/Autorisation
WebFarm-Admin Der globale Superbenutzer in der WebFarm-Berechtigungsstruktur. Dieses Recht erhalten nur Mitglieder des zentralen Point of Administration. Generell wird dieses Recht nur auf Zeit vergeben, wenn in einem Punkt im globalen WebFarm-Verbund alle Rechte für den Betrieb der WebFarm zusammenlaufen, z.B. weil ein Nacht- oder Feiertagsdienst erbracht wird. Alle weiter unten aufgeführten Rechte sind in dieser Rolle vereint. Zusätzlich kommen noch organisatorische Rechte für die Beantragung globaler Infrastruktur hinzu, die normalerweise von den Lokation-Administratoren gemeinsam erarbeitet werden müssen. WebFarm-Lokation-Org-Admin Diese Rolle ist absichtlich getrennt von allen technischen Rollen, weil sie auf jeden Fall in den Händen des Unternehmens liegen muss. Hier werden alle organisatorischen Maßnahmen für den WebFarm-Betrieb, wie z.B. Beschaffung, Beantragung von Berechtigungen, Personalanforderungen, Zugangskontrollen, Lokationsverteilung usw., abgeklärt. Diese Berechtigung ist eher organisatorischer Natur, da sie aber Berechtigungen in organisatorischen SubSystemen voraussetzt, wird sie hier extra geführt. WebFarm-Lokation-Admin Der Superbenutzer für eine Lokation in der WebFarm-Konstruktion eines Unternehmens. Diese Rolle beinhaltet den Zugang auf alle Rechner, die zur Infrastruktur der WebFarm-gehören, inklusive aller Administrationsrechner. Zusätzlich ist auch der Zugriff auf alle in der WebFarm-betriebenen Rechner als Superbenutzer eingeschlossen. Weiterhin besteht Zugriff auf alle Administrationsserver der einzelnen Anwendungen, sofern diese technischer Natur sind und nicht fachliche Anwendungsinhalte betreffen. Zu allen fachlichen Administrationsoberflächen wird ein Testzugang in dieser Rolle eingeschlossen, damit eventuelle Fehlermeldungen und Fehlerreports nachverfolgt und gelöst werden können. WebFarm-Proxy-Admin In dieser Rolle werden alle administrativen Arbeiten um die Proxy-Infrastruktur und die Benutzerberechtigung auf den Proxys gemäß den Vorgaben der Organisationsadministration vorgenommen. Dies schließt Zugang zu allen Administrations- und Konfigurationsmechanismen der Proxy-Server sowie des PAC-File-Servers ein. Ein Superbenutzer-Zugriff ist nicht erforderlich, da die Installationen von neuer Software und dergleichen entweder unter den bestehenden Berechtigungen erfolgen (eigener Proxy-Benutzer) oder aber ohnehin von der technischen Lokationsadministration durchgeführt werden müssen.
68
Sandini Bib WebFarm und Directories
WebFarm-WebServer-Admin Diese Rolle beschreibt einen Benutzer, der die Rechte hat, einen Webserver inklusive aller statischen, automatischen und dynamischen Contents sowie aller seiner Anwendungen zu administrieren. Hierzu sind Berechtigungen auf den Benutzer, der den HTTP-Server betreibt, sowie die Benutzer, denen der Inhalt des Servers gehört, erforderlich. Zusätzlich ist ein Zugriff auf alle einen bestimmten Server betreffenden Knowledge-Management- und Content-Management-Komponenten in dieser Berechtigung eingeschlossen. Die definierten Unterberechtigung des WebFarm-HTTP-Server-Admin darf lediglich die Konfiguration des eigentlichen HTTP-Servers und seiner technischen Komponenten vornehmen. Die definierte Unterberechtigung des WebFarm-KM/CMS-Admin darf alle technischen Komponenten des KnowledgeManagement- und Content-Management-Systems für diesen einen Webserver administrieren. WebFarm-DNS-Admin Der WebFarm-DNS-Admin betreut die Datenstrukturen und die direkte Software des Nameservers einer bestimmten Lokation. Hierbei ist Zugriff auf den Datenspeicher und/oder die Datenbank notwendig, in der die Namendaten gehalten werden, sowie ein kompletter Zugriff auf die Administration der Software und deren Versionen. Eine Versionsänderung ist auf jeden Fall organisatorisch abzustellen, da sie Auswirkungen auf andere Lokationen haben wird. WebFarm-Security-Admin Der WebFarm-Security-Admin darf alle Sicherheits-komponenten, inklusive Superbenutzer-Berechtigung, auf den entsprechenden Maschinen technisch betreuen. Das bedeutet direkten Zugriff auf die Rechner, Zugriff auf alle Konfigurations- und Managementwerkzeuge sowie die eigentlichen Konfigurationen von Firewall- und Intrusion-Detection-Komponenten und anderen Elementen der Sicherheitskonstruktion und uneingeschränkten Zugriff auf entsprechende Logfiles. Die definierte Unterberechtigung des WebFarm-Firewall-Admins hat die gleichen Berechtigungen wie der Security-Admin, nur nicht auf Intrusion-Detection-Systeme und deren Logauswertungen. Zusätzlich wird eine Read-OnlyUnterberechtigung zur WebFarm-Firewall-Read-Only, damit eine Einsicht in die Konfiguration für Prüfer und dergleichen möglich wird, ohne dass die Firewall und deren Integrität gefährdet werden. Die definierte Unterberechtigung des WebFarm-Intrusion-Detection-Admins ermöglicht es dem Rolleninhaber, Zugriff auf alle Konfigurationen und Auswertungen sowie Logfiles der Intrusion-Detection-Konfiguration, nicht aber Superbenutzer-Rechte auf den entsprechenden Maschinen zu erlangen.
69
Sandini Bib 4 Authentifizierung/Autorisation
4.3.2
WebFarm-Directory
In jeder Betriebszentrale des DocMe-Systems befindet sich ein Directory-Server mit Back-up, der die im Unternehmen verwaltete Berechtigungsstruktur widerspiegelt. Es ist möglich auf andere Directory-Strukturen zuzugreifen, so lange diese über das beschriebene Gruppenkonzept in der beschriebenen Baumstruktur aufgeteilt sind und über LDAP angesprochen werden können. Ein direkter Schreibzugriff auf die Stammdaten des Directory (Benutzerstammdaten) ist von der WebFarm-Infrastruktur aus nicht notwendig. Es ist sinnvoll, das Directory so auszulegen, dass entsprechende Zusatzinformationen für z.B. bestimmte Webanwendungen oder Content-ManagementSysteme nach vorheriger Absprache mit der Administration des DirectoryService beschrieben werden können.
4.3.3
Webanwendungen und Berechtigungen
Alle Webanwendungen und Applikationen im Umfeld des Web bzw. alle Anwendungen und Services, die in der WebFarm-betrieben werden, greifen zur primären Benutzerberechtigung auf das WebFarm-Directory zu. Das bedeutet, dass die verwendete Software (HTTP-Server, Proxy-Server, …) als Berechtigungsabfrage keine lokale Datenbank, sondern auf jeden Fall LDAP zum Zugriff auf das Directory verwendet und auch für alle Teile der Anwendung die Primärberechtigung über den Zugriff auf den LDAP-Server realisiert wird. Wichtig ist, dass in den Webanwendungen nicht einzelne Benutzer, sondern Gruppen bzw. Knoten und Blätter im Gruppenast des Directory berechtigt werden, damit das Prinzip der rollen-orientierten Berechtigung gewährleistet ist. Alle Berechtigungsverfahren einzelner Services und Anwendungen (Basic, ACL, …) werden auf den LDAP-Server umgeleitet, um diesen, wie bereits betont, zur einzigen Quelle für Primärberechtigungen zu etablieren. Dieser Dienst darf gemäß des WebFarm-Standards auf keinen Fall umgangen werden. Wenn eine Anwendung eine Sekundärberechtigung z.B. durch ein Formular mit Benutzerabfrage benötigt, was in manchen Anwendungen zwingend erforderlich oder sicherheitstechnisch sinnvoll ist, sollte die Möglichkeit der Verwendung des LDAP-Servers mit Vorzug betrachtet werden. Fast alle benötigten Zusatzdaten können in den Gruppen oder Personenstrukturen des Directory zusätzlich abgelegt werden, für solche Fälle wird also keine gesonderte Lösung benötigt. Wenn eine gesonderte Lösung für eine Sekundärberechtigung verwendet wird, muss bzw. sollte diese auf der lokalen Maschine der Anwendung angesiedelt sein. Grundsätzlich ist die Bedingung für die Speicherung von Berech-
70
Sandini Bib Authentifizierung
tigungsdaten, dass die eigentlichen Sicherheitsdaten (Passwort, TAN, …) auf keinen Fall im Klartext gespeichert werden dürfen, sondern immer verschlüsselt abgelegt sein müssen. Bei der Auswahl von Anwendungen und beim Design neuer Anwendungen sollte auf jeden Fall auf die Unterstützung von LDAP als Berechtigungsprotokoll geachtet werden.
4.4
Authentifizierung
Benutzerstammdaten und deren dazugehörige Berechtigungen in einer einheitlichen Single-Sign-On-fähigen Struktur aufzubewahren, ist Grundlage für ein modernes Berechtigungssystem. Die Art und Weise, wie ein Benutzer tatsächlich identifiziert ist und damit seine Anrecht auf die seinen Stammdaten zugehörigen Berechtigungen nachweist, ist entscheidend für den Sicherheitsstandard in einem Unternehmen. Es gibt die unterschiedlichsten Verfahren, um einen solchen Identifikationsnachweis zu führen, die alle mehr oder weniger einsatzbereit und einsetzbar sind. Im Folgenden werden einige Verfahren betrachtet, die im Rahmen einer WebFarm-eingesetzt werden können bzw. weit verbreitet sind.
4.4.1
Passwörter
Die Identifikation mit Benutzernamen und Passwort ist absoluter Standard heutzutage und sicherlich auch für viele Webanwendungen absolut ausreichend. Bekannt ist die Problematik des Diebstahls oder der Weitergabe von Passwörtern mit Benutzerkennungen. Es ist aus diesem Grund unbedingt erforderlich, dass eine dem WebFarm-Dokument »Zugangsverantwortlichkeit« entsprechende Vereinbarung mit den Mitarbeitern, die eine solche Zugangskontrolllösung verwenden, getroffen wird. In diesem Dokument wird der Benutzer als Verantwortlicher für seinen Rechnerzugang festgelegt, der die Beweispflicht bei Missbrauch auf den Benutzer verlagert, da er die vollständige Verantwortung für seinen Zugang trägt. Dies setzt voraus, dass Passwörter nicht im Klartext gespeichert werden dürfen, da ansonsten die juristische Situation ungeklärt ist. Es ist auf eine verschlüsselte Übertragung der Benutzerkennung und des Passworts ab einem bestimmten Sicherheitslevel zu achten.
4.4.2
PIN-TAN (nicht empfohlen)
Weit verbreitet sind so genannte PIN-TAN-Verfahren, bei denen sich ein Benutzer über eine Benutzerkennung und eine so genannte PIN (Persönliche Identifikation) oder ein Passwort identifiziert und jede Interaktion mit dem
71
Sandini Bib 4 Authentifizierung/Autorisation
System durch eine TAN (Transaktionskennung) validiert wird. Das Problem hierbei ist, dass Passworteingaben sehr häufig notwendig sind und somit die Gefahr besteht, dass diese leicht abgeschaut werden können. Zusätzlich gestalten sich die TANs oder einmal benutzte Passwörter meist so komplex, dass sie ausgedruckt und mitgeführt werden müssen, was offensichtlich keinen Sicherheitsgewinn, sondern eher eine Verschlechterung des Sicherheitsstandards nach sich zieht. In WebFarm-konformen Anwendungen sollten also keine PIN-TAN-Verfahren eingesetzt werden.
4.4.3
Zertifikate
Die momentan modernste Art der Benutzeridentifikation. Es wird ein Schlüssel für einen Benutzer erzeugt, der mittels eines vom Benutzer selbst definierten Passworts geschützt werden kann. Dieser Schlüssel besitzt einen öffentlichen Teil, der mathematisch an den geheimen Teil des Schlüssels gekoppelt ist. Es findet die Zertifizierung des öffentlichen Schlüssels statt, d.h., die Authentizität des Schlüssels wird von einer vertrauenswürdigen Partei oder Einrichtung bestätigt und elektronisch hinterlegt. Über diesen Schlüssel kann sich nun ein Benutzer bei einem System identifizieren. Es ist gleichzeitig validiert, dass es sich um einen korrekten Schlüssel (Benutzerpasswort) handelt und dass es tatsächlich der Benutzer ist, für den er sich ausgibt (Zertifizierung). Es erscheint sinnvoll, möglichst viele Anwendungen mit dieser Zertifizierungstechnik auszustatten. Man kann hierzu in einem Unternehmen eine so genannte PKI (Public Key Infrastructure) aufbauen, die für die Vergabe von Schlüsseln, deren Verwaltung (Rechte) und deren Zertifizierung Sorge trägt.
4.4.4
Smartcards, Chipkarten und Buttons
Diese Verfahren setzten ein zusätzliches Stück Hardware beim Benutzer voraus, das die Identität des Benutzers hält und eventuell noch zusätzliche Verschlüsselungsoperationen durchführen kann. Sicherlich sind mit der Einführung eines solchen Systems erhebliche Kosten verbunden. Wünschenswert sind für das System, dass die Schlüssel des Benutzers nur im Authentifizierung-Medium vorhanden sind und lediglich ein API zu diesem Medium besteht, was z.B. im Falle der i-Buttons realisiert ist. Diese Lösungen sind sehr sinnvoll und bedeuten mit Sicherheit einen sehr guten Sicherheitslevel, es ist aber zu berücksichtigen, dass sie Eingriffe in die Benutzerumgebung erfordern und auch sehr kostenintensiv sein können.
4.4.5
Biometrische Verfahren
Hierbei handelt es sich um Verfahren, bei denen Körpermerkmale (Fingerabdruck, Stimme, Iris-Scan, …) als Identifikation einer Person verwendet werden. Hier wird eine reine Identifikation vorgenommen, im Gegensatz zu Zer72
Sandini Bib Accounting und Billing-Infrastruktur
tifikaten oder Button-Lösungen ist keine zusätzliche Verschlüsselungslogik direkt in der Identifikation eingebaut. Sicherlich handelt es sich um die eindeutigsten Identifikationsverfahren, die für die Identifikation den an sich besten Sicherheitsstandard gewährleisten. Allerdings sind die Verfahren für eine flächendeckende Einführung bei Anwendern von Webanwendungen doch wesentlich zu teuer und dem Standard nicht entsprechend. Bei Zugangskontrollen zu Rechnerräumen oder auch eventuell einzelner besonders geschützter Konsolen sind solche Verfahren sehr gut einsetzbar.
4.5
Accounting und Billing-Infrastruktur
Die statistische Auswertung von Webanwendungen und anderen Diensten, die im Zusammenhang oder Zusammenspiel mit den neuen Medien stehen, ist oft ein wichtiger Bestandteil der Marktforschung und Bewertung von entsprechenden Projekten. Neben diesen Image-Faktoren spielt die Betrachtung des Zugriffsverhaltens der Benutzer, des Lastverhaltens der Hard- und Software und des Transferverhaltens der Anwendung für die Planung der technischen Infrastruktur, aber auch für die Kostenweitergabe und korrekte Abrechnung einzelner Anwendungen und Benutzer eine wesentliche Rolle. Die Daten zur Last-, Transfer- und Benutzerauswertung fallen direkt auf den Anwendungsmaschinen an, es müssen also nicht zusätzliche Datenerfassungspunkte geschaffen werden. Das WebFarm-Konzept sieht eine Reihe von vorgefertigten Statistiken und Auswertungen sowie eine Schnittstelle zur Datenlieferung von Accountingund Billing-Daten an entsprechende andere Anwendungen vor.
4.6
Daten
Die Grundfragen sind selbstverständlich, welche Daten werden überhaupt mit dem WebFarm-Standard erfasst, und wie können diese dann ausgewertet werden? Gewöhnlich existieren in einem Unternehmen Vorschriften der Revision für die Behandlung von Journal- und Protokolldateien, wie diese ja in allen Facetten im Rahmen des Betriebs von Webanwendungen, Firewalls, Proxy-Servern usw. anfallen. Diese Vorschriften müssen ohnehin eingehalten werden, ermöglichen aber gleichzeitig eine entsprechende Auswertung dieser Dateien mit Standardwerkzeugen und individuellen Abfragen. Es werden folgende Logdaten für Auswertungen gesammelt: 왘 HTTP/HTTPS-Server-Logs (Extended Format) 왘 Proxy-Server-Logs
73
Sandini Bib 4 Authentifizierung/Autorisation
왘 Application-Level-Gateway-Logs 왘 WatchMe-Logs (DB) (siehe Systembetrieb)
Weiterhin werden Daten gesammelt, die allerdings nur zu Archivzwecken und nicht zur direkten Auswertung verwendet werden: 왘 Packetfilter-Logs 왘 Intrusion-Detection-Logs 왘 Login- und SU-Logs
Zusätzlich zu diesen über Protokolldateien anfallenden Daten werden Daten über das System vom Überwachungssystem und Monitorwerkzeugen gesammelt und zur Auswertung bereitgestellt. Diese Daten umfassen: 왘 Plattenkapazität 왘 Prozessorlast 왘 Netzwerkverkehr 왘 nach Diensten 왘 nach Quellen 왘 nach Zielen Mit dieser Sammlung an Daten werden die Standardauswertungen auf den Monitoranwendungen der WebFarm-Betriebszentren erstellt, die für die Administratoren, Benutzer und Auftraggeber interessante Einsichten in das System liefern.
Zusätzlich werden die Daten, wie bereits erwähnt, auf Wunsch an ein internes oder externes Billing-System weitergeleitet, auf dem eine dienstbezogene Rechnungsstellung ermöglicht wird. In zukünftigen WebFarm-Standarddokumenten wird ein solches Billing-System direkter Bestandteil der WebFarm-werden.
4.7
Standardauswertungen
Wie bereits erwähnt, werden im WebFarm-Standard einige Auswertungen standardisiert für alle betriebenen Komponenten erzeugt. Diese Auswertungen sind, falls nicht explizit anders gewünscht, automatisch für den Auftraggeber und den technischen Ansprechpartner der Anwendung verfügbar. Die WebFarm-Administration verwendet diese Auswertungen unter anderem, um die Entwicklung des Anwendungsverhaltens zu beobachten und rechtzeitig Auslastungen und Überlastungen vorhersagen zu können bzw. sofort die entsprechenden Maßnahmen ergreifen zu können.
74
Sandini Bib Standardauswertungen
4.7.1
Server
Standardserver Für einen Standardserver werden unterschiedliche Statistiken ermittelt. Diese beinhalten die Systemlast, die eingehenden und ausgehenden Netzwerkdaten sowie Platten und Speicherstatistiken. Die Daten werden alle zwanzig, für einen normalen Rechner maximal alle zwanzig Minuten erstellt. Es existieren Grafiken und Auswertungen über folgende Zeitspannen: 왘 Die letzten 24 Stunden 왘 24-Stunden-Durchschnitt 왘 Wochendurchschnitt 왘 Monatsdurchschnitt
Abbildung 4.6: Statistik Systemlast
Neben diesen reinen Auswertungen der Netzlast ist auch die Betrachtung des allgemeinen Maschinenstatus sehr wichtig. Hierbei ist eine kurzfristige historische Betrachtung aber vor allem des aktuellen Status interessant.
75
Sandini Bib 4 Authentifizierung/Autorisation
Weiterhin wird für jede Maschine eine Verfügbarkeitsrechnung dargestellt, die dem Auftraggeber die komplette Verfügbarkeit der Maschine sowie unterschiedliche Alarmstufen von Warnungen bis hin zum Systemausfall darstellt, damit ein allgemeiner Betriebseinblick vermittelt werden kann. Firewall-Komponenten Für eine Firewall-Komponente werden zunächst alle Auswertungen erzeugt, die auch für einen normalen Server vorhanden sind. Es werden in der Betrachtung des Netzwerkverkehrs kleinere Zeitabstände betrachtet. Es stehen auch Einzelauswertungen für die verschiedenen betrachteten Hauptprotokolle bzw. Dienste zur Verfügung. Hierbei werden die Netzwerkcharts skaliert nach verwendeter Bandbreite und relativ zur verfügbaren Bandbreite dargestellt.
Abbildung 4.7: Auswertungen für Firewall 왘 All Traffic
Hier wird einfach das Volumen des gesamten Netzverkehrs auf einem Interface der Firewall-Komponente dargestellt. 왘 Outgoing-E-Mail
Hier wird das Lastverhalten bei ausgehender E-Mail betrachtet, sprich der dazugehörende aus- und durch das Protokoll eingehende Verkehr. 76
Sandini Bib Standardauswertungen
왘 Incoming-E-Mail
Entsprechend der ausgehenden E-Mail reflektiert diese Statistik die eingehende E-Mail. 왘 Webserver
In dieser Statistik werden alle in der WebFarm über die Firewall-Komponente betriebenen Webserver dargestellt und wie viel Traffic welcher dieser Server eingehend und ausgehend erzeugt bzw. benötigt. 왘 Websurfing
Analog des von den Webservern in der WebFarm-Lokation verursachten Traffic wird hier der Traffic der Proxy-Server, sprich das eigentliche »Surfen«, aus dem internen Netz analysiert.
Abbildung 4.8: Analyse des Proxy-Traffic 왘 Combined-View
Die Combined-View zeigt relativ zum gesamten Traffic oder absolut zur verfügbaren Bandbreite die einzelnen untersuchten Werte. Zusätzlich werden alle Werte in einer Mitteldarstellung verfügbar gemacht, die nicht nur die durchschnittliche Betrachtung, wie bisher dargestellt, sondern auch die Höchst- und Tiefstwerte darstellt. Zur Darstellung dieser
77
Sandini Bib 4 Authentifizierung/Autorisation
Ansicht werden auch die Höchst- und Tiefstwerte über die Zeit gemittelt, um Ausreißer unter Kontrolle zu bringen, da ansonsten ein einmaliger 0-Wert die gesamte Darstellung ad absurdum führen würde. Diese Darstellung dient zur Gesamtlastbetrachtung, denn die Durchschnittswerte an sich geben einen guten Überblick über das Benutzerverhalten, es ist jedoch davon auszugehen, dass das Peak-Verhalten an sich als Maßstab der Kunden oder internen Benutzer für einen angebotenen Service herangezogen wird, und dieses Peak-Verhalten wird genau in einer solchen Darstellung gut veranschaulicht und kann zur Planung weiterer Netzwerkkomponenten, Strukturen, Server usw. herangezogen werden. Zusätzlich zu diesen Standardauswertungen wird bei Firewall-Komponenten auch Aktivitäten zu erhalten und eventuelle das Angriffsverhalten aus den Logfiles (Angriffszeitpunkt, Angriffsart, Angriffshäufigkeit) visualisiert, um einen Überblick über externe Gefahrenherde sofort zu identifizieren.
4.7.2
Anwendungen
Einzelne Anwendungen werden selbstverständlich auch ausgewertet. Die Daten werden für die Überwachung der Anwendung in der WebFarm-Administration ohnehin gewonnen und können sogleich zu einer Einsicht für den Auftraggeber der Verwendung des Dienstes bzw. dem Erfolg, der Auslastung und der Funktionalität darstellen. Diese Auswertungen werden oft für die Beurteilung einer Anwendung, für die Einschätzung von Weiterentwicklungen, zur Hardwareplanung und zum Marketing verwendet. Da die Daten sowieso gesammelt werden, ist eine Darstellung problemlos realisierbar und kann als Dienstleistung für Auftraggeber innerhalb der WebFarm-Konstruktion dargestellt werden. HTTP-Anwendungen Generell ist es schwierig, Webserver korrekt auszuwerten, es existieren mehrere Verfahren zur Zählung von Zugriffen. Das eindeutigste Verfahren ist immer noch das Auswerten von Loginformationen, wenn alle Informationen, die ein HTTP-Server erfassen kann, von diesem auch abgespeichert werden. Solche Auswertungen sollten auf jeden Fall über den gesamten Zeitraum der Existenz einer Anwendung oder für mindestens ein Jahr, zusätzlich monatlich und bei stark frequentierten Anwendungen sogar auf täglicher Basis erstellt werden. In einer WebFarm-Lokation gibt es hierfür einen Auswertungsrechner, der die Datenübertragungen der Logdateien erhält und die entsprechenden Auswertungen erstellt. In einer Extranet-Anwendung werden diese dann den berechtigten Benutzern zur Verfügung gestellt.
78
Sandini Bib Standardauswertungen
Abbildung 4.9: Webserver-Statistik
Je nach verwendeter Methode der Auswertung wird angezeigt, wie viele Zugriffe auf eine spezifische Seite erfolgt sind, wie viele Benutzer sich bestimmte Dateien angesehen und ausgewertet haben, und welche Resultate dies hervorgebracht hat. Wichtig bei der Auswertung von HTTP-Servern ist, neben den technischen Daten über Fehler und Bandbreite auch die Anwendungsdaten zu beachten. Für eine stetige Nutzung der Anwendung sprechen hier weniger die »Hits« auf einzelne Seiten, also die Anzahl der konkreten Einzelabrufe, sondern eher die so genannten »User Sessions« oder »Benutzer Sitzungen« – also Einheiten in der Logauswertung, in denen ein Benutzer mehrere Seiten innerhalb eines bestimmten Zeitraums aufgerufen hat, die miteinander verbunden sind. Proxy-Server Ähnliche Auswertungen werden für einen Proxy-Server erstellt, wobei hier weniger Werte betrachtet werden, weil die Datenflut, die von einem ausgelasteten Proxy erzeugt wird, ca. 500 MB pro Tag bedeutet, deren Auswertung weit über die normalerweise freie Kapazität von Auswertungsrechnern hinausgeht und keine nennenswerten zusätzlichen Informationen bietet.
79
Sandini Bib 4 Authentifizierung/Autorisation
Generell werden die folgenden Werte berechnet: 왘 Eingehender und ausgehender Verkehr für die umzusetzenden Protokolle 왘 Verhältnis von Cache- zu Non-Cache-Zugriffen und daraus resultierende
Traffic-Ersparnis 왘 Top 10 der Benutzer (Personen und Proxy getrennt) 왘 Top 10 der Zugriffsziele
4.8
Billing
Oft ist es auch interessant, die Kosten für Leitungs- und Rechenzeit direkt an Kostenstellen weiterzuberechnen. Hier bietet sich ein weites Feld an, das innerhalb eines Entwicklungs- und Betriebsstandards wie dem WebFarmStandard nicht abgedeckt werden kann. Grundsätzlich stehen alle Daten mit Quell- und Zieladresse zur Verfügung, so dass eine Auswertung der Daten auch auf Protokollebene möglich wird. Ein Anschluss an entsprechende Verrechnungswerkzeuge ist problemlos möglich. Es kann, wenn eine Quell/Benutzer-Tabelle vorliegt, eine Auswertung der Benutzer erstellt werden, die dann einer Berechnung zugrunde gelegt werden kann. Es ist für diese Auswertungen zu beachten, dass sie absolut personenbezogene Daten enthalten und dementsprechend unter das Datenschutzgesetz und das Gesetz zur betrieblichen Mitbestimmung fallen.
4.9
Content-Management-Übersicht
Content-Management entwickelt sich zu einem zentralen Thema bei allen Webanwendungen, da nicht nur die Interaktivität auf einer einheitlichen Plattform, sondern auch die Möglichkeiten der Darstellung und Verwaltung von Informationen und Anwendungen den Charme des World Wide Web ausmachen. Content-Management wird zu vielen Gelegenheiten als Schlagwort aufgeworfen und in jedem Zusammenhang anders verwendet. Der WebFarm-Standard betrachtet alle Elemente, die ein Webserver beinhalten kann, also HTML-Seiten, Dateien, CGI-Anwendungen, Application-Server-Anwendungen, JAVA-Classes usw. als Content. Nachfolgend wird ein kurzer Überblick über die Unterteilung der verschiedenen Content-Typen gegeben, die dann mit einzelnen Infrastrukturmaßnahmen über eine Lösung im WebFarm-Standard zur Anlieferung, Versionierung abgedeckt werden – eben Content-Management.
80
Sandini Bib Verteilung und Redaktion
4.10 Verteilung und Redaktion Die Verteilung von Content auf Anwendungen und die Redaktion muss gewährleistet werden, sprich die ordnungsgemäße Freigabe von Content, wenn diese erforderlich ist. Wird eine größere Anzahl von Webanwendungen betrieben, ist es nicht denkbar, jede dieser Anwendungen mit einem eigenen Verfahren zum Einspielen von Content zu versehen. Der WebFarm-Standard sieht hier über die Infrastruktur den Service der Redaktionssysteme und des Content-Pools vor. Mit diesen Werkzeugen können alle Arten von Informationen, Programmen und Dateien angeliefert und verteilt werden. Es wird zwischen statischem Content, dynamischem Content und semi-dynamischem Content unterschieden. Dabei ist unter statischem Content alles zu verstehen, was statisch für einen einzigen Server produziert wird, wie z.B. alle Programme für die Webanwendung, statisches HTML für die Navigation usw. Unter dynamischem Content ist alles zu verstehen, was die Webanwendung selbst an Content durch Programmaufrufe und Datenbankabfragen zur Anzeige beim Benutzer bringt (was über das Redaktionskonzept bereits für den statischen Content eingeschlossen ist). Semi-dynamischer Content sind alle tatsächlichen Informationen, die in eine Webanwendung einfließen, also Texte, Tabellen, Grafiken usw. Dieser semi-dynamische Content wird über einen Pool verteilt, der in sich ein objektorientiertes Modell zur Organisation der Informationen verwendet. Diese Pool-Strategie hat den Vorteil, dass einmal eingegangene Informationen auf vielen Webanwendungen gleichzeitig und nicht wie bei statischem Content nur allein auf einer Anwendung verwendet werden können, wobei die Informationen dann natürlich dem Layout und der Struktur der jeweiligen Anwendung entsprechen müssen. Durch diese Strategie, die durch den WebFarm-Standard vorgegeben wird, ist eine Informationswiederverwendung möglich, was einen enormen Effizienzund Ressourcengewinn darstellt und die Prozesse in einem Unternehmen sowie die Kundenbindung stark verbessern kann.
81
Sandini Bib 4 Authentifizierung/Autorisation
4.11 Style-Guides und Checking Datenstrom für dynamischen Content
Datenstrom für semidynamischen Content
WebFarm Admin Server
WebFarm Admin Server
Client
Client
LAN
Web Server
Web Server
LAN
Web Server
Web Server
Web Server
Web Server
Abbildung 4.10: Data-Flow
Ebenfalls durch den Mechanismus des Content-Managements wird die Umsetzung von Style-Guides eingeführt. Bei statischen Inhalten werden einfache Konventionen in der Namensgebung und im Code der übertragenen Dateien überprüft. Bei Anbindung einer Webanwendung an den ContentPool wird für diese Webanwendung die gelieferte Information im Styling und im Verhalten den Vorgaben der Anwendung angepasst.
82
Sandini Bib
5
Content-Management und Content-Pool
Im WebFarm-Standard wird eine Verfahrensweise definiert, um das im Unternehmen entstehende Wissen bzw. die im Unternehmen vorhandenen Informationen für Webanwendungen, die innerhalb einer WebFarm-Lokation betrieben werden, bereitzustellen. Es wird ein Wissensmanagement für die Informationsebene geschaffen, das aber über die reinen Funktionen des Wissens-Retrieval hinausgeht. Es wird darum von Information-Modelling gesprochen, da Informationen anhand eines Modells im Content-Pool hinterlegt werden, und in weit führenden Ebenen des Modells in einzelne Applikationen, deren Layout und deren Struktur eingebracht werden. Durch die in der WebFarm vorhandenen Infrastruktur können Anwendungen den geschaffenen Informationspool zur Erzeugung und Verwaltung ihres Content beliebig anzapfen und den Content aus dem Pool einbinden. Ein Management des Content in allen an diese Infrastruktur angeschlossenen Systemen wird durch Infrastrukturkomponenten, das Content-ManagementSystem, erreicht. Information model
Abbildung 5.1: Information-Model
83
Sandini Bib 5 Content-Management und Content-Pool
5.1
Information-Modelling
5.1.1
Was ist Information-Modelling?
Informationen werden in der heutigen von Auskünften und Nachrichten geprägten Gesellschaft immer mehr als ein wertvolles denn als ein notwendiges Gut angesehen. Das gilt nicht nur für die schon immer gut gehüteten und auch entsprechend behandelten Geschäftsgeheimnisse, sondern auch für Informationen des täglichen Bedarfs. In verschiedenen Projekten zur Workflow-Dokumentation oder des Workflow-Modelling bzw. des Business-Process-Reengineering werden Informationen auch immer nur zweitrangig behandelt, obwohl sie eigentlich zentraler Bestandteil des kompletten Arbeitsprozesses sind. Information-Modelling ist ein Ansatz zur Erfassung aller vorhandenen und benötigten Informationen sowie zur Dokumentation der benötigten ServiceLevel und Darstellungsarten für jeden vorhandenen Informationstyp. Dabei wird auf größere oder kleinere Entitäten innerhalb eines Unternehmens ein Modell erstellt, dem folgende Frage zugrunde liegt: Wer produziert welche Informationen, und wer will diese dann wann, wo und wie sehen? Zusätzlich kann selbstverständlich noch die Frage aufgeworfen werden, welche zusätzlichen Informationen noch produziert werden müssen. Gewöhnlich ist aber festzustellen, dass bereits viele Informationen, die benötigt werden, an anderen Stellen oder sogar redundant produziert werden. Dabei ist es wichtig, die Informationen von ihrer tatsächlichen Darstellung zu trennen. Ein solches Model stellt nicht nur die existierenden Informationen bzw. den Informationsbedarf dar, sondern auch die Informationsflüsse innerhalb einer Abteilung, eines Unternehmens, von und zu Partnern und von und zu Kunden dar. Auf der Basis eines solchen Modells können Geschäftsprozesse leicht abgebildet, eine redundante Produktion von Informationen vermieden und eine gute Verteilung der vorhandenen Informationen anhand des tatsächlichen Informationsverhaltens vorgenommen werden. Die daraus folgende Effizienzsteigerung sowie die verbesserte Transparenz der Unternehmensstruktur sind unübersehbar.
84
Sandini Bib Information-Modelling
5.1.2
Der Informationsbegriff
Informationen können die unterschiedlichsten Objekte darstellen und auch wieder beinhalten. Im Gegensatz zum Dokumentenmanagement können im Information-Modelling alle Facetten des Informationsbegriffs abgedeckt werden. Formate und Meta-Informationen sind von der Modellierung von Informationstypen, Informationserstellern oder Autoren sowie Informationsverbrauchern und allen dazu verwendeten technischen Hilfsmitteln wie Netzwerken und Servern völlig unabhängig. Formate werden erst thematisiert, wenn es um die Darstellungsart der Informationen geht, die nur einen geringen Teil eines ganzen Informationsmodells ausmacht.
5.1.3
Informationstypisierung
Stratege
Konzept
Agenturen
Framework
Layout, Navigation Struktur standardisiertes Layout
Pre-Production Server
verantwortlicher Redakteur
Freigabe
Production Server
Abbildung 5.2: Informationstypisierung
85
Sandini Bib 5 Content-Management und Content-Pool
Änderungsfrequenz Die Änderungsfrequenz von Informationen wirkt sich nicht unbedingt sofort auf das Informationsmodell selbst aus, hat aber gravierende Auswirkungen auf die Verwendbarkeit von Informationen und auf das technische Handling von Informationen. Deshalb wird die Änderungsfrequenz hier als ein Kriterium der Informationstypisierung vorgestellt. Statische Informationen Statische Informationen werden exakt einmal erstellt und haben dann für ihre gesamte, gewöhnlich recht lange Lebenszeit volle Gültigkeit. Statische Informationen sind daher keine aktuellen Informationen und werden im Allgemeinen auf dynamische Prozesse innerhalb eines Unternehmens wenig Einfluss haben: Sie können aber sehr wohl die Grundlage für solche Prozesse bilden, wenn es sich bei den Informationen z.B. um Verfahrensvorschriften handelt. Dynamische Informationen Dynamische Informationen sind eigentlich das exakte Gegenteil zu statischen Informationen. Dynamische Informationen haben ein sehr beschränktes Bedeutungsfeld und eine sehr kurze Lebensdauer, sie werden jedoch ständig durch aktuellere Informationen gleicher Bedeutung ersetzt: Auf diese Weise stellt eine Reihe von dynamischen Informationen wieder eine statische oder semi-dynamische Information dar (siehe Abbildung 5.3). Semi-dynamische Informationen Semi-dynamische Informationen haben eine lange Gültigkeit und werden im Gegensatz zu rein dynamischen Informationen nur selten komplett automatisch produziert. Dennoch werden von jenem semi-dynamischen Typ Informationen in gewissen Intervallen übermittelt, welche die bestehenden Informationen, ähnlich wie beim dynamischen Modell, ersetzen oder diese erweitern. Der weitaus größte Teil der in einem Unternehmen produzierten Informationen fällt in diese Kategorie, da die Informationen immer wieder den gleichen definierten Typ haben und trotzdem entweder einen Ersatz oder eine Erweiterung des bereits bestehenden Informationsbestandes darstellen.
86
Sandini Bib Information-Modelling
User/ Client AbfrageIndividual Entwicklung (App-Server)
LokalerData Storage
Zentrale (Meta) Datenbank
Abbildung 5.3: Übersicht dynamische Informationsabfrage
Klassifizierung Die eigentliche Typisierung von produzierten Informationen wird aber nicht durch die Änderungsfrequenz, sondern durch die Klassifizierung von Informationen vorgenommen. Dabei werden alle vorhandenen Informationen einem bestimmten Typ zugewiesen. Dieser Typ ist aus den Prozessen des Unternehmens gegriffen, so kann es z.B. Informationen vom Typ Pressemitteilungen oder Marktberichte geben. Da grundsätzlich eine riesige Informationsflut besteht, ist bei einem einfachen Brainstorming von Informationstypen schnell die Übersicht verloren. Es bietet sich eine hierarchische Organisation der Informationen an, bei der man Informationen mit gleichen Eigenschaften oder Grundvoraussetzungen gruppiert. Diese Hierarchisierung muss nicht auf einer Ebene stattfinden, d.h., auch die Gruppen können nochmals und nochmals gruppiert werden. Auf diese Weise entsteht ein Baum von vorhandenen Informationen mit aggregierten und abstrahierten Gruppen. Die Endpunkte des Baumes, die Blätter, sind tatsächlich produzierte Informationen.
87
Sandini Bib 5 Content-Management und Content-Pool
Da die Informationen Aufgrund gleicher Eigenschaften der Grundvoraussetzungen gruppiert wurden, bietet sich eine Objektorientierung der Informationshierarchie an. Das bedeutet, die Abstraktionsebenen erhalten alle Eigenschaften, die in der gesamten Gruppe vorhanden sind. Die einzelnen Informationen oder Subgruppen innerhalb einer solchen Ebenenklasse werden davon abgeleitet und können die mitgelieferten Attribute ohne weiteren Aufwand übernehmen (erben) oder diese wieder verändern. Dabei ist eine Kapselung von Eigenschaften vorgesehen, da jeweils nur ein Informationsobjekt seine konkreten Zusatzinformationen modifizieren oder erweitern kann. Die Idee der Polymorphie aus der Objektorientierung wird hier noch nicht benötigt, taucht aber bei den verschiedenen Darstellungen einer Information wieder auf, da es sich um unterschiedliche Repräsentationen der immer gleichen Information handelt. Es entsteht so zunächst ein Informationsbaum, der die vorhandenen Informationen gruppiert und alle innerhalb der Gruppen einheitlichen Eigenschaften in die Gruppenabstraktionsebene einmal für die gesamte Gruppe verlagert. So könnte es unter der Gruppe Pressemitteilungen verschiedene Operationsbereiche geben wie z.B. USA, Europa. Alle Informationen sind grundsätzlich Pressemitteilungen und haben die gleichen Attribute, unterscheiden sich aber von der Lokation und dementsprechend auch von der Einzelbehandlung der Information. Meta-Informationen Ein Informationsmodell hat theoretischen und praktischen Wert. Der theoretische Wert eines Informationsmodells liegt darin, dass Informationsersteller und Konsumenten eindeutig identifiziert sind, genau wie die tatsächlich produzierten Informationen. Daraus können bereits vorhandene Informationen an weitere Konsumenten abgegeben werden und die Erstellung neuer Informationen effizient geplant werden. Der praktische Wert eines Informationsmodells ergibt sich dann, wenn anhand des Modells die Informationen erfasst, weiter verteilt und umformatiert und eventuell auf andere Weise behandelt werden können. Ein solcher Automatismus bildet die Informationsflüsse innerhalb eines Unternehmens sofort praktisch aus. Damit eine korrekte Planung aber auch mit einer korrekten praktischen Behandlung von Informationen vorgenommen werden kann, muss die eigentliche Information mit Zusatzinformationen, den so genannten MetaInformationen, versehen werden. Zunächst muss auf jeden Fall der Informationstyp, sprich die Informationsklasse in den Meta-Informationen, vorhanden sein. Die Meta-Informationen können zusätzlich noch Daten über den Gültigkeitsbereich, die Informationsverteilung und Autorisation usw. enthalten.
88
Sandini Bib Information-Modelling
Der Grundvorteil bei existierenden Informationsmodellen ist, dass der eigentliche Informationsersteller, der die generierte Information am besten einschätzen und klassifizieren kann, eine gute Qualität der Informationen und der Informationsflüsse erzeugen kann. In herkömmlichen Verteilungsnetzen für Informationen werden Informationen oft erstellt und dann von Dritten eingestuft und verteilt. Da der Informationsfluss beeinträchtigt wird und die Geschwindigkeit und Aktualität der Informationen deutlich verschlechtert werden, kann dies eine zusätzliche Fehlerquelle bedeuten. Die einzige MetaInformation, die einer eigentlichen Information grundsätzlich angehängt werden muss, ist die Typisierung. Alle anderen Meta-Informationen erleichtern oder verbessern die Handhabung der Information und können von den Erstellern des Modells oder der Informationen unterschiedlich verändert und definiert werden. Als sinnvoll haben sich Meta-Informationen wie Titel, Subtitel, Author, Author Mail, Publishdate, Expiredate, Keywords usw. erwiesen. Autoren Informationen nehmen ihren Ursprung immer bei ein oder mehreren Autoren. Diese Autoren erzeugen Informationen auf explizite Anforderungen im Rahmen des Tagesgeschäfts oder zur Erleichterung ihrer eigenen Arbeit. Das größte Problem in der heutigen Informationslandschaft ist, dass nicht bekannt ist, welche Informationen überhaupt existieren. Der Informationsklassenbaum als Bestandteil eines Informationsmodells gibt darüber Auskunft. Die Tendenz geht immer mehr dorthin, dass fachlich qualifizierte und dementsprechend teure Autoren komplizierte Verfahren erlernen müssen, um ihre Informationen an die entsprechenden Konsumenten heranzutragen und diese in korrekten Formaten bereitzustellen. Information-Modelling setzt einen anderen Ansatz voraus. Der Autor produziert Informationen in einer ihm vertrauten und für ihn gut benutzbaren Umgebung. Das Informationsmodell definiert klar die Verteilung und alle damit verbunden Prozesse, die dann von entsprechend geschultem Personal oder automatisch durch ein Information-Modelling-Werkzeug durchgeführt wird. Fazit: Der Einsatz eines Informationsmodells in der Praxis hat zur Folge, dass sich ein Autor auf seine Kernkompetenz und nicht auf IT- und Informationsverteilung konzentriert und spezialisiert. Die Grundvoraussetzung dafür ist die Unterstützung der Autoren. Eine solche Unterstützung minimiert den zusätzlichen Aufwand für Autoren und verbessert somit die Produktivität. In einem effizienten Informationsmodell muss ein Autor aus seiner gewohnten Umgebung Informationen in ein System übergeben können und eine Information dabei mit einer benutzerfreund-
89
Sandini Bib 5 Content-Management und Content-Pool
lichen Oberfläche mit den erforderlichen Meta-Informationen versehen können. Das System kümmert sich um alles Weitere, der Autor konzentriert sich auf seine Kernkompetenz. Innerhalb des Informationsmodells können Autoren an den unterschiedlichsten Standorten Informationen der verschiedensten Klassen anliefern. Eine Liste der Autoren und deren logische Gruppierung wird bezüglich der Tätigkeitsgebiete oder Lokationen erstellt und dann über so genannte Erfassungssysteme mit dem Informationsbaum verbunden. So zeigt sich, welcher Autor welche Information erzeugt und erzeugen darf, und auf welchen Erfassungssystemen welche Information eingehen kann. Informationsverteilung Damit Informationen überhaupt sinnvoll eingesetzt werden können, müssen sie den Informationskonsumenten zugänglich gemacht werden. Die grundsätzliche Frage des Information-Modelling ist, wer die Informationen überhaupt sehen will, und wie für diesen einen Konsument oder die Konsumentengruppe die Informationen aufbereitet werden, wo sie vorhanden sein müssen, und wie lange und auf welche Art die Informationen dort vorliegen müssen. Dieses Verteilungsmodell stützt sich wieder auf die Erfassungssystemlogik, die bereits für die Etablierung der Autorenstruktur verwendet wurde. Es können zusätzliche Knotenpunkte in das Erfassungs- und Verteilungsnetz eingebunden werden, um eine bessere Granulierung und so eventuell eine kostengünstigere Verteilung von Informationen zu realisieren. Grundsätzlich werden zunächst die Konsumenten mit ihren besonderen Anforderungen dokumentiert und erfasst. Diese Anforderungen werden in der Publikationsschicht festgehalten, in der mehrere gleiche Anforderungen zu einem Publikationsknoten zusammengefasst werden können. Auch die unterschiedlichen Anforderungen eines Konsumenten an die gleiche Information können in mehreren Publikationsknoten dargestellt werden. Aufgrund der Informationsanforderungen der Publikationsschicht wird diese nun mit den bestehenden Erfassungssystemen und Verteilungssystemen über den Informationsbaum verbunden. Das dadurch entstandene Modell umfasst Aufgabenbereiche, die von der Informationserstellung und verteilten Bearbeitung über die hierarchische, aggregierte und abstrahierte DrillDown-Struktur der Informationen bis hin zur Verteilung und den einzelnen Darstellungen und Konsumenten reichen und eine komplette Darstellung des Informationsflusses liefern.
90
Sandini Bib Aufbau eines Wissensnetzes
Formatkonvertierungen Bei der Verteilung einzelner Informationen und dem Konzept, dass jeder Autor in einer für ihn angenehmen und gut zu bedienenden Umgebung arbeitet und jeder Konsument die Informationen in dem für ihn günstigsten Format und der besten Darstellung bereitgestellt bekommt, werden innerhalb der Informationsflüsse Formatkonvertierungen vorgenommen. In den Informationsmodellen sind solche Konvertierungen auf der Schicht der Erfassungssysteme vorgesehen und enden dort direkt oder über angeschlossene Konverter. Bei einer Verteilung von Informationen über mehrere Erfassungssysteme hinweg können so durchaus mehrere Konverterketten ausgeführt werden. Dies ermöglicht auf der einen Seite eine dezentrale Administration der Anforderungen und auf der anderen Seite dennoch eine zentrale Planung der eigentlichen Informationsflüsse. Zusatzfunktionen der Publikationsschicht Die Publikationsschicht übernimmt die unterschiedlichen Darstellungen der zu verarbeitenden Informationen. Zusätzlich können Vernetzungsfunktionen und die Vernetzung zu komplett anderen Informationssystemen wie z.B. statischen Informationen vorgesehen werden. Die Gültigkeit und die Weiterarchivierung der Versionierung von Informationen können ebenfalls in Zusatzmodulen zu den einzelnen Knotenpunkten der Publikationsschicht implementiert und dargestellt werden. In einem ersten Informationsmodell sollte zunächst nur die Darstellung der Informationen innerhalb der Publikationsschicht modelliert werden: Der Drill-Down in die weitere Behandlung der Informationen sollte bei einer weit ausgedehnten Konsumenten- und Verhaltensbasis in das Modell aufgenommen werden und kann dann den Automatisierungsgrad des Informationsmodells erheblich steigern. Zu den Zusatzmodulen, die aufgelistet und definiert werden können, zählt dann auch die weitere Verarbeitung der mitgelieferten Meta-Informationen, die Indizierung der Informationen einer oder mehrerer Klassen sowie die redaktionelle Verarbeitung innerhalb der Verteilungsorganisation des Informationsmodells.
5.2
Aufbau eines Wissensnetzes
Die beschriebene Theorie über das Modellieren von Informationen in Klassenbäumen nach Maßgaben des objektorientierten Designs ist in der Praxis relativ leicht umzusetzen. Dabei muss es Autoren ermöglicht werden, ihren erzeugten Content, also das Wissen des Unternehmens, sehr einfach an den beschriebenen Content-Pool zu übergeben und dann nicht mehr in die wei-
91
Sandini Bib 5 Content-Management und Content-Pool
tere Verarbeitung der Informationen involviert zu sein. Die verschiedenen Pools, an denen Autoren ihre Informationen einspeisen, werden miteinander verbunden und so zu einem großen Pool zusammengefasst, so dass an jeder Stelle des Netzes über eine Pool-Komponente alle Informationen in einem Modell verfügbar sein können. Einzelne Anwendungen zapfen nun dieses Wissen an und bauen eine eigene Struktur auf Basis der Informationsstruktur im Content-Pool und in den gegebenen Meta-Informationen auf, die dann im Layout der jeweiligen Anwendung mit den Informationen aus dem Pool dargestellt wird.
Abbildung 5.4: Aufbau eines Wissensnetzes
5.2.1
Informationserfassung und -verteilung
Da Autoren, die Informationen in den Content-Pool einstellen wollen, können und müssen, weltweit im Unternehmen verteilt sind, werden Richtlinien für die Erstellung des Content-Pools im WebFarm-Standard niedergelegt.
92
Sandini Bib Aufbau eines Wissensnetzes
Content-Pool-Basis In jeder WebFarm-Lokation wird ein zentraler Server angestellt, der allein für den Content-Pool dieser Lokation genutzt wird. Auf diesem Server ist zunächst das Informationsmodell der Verfasser und Autoren dieser Lokation sowie aller technisch untergeordneten Lokationen, also alle Lokationen, die ihre Internet-Connectivity über diese WebFarm-Lokation beziehen, hinterlegt. Neben den eigenen Daten werden auf diesem Server alle in dieser Lokation benötigten, nicht lokal erfassten Informationsklassen von anderen Lokationen her eingespielt. WebFarm Location DMZ II Packetfilter
Content Pool Server
GAN
DMZ II DMZ II Packetfilter Packetfilter Content Pool Server Content Pool Server
Abbildung 5.5: WebFarm mit Content-Pool-Server
Wenn eine interne oder externe Anwendung in einer zweiten Lokation also Informationen nutzt, die von einem Autor in der ersten Lokation an den Pool übergeben wurden, werden diese anhand des Informationsmodells an den Pool-Server (Gatherer) in der zweiten Lokation einmal gespiegelt und können dort von allen internen oder externen in der zweiten Lokation angesiedelten Anwendungen genutzt werden. Da die Information am dritten Standort nicht benötigt wird, ist das Informationsmodell so konfiguriert, dass die Information erst gar nicht dort gespiegelt wird. Wird zu einem späteren Zeitpunkt eine Anwendung geschaffen, die diese Informationsklasse ebenfalls benötigt, wird das Informationsmodell entsprechend verändert.
93
Sandini Bib 5 Content-Management und Content-Pool
WebFarm Location DMZ II
Client
Packetfilter
Content Pool Server Externe Web Anwendung
Interne Web Anwendung GAN
DMZ II
DMZ II Application Level Gateway
DMZ II
Packetfilter Packetfilter
Content Pool Server Content Pool Server
Abbildung 5.6: Verbindungen zwischen Content-Pool-Server und Web-Anwendungen
Weitergehende Erfassung Befinden sich im GAN oder in einem Netz von Partnern Autoren, die sehr viele Informationsklassen mit Informationen versorgen und selbst lokal auch Anwendungen betreiben – was typisch ist, denn eigene Informationen werden auch lokal verwendet –, so ist es netzwerktechnisch und sicherheitstechnisch oft effizient, wenn dort ein eigener Pool-Server quasi zur Erfassung der Daten – für die lokalen Anwendungen auch zum Empfangen von Daten aus dem Pool – eingerichtet wird. Das hat zur Folge, dass Daten nur einmal über die ohnehin stark beanspruchte Leitung zur WebFarm-Lokation gesendet werden müssen.
Externe Web-Anwendung
Interne Web-Anwendung
DMZ I
DMZ II Application Level Gateway
GAN Packetfilter
Web-Anwendung
Content Pool Server LocationLAN
Client
Content Pool Server Client
Abbildung 5.7: Weitergehende Erfassung
94
Sandini Bib Aufbau eines Wissensnetzes
Externer Content Oft wird auch ein nicht eigener Content in Anwendungen eingesetzt. Zum Beispiel Nachrichten oder Artikel werden oft von externen Lieferanten eingekauft, aber auch Partner produzieren Content, der in internen Anwendungen sinnvoll einzusetzen ist. Je mehr Content ein Pool dem Unternehmen bereitstellt, desto besser ist die Versorgung im Unternehmen mit Wissen, dessen Erstellung ja bekanntlich sehr teuer ist. An dieser Stelle ist noch einmal zu betonen, dass das bloße Einstellen von Content in willkürliche Strukturen keinen Mehrwert, sondern höchstens Chaos ergibt. Die Idee eines Informationsmodells ist es, strukturiertes Wissen – Content – zu sammeln und dieses Wissen dann in der Struktur, dem Verhalten und dem Aussehen einzelner Anwendungen anzupassen, damit es in die Anwendungen nahtlos integriert werden kann und so als Anwendungs-Content wiederverwendet werden kann. Die Kostenersparnis und die Qualitätsverbesserungen, die durch die Wiederverwendung von Wissen ermöglicht werden, sind enorm, und der WebFarm-Standard liefert eine Basis, eine solche Infrastruktur und ein derartiges System zu erstellen. Um externen Content einzubinden, kann nicht ein Zugriff auf den internen Content-Pool erlaubt werden, da dies die Sicherheitsrichtlinien der nach den im WebFarm-vorgestellten Firewall-Prinzipien verletzen würde. Aus diesem Grund wird ein externer Gatherer aufgestellt, der externe Informationen für den Content-Pool entgegennehmen kann und diese dann in den internen Content-Pool integriert, wo sie sich wieder durch das gesamte Content-Netzwerk verteilen können. Externe Web-Anwendung
Internet
Interne Web-Anwendung
DMZ I Packetfilter
DMZ II Application Level Gateway
Content Pool Server
Content Pool Server
Client Client
Abbildung 5.8: Einbindung von externem Content
95
Sandini Bib 5 Content-Management und Content-Pool
Handelt es sich bei einem externen Ersteller um einen Partner oder einen Kunden, der selbst die gleichen Anforderungen in puncto Netzwerkoptimierung und Sicherheit hat, eventuell eine eigene Informationsstruktur pflegen will usw., kann dort wiederum ein Content-Pool-Server (Gatherer) aufgestellt werden, der dann die Daten des lokalen Netzes entgegennimmt und lediglich die Informationen, die extern publiziert werden sollen, an den Content-Pool der WebFarm-Lokation weiterleitet, was wiederum über den externen Server geschieht. Client Client
LAN
Packetfilter
Externe Web-Anwendung
Interne Web-Anwendung
Content Pool Server
Internet
DMZ I Packetfilter
Content Pool Server
DMZ II Application Level Gateway
Content Pool Server
Abbildung 5.9: Weiterleitung über externen Server
5.2.2
Sicherheitsstandard
Da die Informationen, das Wissen und damit der gesamte Content über unterschiedlichste Leitungen versendet werden, die nicht immer den Sicherheitsstandards der Informationen entsprechen, und ein einheitliches Protokoll, das standardisiert und dokumentiert ist, verwendet werden muss, ist die Verschlüsselung der Informationen und Identifikation der Kommunikationspartner eine Voraussetzung für den Einsatz dieser Struktur. Es ist also gemäß des WebFarm-Standards zwingend notwendig, dass die Kommunikation zwischen Content-Pool-Servern, die Kommunikation zwischen Content-Pool-Servern und Anwendungen sowie die Kommunikation zwischen Clients und Content-Pool-Servern verschlüsselt sind. Es muss hierfür eine definierbare Verschlüsselungsstärke eingesetzt werden, damit den rechtlichen Rahmenbedingungen in unterschiedlichen Regionen des globalen Netzes entsprochen werden kann.
96
Sandini Bib Redaktionskonzept
Ebenso muss gewährleistet sein, dass der Initiator einer Kommunikation sowie der Empfänger genau wissen und protokollieren, mit welcher Endstelle eine Kommunikation stattgefunden hat. Eine entsprechende Berechtigungsvergabe, die nach dem WebFarm-Standard auf dem WebFarm-Directory beruht, kann damit definiert werden und setzt voraus, wer mit wem überhaupt welche Informationen austauschen darf.
5.3
Redaktionskonzept
Wird eine neue Information von einem internen oder externen Autoren angeliefert, kann dieses in einigen Informationsklassen nicht ohne eine vorherige Freigabe durch einen oder mehrere verantwortliche Redakteure auf eines der Produktionssysteme publiziert werden. Daher ist es notwendig, dass eine Information zuerst auf ein komplett unabhängiges System (Pre-ProductionSystem) publiziert wird. Durch E-Mail wird der verantwortliche Redakteur oder das Koordinationsteam von dem neuen Dokument in Kenntnis gesetzt. Entspricht das Dokument allen Vorgaben, kann es von einem der eingetragenen Redakteure freigegeben werden. Das Freigabe-Staging kann beliebig tief geschachtelt werden. Somit kann z.B. eine lokale Freigabe erfolgen und erst dann in einem zweiten Schritt eine Freigabe für eines der globalen Systeme. Die Festlegung der jeweiligen Redaktionsstufen für einen konkreten Anwendungsfall ist Bestandteil des Informationsmodells.
Autoren
Firewall
Firewall
WWW
Editoren
Abbildung 5.10: Redaktionskonzept
Es sollte durch das Redaktionskonzept ein Vier-Augen-Prinzip unterstützt werden.
97
Sandini Bib 5 Content-Management und Content-Pool
Ob und wann ein Freigabemechanismus benötigt wird, wird auf Verteilungsund Applikationsebene innerhalb des Informationsmodells konfiguriert und festgehalten. Auf diese Weise kann das Berechtigungsschema auf das Wissen eines Unternehmens flexibel durch das WebFarm-Directory konfiguriert werden, das selbst an interne Systeme gekoppelt sein kann.
5.4
Grundlagen für ein Informationsmodell
Nachdem die Notwendigkeit des Aufbaus eines Modells zur Entgegennahme und zur Verteilung und dem anschließenden Management von Informationen mittels eines Content-Pools festgestellt wurde, definiert der WebFarmStandard einige Ansätze zur Erstellung dieses Modells und zur Konfiguration der Erfassung mittels Meta-Informationen, zur Verteilung und zum Management von Informationen an sich.
5.4.1
Basisstruktur des Modells
Die Klassenstruktur des Modells sollte sich nicht an Lokationen orientieren, da es in einem globalen Unternehmen immer wieder Änderungen in Lokationen, Wichtigkeit von Lokationen bzw. deren Strukturierung gibt. Es bietet sich auch nicht an, das Modell auf einem Organigramm zu basieren, da es sich gewöhnlich im Verlaufe der Unternehmensentwicklung und bei Änderung der Unternehmensstruktur ändert. Der WebFarm-Standard gibt darum vor, ein solches Informationsmodell an den Kerngeschäften des Unternehmens zu orientieren. Dabei ist zu beachten, dass sich im Laufe der Zeit die Kerngeschäfte eines Unternehmens nur selten ändern. Es ist durchaus denkbar, dass ein Kerngeschäftsbereich wegfällt oder ein neuer hinzukommt, die Veränderung in der Bedeutung eines bestehenden Bereichs, also in der fachlichen Orientierung des Bereichs, ist aber fast ausgeschlossen. Darum bieten sich diese Fakten als Basis für ein Klassenmodell an, da sie für die Erweiterbarkeit des Modells als stabile Eckpfeiler fungieren. Diese relativ geringe Zahl an abstrakten Oberklassen sorgt dafür, dass eine Erweiterbarkeit immer gegeben ist und das Informationsmodell nicht einem kompletten Reeningeering unterworfen werden muss, wenn sich im Unternehmen Änderungen oder Erweiterungen der Informationsstruktur ergeben, was immer ein erheblicher Aufwand wäre. Unter diesen Basisklassen können nun die einzelnen Fachgebiete, die sich nicht an Gruppen, sondern an tatsächlichen fachlichen Problemstellungen des Bereichs orientieren.
98
Sandini Bib Grundlagen für ein Informationsmodell
Abbildung 5.11: Klassenstruktur Informationsmodell
Unter diesen Fachthemen können nun die einzelnen tatsächlich existierenden Informationen angebracht werden, die sich an Gruppierungen, Strategien usw. orientieren.
5.4.2
Verwendung von Meta-Informationen zur Klassifizierung
Es sollte nicht für jedes Element eine neue Klasse angelegt werden, vielmehr sollten sehr gleichartige Elemente in einer Klasse untergebracht und über Meta-Informationen unterschieden werden. Ist z.B. ein Versicherungsbetrag für eine Information ausschlaggebend, sollte es nicht für jede Betragsspanne eine eigene Klasse geben, sondern nur eine Klasse, in der die Betragsspanne eine Meta-Information ist. Auf diese Weise hat das Klassenmodell Bestand, denn der flexible Teil der Meta-Informationen, der sich über die Zeit hinweg ändern kann, ist nicht Bestandteil des Klassenmodells. Die Meta-Informationen können nachträglich ohne Beeinflussung der Konfiguration des Modells oder des Systems später verändert werden. Dabei ist es auch sinnvoll, den Meta-Informationen sprechende Namen und sprechende Namen für die Auswahlkriterien zu geben, in der tatsächlichen Datenrepräsentation allerdings einfache Werte zu verwenden, damit eventuell allein die Namen verändert werden können.
5.4.3
Weitere Verwendung von Meta-Informationen
Meta-Informationen sollten generell zur Beschreibung von Informationen eingesetzt werden. Eine Kurzzusammenfassung der Inhalte kann dabei z.B. hilfreich sein. Ansonsten können Meta-Informationen zur näheren Beschrei-
99
Sandini Bib 5 Content-Management und Content-Pool
bung der eigentlichen Daten verwendet werden. Zum Beispiel kann eine Information über Schlagwörter in einen größeren Kontext eingeordnet werden. Über Gültigkeitszeiträume können Lebenszeiten vergeben werden, die das Management von Informationen erheblich erleichtern. Neben der Erzeugung von Unterklassen und der näheren Beschreibung von übergebenen Informationen können über Meta-Informationen Verbindungen zu anderen Informationen im Content-Pool hergestellt werden. Dies geschieht üblicherweise über Stichworte, die sich auch in direkter Vernetzung von Dokumenten auf einzelnen Servern manifestieren können, oder auch über die Herstellung von Bezügen zu einzelnen Fachgebieten, Produkten usw., anhand derer dann Navigationsebenen eingezogen werden können.
5.4.4
Mehrsprachigkeit
Mehrsprachigkeit ist in einem Informationsmodell eines global operierenden Unternehmens immer thematisiert. Dabei ist der Ansatz des Einrichtens spezieller Klassen oft nicht sinnvoll. Informationen können wesentlich flexibler eingesetzt werden, wenn in allen Klassen die Meta-Information der Sprache erfasst wird. Auf diese Weise kann die Darstellung und Verteilung von Informationen auf Sprache basieren, in Anwendungen auf eine Klasse auch in mehreren Sprachausprägungen referenziert und somit mit einem Zugriff auf den Content-Pool aller Contents verfügbar gemacht werden.
5.5
Redaktionssystem und Redaktionsverfahren
Das in vorangegangenen Kapiteln der WebFarm-Standarddefinition beschriebene Verfahren zur Erstellung und Verwendung von Content-Pools ist auf den Bereich der semi-dynamischen Informationen anwendbar, und nur auf diesen. Im Bereich der Webanwendungen werden aber auch alle anderen Arten von Informationen eingesetzt, und sie spielen teilweise eine zentrale Rolle. Neben den eigentlichen Informationen und deren eventuell dynamischen Generierung gibt es auch ganze Anwendungen, die informatisch nach endlichen Automaten ablaufen und dementsprechend nicht als eine für sich existierende Information in einer Struktur angesehen werden können, sondern als ein Konglomerat an Informationen, die über einen Zustand zusammengehalten werden. Für alle diese anderen Arten von Informationen wie 왘 statische Navigation, 왘 statische Inhalte,
100
Sandini Bib Redaktionssystem und Redaktionsverfahren
왘 dynamisch generierte Inhalte, 왘 einfache Input-Only-Anwendungen, 왘 interaktive dynamische Informationen oder 왘 komplette Anwendungen mit Ablauflogik
kann aber nicht auf das Redaktionsverfahren, die Verteilung und die Kontrolle der Informationsflüsse verzichtet werden. Es muss darum im Konzept des Content-Managements ein Bereich den Redaktions- und Verteilungsverfahren aller anderen Informations-gattungen gewidmet werden. Werbeagentur entwirft
HTMLDesigner
Marketing neue Impulse + Konzepte
realisiert + schickt Updates
Preproduction Webserver
Unternehmen beauftragt+kontrolliert+ verantwortet, muss Update freigeben
Webserver
soll bis auf die neuen Updates identisch zu Webserver sein
SystemBetreuer
Entwicklungsserver
muss aktuell sein, aber darf nur vom Unternehmen freigegebene Inhalte präsentieren
BackupWebserver muss identisch zu Webserver sein
betreut viele Server,spielt Updates ein, spricht Serverupdates mit Verantwortlichen und Marketing ab
Revision/ Controlling verlangt Kontrollierbarkeit+ Nachvollziehbarkeit
Hoher Arbeitsaufwand für alle Beteiligten Je mehr Server und je grösser das Angebot, desto schlimmer wird die Verwirrung
Abbildung 5.12: Übersicht Redaktionssystem
101
Sandini Bib 5 Content-Management und Content-Pool
Es gilt noch einmal zu erwähnen, dass die semi-dynamischen Informationen sicherlich vom Volumen her gesehen den größten Teil aller Informationen ausmachen, die anderen Informationsgattungen und insbesondere die Anwendungen bei den Benutzern und in der Akzeptanz von geschaffenen Webanwendungen mindestens als genauso wichtig eingestuft werden müssen. Dieses Kapitel des WebFarm-Standards beschäftigt sich mit den Redaktionsund Verteilungsverfahren für statischen Inhalt und Applikationen.
5.6
Informationsanlieferung
5.6.1
Parameter der Anlieferung
Grundsätzlich ist es der Fall, dass bei allen anderen Arten von Inhalten Dateien für eine bestimmte Anwendung und damit auch für einen bestimmten Rechner oder einen bestimmten Dienst auf einem Rechner angeliefert werden. Darum ist ein entscheidendes Kriterium für die Informationsanlieferung das Zielsystem für die Informationen. Für die Identifikation des Zulieferers und die entsprechende Berechtigung ist es wichtig, den Zulieferer zu erkennen, auch dieser muss dementsprechend Teil bei einer Datenlieferung mitgegebener Meta-Informationen sein. Da im Falle von Anwendungen und statischen Informationen, die mit diesem Verfahren der Redaktion und Verteilung unterworfen werden, die Sequenz der Anlieferungen eine wichtige Rolle spielt, ist es essenziell, die Reihenfolge der Anlieferungen festzuhalten. Aus diesem Grund muss die Anlieferung in der Sequenz der Anlieferungen dieses Zulieferers für dieses Ziel gekennzeichnet werden. Zusammenfassend sind also folgende Parameter essenziell für die Anlieferung von statischem Content und Applikationen: 왘 Quelle (Agentur, Team, Benutzer, …) 왘 Ziel (Server, Service, …) 왘 Sequenzkennzeichnung für diese Quelle in Bezug auf dieses Ziel
Dies sind die Minimalanforderungen für die Anlieferung von Daten. Weitere Meta-Informationen sollten mitgegeben werden, damit ein Verteilungs- und Redaktionsverfahren auch für Inhalte, die nicht durch ein Informationsmodell abgedeckt werden, implementiert werden kann.
102
Sandini Bib Informationsanlieferung
Weitere Meta-Informationen sind für die Anlieferung von Inhalten relevant und können das Verfahren in seiner Funktionalität erheblich verbessern. Allgemein können folgende Meta-Informationen genannt werden, die aber je nach System durchaus ergänzungswürdig sind: 왘 Zeitpunkt der Einstellung
Es kommt häufig vor, oder es sollte bei einer guten Entwicklung vorkommen, dass Informationen und Anwendung vor ihrem tatsächlichen Release-Datum für die Öffentlichkeit bereits an die Produktionsumgebung übergeben, dort freigegeben und dann trotzdem erst zu einem definierten Zeitpunkt in das Produktionssystem überstellt werden. Dies kann auch vertagt werden, um bestimmte »Online-Termine« (z.B. 01.01., 0:00) zu halten. 왘 Zeitpunkt des Verfalls
Für einige Informationen ist auch im Bereich von statischen Modulen und Anwendungen eine Lebenszeit sinnvoll zu definieren. Werden z.B. steuerlich-relevante Anwendungen publiziert, so ist deren Gültigkeitsdauer oft bereits im Vorfeld bekannt, und es kann rechtliche Konsequenzen haben, wenn diese dann immer noch verfügbar sind. Ein Automatismus, um solche Informationen wieder zu entfernen, ist nicht immer sinnvoll implementierbar, da oft Auswirkungen auf den Rest der Zielanwendung bestehen würden, es muss aber durch das System nach dem WebFarm-Standard gewährleistet sein, dass das Administrationsteam der WebFarm-Lokation sowie die entsprechenden Fachverantwortlichen benachrichtigt werden. 왘 Rückverteiler
Es ist oft sinnvoll, wenn bei Freigabe einer bestimmten Anwendung oder bestimmter Informationsmodelle dritte Stellen genau diese freigegebenen Module erhalten, sei es zur Versionierung oder zur Dokumentation der Entwicklung. Sinnvoll ist dies auch, wenn ein externer Zulieferer die Anwendungen pflegt, damit dieser immer einen Überblick behalten kann, was sich bei seinem Kunden – dem WebFarm-Betreiber – in Produktion befindet.
5.6.2
Methoden zur Anlieferung von Informationen
Da es sich bei einem solchen System um ein globales Verwaltungswerkzeug handelt und der WebFarm-Standard so aufgebaut ist, dass möglichst wenig Restriktionen an Umgebungen und Entwicklungen weitergegeben werden müssen, ist es offensichtlich, dass der WebFarm-Standard vorschreibt, dass die Anlieferung über ein möglichst breites Spektrum an Wegen erfolgen kann.
103
Sandini Bib 5 Content-Management und Content-Pool
Die zu unterstützenden Methoden sind im Folgenden mit ansteigender Content- und Identifikationssicherheit aufgeführt. E-Mail Die Anlieferung per E-Mail ist absolut plattformunabhängig und kann von absolut jedem Zulieferer von Informationen unterstützt werden. Dabei versendet der Zulieferer eine E-Mail mit dem Package, das in ein WebFarm-System eingespielt werden soll, an den Redaktionsserver seiner verantwortlichen WebFarm-Lokation, wo das Package aus der E-Mail als Attachment extrahiert wird und dann dem eigentlichen Redaktionssystem eingespeist wird. internal Content Creator
external Content Creator
Web Application
Content Management
DMZ I
DMZ II
Internet Packetfilter
Application Level Gateway
eMail external
GAN Packetfilter
eMail internal
Abbildung 5.13: Anlieferung von Informationen
FTP- oder HTTP-Upload Genauso einfach ist das Einstellen von Informationen oder die Informationsübergabe per FTP. Es existiert ein »Write Only«-FTP-Service, auf dem definierte Zulieferer Packages ablegen können. Dieser Service steht im externen Segment einer Firewall für externe Zulieferer und in der DMZ II für interne Zulieferer zur Verfügung. Nach der Übergabe per FTP werden die Informationen von einem Automatismus in das eigentliche Redaktionssystem überführt. SCP-, SFTP- oder HTTPS-Upload Analog zu FTP kann auch ein verschlüsseltes Verfahren zum Transfer der Daten verwendet werden. Dies ist für alle internen Informationen sowie Informationen, die dem Datenschutz unterliegen, bei externen Anlieferungen
104
Sandini Bib Informationsanlieferung
auf jeden Fall notwendig. Existiert eine interne Netzwerk-Sicherheitsrichtlinie, müssen die Übertragungen gemäß dieser Richtlinie auch intern verschlüsselt erfolgen. Direkte Anbindung an den Pool Die direkte Kommunikation mit dem Content-Pool ergibt zusätzliche Funktionalitäten der Verwaltung von Einspielungen bzw. Packages und entspricht in jeder Hinsicht den höchsten Sicherheitsstandards, da sich der Zulieferer durch seinen Client eindeutig identifiziert und die Übertragung immer gemäß der Konfiguration der Content-Pool-Server verschlüsselt erfolgt. Der Nachteil dieses Vorgehens ist, dass die Plattformunabhängigkeit verloren geht, da der Zulieferer auf WebFarm-Standardsoftware (siehe Content-Pool) angewiesen ist und nicht nur in seiner normalen Arbeitsumgebung verbleiben kann. Diese Einschränkung ist nur für externe Zulieferer relevant. internal Content Creator
external Content Creator
Internet
Web Application
Content Management
DMZ I
DMZ II
Packetfilter
Application Level Gateway
Content Pool external
GAN Packetfilter
Content Pool internal
Abbildung 5.14: Anbindung an den Pool
5.6.3
Packages und Packaging
Auffällig an der bisherigen Beschreibung ist, dass nicht von einzelnen Informationen wie beim Content-Pool gesprochen wird, sondern immer auf Packages referenziert wird. Das Konzept des Packaging wurde aus den allgemeinen Konzepten der Softwareverteilung übernommen. In einem Package werden alle Informationen, die zu einer Lieferung gehören, zusammengefasst. Also alle Informationen, die vom Kontext her zusammengehören und auf einer Stufe stehen, sollten in einem Package zusammengefasst werden. Dabei sollte nicht eine Anwendung als ein Kontext gesehen werden, sondern einzelne definierte Module einer Anwendung oder eines Servers; dies hat den
105
Sandini Bib 5 Content-Management und Content-Pool
Vorteil, dass einzelne Funktionalitäten oder Inhalte bereits freigegeben werden können und dementsprechend auch funktional zur Verfügung stehen, während andere noch nicht freigegeben sind. Konkret sollten nicht alle Updates für einen Webserver auf einmal in ein Package gepackt werden, sondern in mehrere kleine Packages, die in einzelne Module des Servers geteilt sind. Gleiches gilt für Anwendungen, hier sollte nach Modulen oder Zustandspaketen der Anwendung vorgegangen werden. Da es sich bei einem Package um eine Zusammenstellung von Informationen handelt, sollte ein Package als Archiv angeliefert werden. Um eine Bandbreitenoptimierung bei der Anlieferung zu gewährleisten, sollte es sich um ein komprimiertes Archiv handeln. Da das Redaktions- und Verteilungsverfahren möglichst viele Quellplattformen unterstützen muss, werden verschiedenste Verfahren wie z.B. ZIP, tar, gz, tar, gz etc. unterstützt. Der Name des Package ist ausschlaggebend für dessen Verarbeitung, wenn keine direkte Verbindung zum System besteht, das bedeutet, dass im Namen des Package Quelle, Ziel und Sequenz identifiziert sein müssen.
5.6.4
Sicherheitsstandard
Sicherheit ist bei der Pflege von Webanwendungen, wie bereits mehrfach dargelegt, immer ein entscheidendes Thema. Zunächst muss die Übertragungssicherheit der Daten gewährleistet sein, wenn es sich um entsprechend schützenswerte Informationen handelt. Das bedeutet, dass, sobald schützenswerte Informationen übertragen werden, diese Übertragung bereits verschlüsselt erfolgen muss, wenn die Quelle außerhalb des GAN liegt. Liegt die Quelle innerhalb des GAN, bestimmt die interne Sicherheits-Policy, inwieweit Verschlüsselung zwingend notwendig ist. Verschlüsselung ist an sich ohnehin zu bevorzugen, da moderne Verschlüsselungsverfahren immer auch Kompression beinhalten und damit eine Bandbreitenschonung nicht bei bereits komprimierten Packages gegeben ist. Der zweite sicherheitskritische Aspekt bei der Anlieferung von Daten ist die Authentizität der Quelle. Das WebFarm-Konzept sieht zunächst die Identifikation der Quelle anhand des Package-Namens vor, was für gewöhnliche Anwendungen aufgrund des gerade durch das Redaktions- und Verteilungssystem implementierten Vier-Augen-Prinzips ausreichend ist. Wird aufgrund der Sensibilität der Anwendung eine genaue Identifikation der Quelle erforderlich, so wird diese durch eine elektronische Unterschrift um das übertragene Package oder ein Zertifikat in der Übertragung gewährleistet, das dann vom Redaktions- und Verteilungssystem mit der Quellangabe im Namen des Package verglichen wird und somit die Authentizität des Senders ohne Zweifel festhält oder das Package verwirft.
106
Sandini Bib Überprüfung von angelieferten Packages
external Content Creator
Internet Packetfilter
Web Application
Content Management
DMZ I
DMZ II
Application Level Gateway
internal Content Creator
GAN Packetfilter
Abbildung 5.15: Beispiel sichere Datenübertragung
5.7
Überprüfung von angelieferten Packages
Sind Packages einmal erstellt und an das System übertragen, muss eine Überprüfung des Package erfolgen. Hierbei werden mehrere Schritte unternommen, die seriell ablaufen: 왘 Überprüfung der Quell- und Zielberechtigung
Hier wird überprüft, ob ein Zulieferer (Quelle) die Berechtigung hat, auf das definierte Ziel bzw. die Position im Ziel zu schreiben, die das Update anspricht. Da an einer Webanwendung viele Teams arbeiten können und eventuell auch mehrere externe Zulieferer mit der Befüllung einer Anwendung mit statischen Informationen und Applikationen beauftragt sein können, wird im Zielsystem selbst noch die Lokation mit Berechtigungen versehen. Für einen Zulieferer ist genau definiert, wo in einer Anwendung Updates eingespielt werden dürfen. 왘 Überprüfung legaler Namensgebung und Zeichenverwendung
Für die Funktionalität von Webanwendungen ist die Namensgebung von Dateien entscheidend. So dürfen z.B. keine Leerzeichen und dergleichen in Dateinamen vorkommen, damit die Anwendungen nachher den Standards der Übertragungsprotokolle entsprechen. Diese Namensgebung wird überprüft. Gleichzeitig wird innerhalb des Content, wenn es sich nicht um Binärdateien handelt, was anhand der definierten MIME-Types für die Dateikennungen abgelesen werden kann, überprüft, ob die Syntax für korrektes oder annähernd korrektes HTML und XML eingehalten wurde, und ob die Konventionen für Zeichensätze (HTML ist 7 Bit) eingehalten wurden.
107
Sandini Bib 5 Content-Management und Content-Pool
왘 Überprüfung der Dateiberechtigungen
Die Berechtigungen einzelner Dateien ist für die Sicherheit der Anwendung entscheidend und muss daher überprüft werden. Das bedeutet, grundsätzlich sind in öffentlichen Bereichen keine Dateien erlaubt, die Schreibberechtigung besitzen, und nur bei Bereichen, die für Programme vorgesehen werden, werden Dateien zugelassen, die eine Ausführungsberechtigung haben, aber auch nur, wenn definierte MIME-Types dies unterstützen. Weitere Überprüfungen können in den Prozess des Redaktions- und Verteilungssystems für statische Inhalte und Anwendungen einbezogen werden.
eMail
Datenübertragung
Ablehnung / Zurück an Anlieferer und Benachrichtigung Übergabeserver
User-Check
SequenceCheck
Formatcheck / Entpacken des Archivs
PermissionChecks
DependencyCheck
Owner-Check
Einspielen der Daten auf den PreproductionServer
Release (Freigabe)
Kopie + Nachricht an Sender / Besitzer / Auftraggeber
Backup-Server
Web-Server
Abbildung 5.16: Ablaufdiagramm Überprüfung angelieferter Informationen
108
Sandini Bib Freigabe und Verteilung
Es ist anzumerken, dass eine strenge syntaktische Überprüfung von HTML und XML wünschenswert ist, da sie die korrekte Darstellung von HTML und XML auf allen verfügbaren Browsern garantieren könnte, dass eine solche Überprüfung allerdings 95% aller heute erzeugten HTML- und XML-Inhalte im Internet abweisen würde und damit als unrealistisch angesehen werden muss.
5.8
Freigabe und Verteilung
Nach der Überprüfung des angelieferten Update wird dieses auf das Pro-Production-System eingespielt, wo ein verantwortlicher Redakteur die Änderungen am statischen Inhalt oder an Applikationen innerhalb einer Webanwendung in einer realen Umgebung testen muss und dann freigeben oder verwerfen kann. Auf diese Weise ist gewährleistet, dass ein Verantwortlicher den entsprechenden Inhalt vor seiner Veröffentlichung gesehen hat und keine nicht definierten Inhalte an die Benutzerkreise einer Anwendung gelangen.
Abbildung 5.17: Bildschirmansicht Freigabe
109
Sandini Bib 5 Content-Management und Content-Pool
Ein Redakteur wird über das Eintreffen eines Update, für das er verantwortlich ist, per E-Mail benachrichtigt, kann dann die Webanwendung in ihrer Komplettfunktion auf dem Pro-Production-System einsehen oder über das Freigabe-Interface speziell die Teile der Webanwendung betrachten, die sich durch das Update verändert haben. Nach der Freigabe eines Update wird dieses Update in die Warteschlange für die Verteilung auf das entsprechende Zielsystem sowie dessen Backup-System eingereiht. Diese Warteschlange existiert, um Abhängigkeiten zwischen Updates zu ermöglichen und trotzdem eine Freigabe durch den Redakteur zuzulassen. Das bedeutet, es können mehrere Updates, die gleiche Serverteile verändern, im Freigabeprozess enthalten sein, die erst dann in Produktion gehen, wenn die sequenzielle und chronologische Reihenfolge der Updates als solche freigegeben ist. Außerdem werden Updates einer Quelle auch nur in der sequenziellen Reihenfolge der Anlieferung unabhängig von direkten Abhängigkeiten zwischen den Dateien eingestellt. Abhängigkeiten werden hier über die Veränderung gleicher Dateien und die Vernetzung über HTML- und XMLLinks definiert, solche Abhängigkeiten müssen nach dem WebFarm-Standard berücksichtigt werden.
Editor Web Application Backup
ContentManagement
DMZI
DMZII ApplicationLevelGateway
GAN Packetfilter
Abbildung 5.18: Abhängigkeiten
5.8.1
Rückverteilung von Packages
Ein wichtiger Aspekt in der Anwendungsentwicklung ist, dass die Entwicklungseinheit stets über den Zustand des Produktionssystems informiert sein muss, um auf diesem weitere Entwicklungen zu basieren, und um in der Lage zu sein, Verbesserungen und Bug-Fixes an diesem Produktionssystem vorzunehmen. Darum unterstützt das WebFarm-Redaktions- und Verteilungssystem die Rückverteilung freigegebener Packages. Dabei werden allen berechtigten Quellen die eingegangenen und freigegebenen Packages zugesendet.
110
Sandini Bib Freigabe und Verteilung
Das bedeutet, alle Zulieferer erhalten für alle Anwendungen, für die Packages angeliefert werden, die einen Bereich der Anwendung berühren, für den dieser Zulieferer Schreibberechtigung hat, Freigabe dieses Package sowohl wenn das Package vom Zulieferer selbst erstellt wurde, aber auch wenn ein anderer Zulieferer den entsprechenden Bereich verändert hat. Diese Rückverteilung wird durch die Freigabe von Packages veranlasst und gleichzeitig mit der Verteilung auf die Produktionssysteme vorgenommen. Dieses Verfahren gewährleistet, dass jedes Entwicklungsteam zu jeder Zeit das aktuelle Produktionssystem in einer Entwicklungsumgebung abbilden kann und dieses tatsächlich in Produktion befindliche System als Grundlage für weitere Entwicklungen nutzen kann. external Content Creator
Editor Web Application Backup
Internet
ContentManagement
DMZI Packetfilter
DMZII ApplicationLevelGateway
GAN Packetfilter
Abbildung 5.19: Rückverteilung von Packages
5.8.2
Versionierung
Im Gegensatz zum Content-Pool, der automatisch alle Versionen der eingegangenen Informationen in seinem Pool abgelegt hat, überschreibt das Redaktions- und Freigabeverfahren einmal vorhandene Informationen. Dies kann im Sinne eines geregelten Betriebs nicht angestrebt werden, und darum muss ein gewisser Grad an Versionierung erreicht werden. Es ist nicht notwendig, ein komplexes Versionierungsverfahren wie im Softwareentwicklungsbereich zu implementieren, da hier keine Sub-Zweige und Unterversionen von Produktionssystemen existieren. Es existiert zu einem bestimmten Zeitpunkt immer ein System, das so, wie es zu diesem Zeitpunkt existiert, online und verfügbar ist. Da dieser Zeitpunkt durch die sequenzielle Aktivierung von Updates einfach festzuhalten ist, kann über das Redaktions- und Verteilungssystem auch eine Versionierung stattfinden. Der WebFarm-Standard schreibt hierbei vor, dass von jeder Datei eine bestimmte Anzahl an Versionen rückwärts gehalten werden muss, die mindestens einen konfigurierten Zeitraum abdecken. Auf diese Weise kann sehr einfach ein Roll-Back über einzelne Packages und einzelne Updates gefahren werden, um den Serverzustand zu einem gewissen Zeitpunkt wiederherzustellen.
111
Sandini Bib 5 Content-Management und Content-Pool
Eine komplexe, am Konfigurationsmanagement orientierte Versionierung wird mit diesem Verfahren unnötig, da die Funktionalität des ProduktionsRollbacks gegeben ist.
5.9
Personalisierung und ProfilingDatenbanken
One-on-One kam mit den neuen Medien als Schlagwort für kundenorientierte und individualisierte Systeme, Anwendungen und Marketingaktionen auf und hat sich seitdem nicht nur im Inter- oder Intranet zu einem bestehenden Trend ausgebildet, der sich in der allgemeinen Strömung der Verbesserung des Customer-Relationship-Managements manifestiert. Auch bei reinen IT-Anwendungen im Webbereich sollte der Marketinggedanke eingehalten werden, denn letztendlich ist ein Benutzer einer Anwendung nichts anderes als ein Kunde genau dieser Anwendung und muss auch genauso gepflegt werden, damit er ein Interesse hat, die für ihn bereitgestellte Anwendung, oder den Dienst, den er nutzen soll, in seine Arbeit einzubinden. Damit verlässt die EDV eine lange Tradition, die sich aus der komplexen Bedienung von Großrechenanlagen entwickelt hat, nämlich die Tradition der »EDV für die EDV«; Gedanken analog zur Kunstströmung l'art pour l'art. Die heutige IT bewegt sich hin zu einem Dienstleistungsverhältnis, in dem die EDV nur eine Dienstleistung ist, um dem Benutzer seine Alltagsarbeit zu erleichtern oder überhaupt erst zu ermöglichen. Diese Dienstleistungseinstellung muss sich auf jeden Fall in Webanwendungen, aber auch modernen Netzwerkdiensten und den dazugehörenden organisatorischen Dienstleistungen wiederfinden, denn letztendlich ist die Aufgabe von EDV-Systemen, den Benutzer zu unterstützen und nicht dem Benutzer das Leben zu erschweren, was bei vielen alten Anwendungen noch akzeptiert wurde – im Zeitalter des Internets und seiner Anwendungen hat sich die Benutzereinstellung zu Anwendungen allerdings drastisch in Richtung einer dienstleistungsbezogenen Orientierung verändert. Die Personalisierung geht über die normale Benutzerfreundlichkeit hinaus, die eben beschrieben wurde. Bei der Personalisierung wird auf individuelle Anforderungen von Benutzern und Benutzergruppen eingegangen, die identifiziert und umgesetzt werden müssen und in weitergehender Entwicklung vom Benutzer auch selbst zu beeinflussen sind. Innerhalb des WebFarm-Standards werden verschiedene Stufen der Personalisierung und des Profiling, also des Sammelns von Daten über einen Benutzer und die daran orientierte Benutzerführung, vorgestellt, die wie ein Stufen-
112
Sandini Bib Personalisierung und Profiling-Datenbanken
modell aufeinander passen. Dieses Dokument beschreibt die Möglichkeiten und wann sie wie angewendet werden sollen sowie die dazu eingesetzten Werkzeuge.
5.9.1
Wie wird Personalisierung eingesetzt?
Ein sehr wichtiger Grundsatz aus dem gewöhnlichen Designbereich ist, dass Designmittel nicht zu viel eingesetzt werden dürfen. Dies gilt auch für Personalisierung, denn wenn eine Anwendung den Benutzer zu sehr in Anspruch nimmt, dann ist es sehr schwierig, den Benutzer auch für andere Dinge zu interessieren, und die Wartungsmöglichkeit bzw. der Benutzersupport für die Anwendung werden komplex, weil der Supporter nur in den seltensten Fällen die Ansicht des Benutzers nachstellen kann. Es gibt mehrere Möglichkeiten zu Personalisierungs-Anwendungen und -Informationssystemen, die alle in unterschiedlichen Zusammenhängen eingesetzt werden können und sollen. Dabei wird im Marketing unter One-onOne oft nur das Profiling betrachtet, welches das Benutzerverhalten in einer Anwendung analysiert und Empfehlungen zur weiteren Navigation gibt; aber auch die anderen Methoden zur Personalisierung sind sinnvoll und können sogar einfacher umgesetzt werden. Der WebFarm-Standard definiert aus diesem Grund klare Regeln, wann welche Personalisierungsform eingesetzt werden soll. Eigene Server für Benutzergruppen Eine einfache, aber dennoch sehr effektive Art der Individualisierung auf einer Breitenebene ist die Schaffung von eigenen Anwendungen mit dem gleichen Repertoire an Modulen und gleicher Content-Basis, aber mit unterschiedlicher Struktur und unterschiedlichem Design sowie nur dem Content, der für die jeweilige Benutzergruppe von Interesse ist. Das bedeutet, es wird ein Pool an Modulen und Content eingerichtet (siehe Content-Management), der für die Anwendung bzw. die benutzergruppenorientierten Instanzen der Anwendung als Basis dient; die Anwendung für die jeweilige Benutzergruppe bedient sich dann aus diesem Pool und stellt für diese Gruppe einen scheinbar individuell entwickelten Dienst dar. Die beschriebenen Benutzergruppen können nach Hierarchieebenen (z.B. Vorstand, Direktion, Projektteam, IT-Support) untergliedert werden, da all diese Gruppen unterschiedliche Anforderungen an Anwendungen haben, aber eventuell doch dieselben Module nur in sehr wenig unterschiedlichen Konfigurationen nutzen werden und das Content-Bedürfnis sich vor allem von der Detailebene und der Strukturierung unterscheidet. Dieser Ansatz ist auch im WebFarm-Standard zu Content- und Knowledge-Management sowie dem Redaktionsverfahren dargelegt.
113
Sandini Bib 5 Content-Management und Content-Pool
Usergroup 2 Server Usergroup 3 Server
Usergroup 1 Server
Content / Knowledge Pool
Module Pool
Usergroup 4 Server
Dev. 2
Author 1 Author 2
Dev. 1
Author 3
Abbildung 5.20: Server für Benutzergruppen
Bei Anwendungen im Business-to-Business-Bereich ist ein solches Vorgehen sehr empfehlenswert, da einem Kunden oder Partner so aus einem Pool von Informationen und Anwendungsmodulen für seinen Kunden- oder Partnertyp ein individueller Service zusammengestellt werden kann, der nur die Module und den Content enthält, den dieser Kunde oder Partner sehen darf und will. Diese Anwendung besitzt die Anwender (Kunden oder Partner) gewünschte Struktur und die für den Kunden oder Partner zutreffenden Eigenschaften und Layout-Definitionen. Auf der anderen Seite muss dieser Server, da er über den Content- und Modul-Pool gepflegt wird, nicht individuell betreut werden. Ein weiterer Vorteil, wenn Informationen und Anwendungen auf diese Weise zu Kunden und Partnern transportiert werden, neben dem durch die Individualisierung erreichten erhöhtem Service-Level ist, dass die Informationen für den Benutzer als hausinterne Informationen erscheinen, da sie ja im Layout des Kunden oder Partners auftauchen und somit automatisch ein völlig anderes Akzeptanzniveau haben.
114
Sandini Bib Personalisierung und Profiling-Datenbanken
Diese Art der Individualisierung sollte als erster Schritt immer in Betracht gezogen werden, weil sich der Pflegeaufwand im Vergleich zu komplett individuellen Anwendungen und komplett individualisierten Anwendungen nicht stark erhöht sowie eine in großen Teilen für die gesamte Anwendung durchgezogene Individualisierung bietet. Individualisierung von Seiten durch den Benutzer – My-Site Eine bekannte Art, wie ein Benutzer sich seine persönlichen Informationsseiten oder Portale zum Inhalt einer Anwendung erstellen kann, sind die so genannten »My-*« Seiten. Hierbei werden Informationsklassen und andere Module so zusammengestellt, dass sie von einem identifizierten Benutzer sehr einfach an vordefinierte Punkte einer Webseite gesetzt werden können. Die Anwendung speichert hierbei das Profil des Benutzers ab, also welches Modul wo und wie positioniert wurde, und hält diese für jeden weiteren Zugriff des Benutzers auf die Portalseite weiter verfügbar.
Abbildung 5.21: Individualisierung von Seiten
115
Sandini Bib 5 Content-Management und Content-Pool
Solche Funktionen sind technisch relativ einfach zu realisieren. Es muss darauf geachtet werden, dass die Profildaten gemäß des WebFarm-Standards im LDAP-Server der Lokation der Anwendung abgelegt werden, sofern dies realistisch umsetzbar ist. Eine solche Individualisierung kann für Navigationen, Informationen und kleine Anwendungen eingerichtet werden. Diese Seiten verweisen dann auf Inhalte, die auf dem Server standardisiert vorhanden sind oder durch die Anwendung standardisiert angeboten werden. Es werden also nicht wie im Fall der nach Gruppen individualisierten Websites komplett individualisierte Seiten und Strukturen erzeugt, sondern lediglich individualisierte Zugänge zu ohnehin vorhandenen Informationen. Mit der Erstellung einer »My-*«-Seite für die Benutzer bietet man den Benutzern eine Möglichkeit, einen individuellen Zugriff auf eine Anwendung zu gestalten. Ein Benutzer richtet sich sein eigenes Portal in die Module und Informationen einer Anwendung ein. Diese Methode wird nach dem WebFarm-Standard verwendet, wenn eine informations- und modulreiche Anwendung von Benutzergruppen mit stark differierenden Informationsbedürfnissen genutzt wird. Dabei sind die Inhalt der Anwendung für alle Benutzer grundsätzlich interessant, nur die Häufigkeit des Abrufs einzelner Module und Informationen variieren von Benutzer zu Benutzer, so dass sich eine vom Benutzer individuell erstellte Navigation und ein individuell konfiguriertes Zugangsportal für den Benutzer in zusätzlichem Komfort ausprägen. Profiling – Verhaltensanalyse und Empfehlung Die Individualisierung durch das Verhalten von Benutzern ist der Teil der Personalisierung, der den Hype für One-on-One im Internet ausgelöst hat. Hierbei wird das Verhalten eines Benutzers auf der Seite analysiert und in Vergleich zum Verhalten anderer Benutzer gesetzt. Daraus können Navigationen, Links und Inhalte generiert werden. Generell kann man diese Art der Personalisierung auch technischer beschreiben, indem man von »Empfehlungen« oder einer »Recommendation Engine« spricht. In vielen bekannten Angeboten wird dieses Werkzeug verwendet, um CrossSelling zu betreiben bzw. um Benutzer einen komplexen Site bzw. einen Site mit sehr viel Inhalt anhand von Erfahrungswerten anderer Benutzer navigieren zu lassen. Wichtig hierbei ist, dass diese Art der Individualisierung nur begrenzten Einfluss auf die Darstellung der Sites für den Benutzer hat, es wird vor allem die Navigation und Vernetzung der Seite individualisiert. Bei großen Sites oder bei Sites, die stark vom Benutzerverhalten geprägt sind, ist eine solche Empfehlungs-Policy auf jeden Fall sinnvoll.
116
Sandini Bib Personalisierung und Profiling-Datenbanken
Abbildung 5.22: Beispiel einer Website, die Profiling verwendet
Der Einsatz einer Recommendation-Engine bedeutet, dass Daten über das Verhalten von Benutzern gesammelt werden, also auf welche Seiten der Benutzer in welcher Reihenfolge zugreift. Es ist zu beachten, dass je nach Verwendung der Daten das Datenschutzgesetz und/oder die betriebliche Mitbestimmung berührt werden und darum entsprechende rechtliche Vermerke anzubringen sind. Wichtig ist, dass eine Profilpersonalisierung erst aktiviert wird, wenn bereits Profildaten gesammelt wurden, damit sinnvolle Empfehlungen gegeben werden können. Nach dem WebFarm-Standard wird diese moderne Methode zur Individualisierung bei großen Sites mit interessensorientierten Inhalten verwendet, bei denen es sinnvoll erscheint, Benutzer mit dem Verhalten anderer Benutzer zu beraten.
117
Sandini Bib 5 Content-Management und Content-Pool
Selbstverständlich kann auf die grundsätzliche Empfehlungsstruktur eingewirkt werden, damit z.B. bestimmte Marketingaktionen unterstützt werden, es muss aber sparsam mit diesen Einwirkungsmöglichkeiten (also wirklich nur für konkrete Aktionen) umgegangen werden, da sonst der Mehrwert für den Benutzer verloren geht.
5.9.2
Erzeugung von individualisierten Anwendungen nach Gruppen
Die Erzeugung von nach Gruppen individualisierten Anwendungen ist nach der Implementierung des im WebFarm-Standard vorgesehenen ContentManagements sehr einfach möglich. Mit der im WebFarm-Standard enthaltenen Software zum Management von Content-Pool und der Redaktionssoftware für statischen Content können problemlos aus einem Pool mehrere Applikationen mit unterschiedlichen Strukturen und Layouts versorgt werden. Dieses Vorgehen ist eine normale Konfiguration der Systeme und daher nicht als gesondertes Projekt zu betrachten, lediglich das Layout der Systeme und deren Struktur sind neu zu erstellen. Die anfallenden Kosten sind in der Versorgung solcher Applikationen zu betrachten und umfassen neben eventuell einzusetzender Hardware die Lizenzen des HTTP-Servers und des Content-Management-Systems. Eigene Hardware ist für eine größere Applikation unabhängig vom Standort sinnvoll und sollte auf jeden Fall eingeplant werden. Soll eine Applikation quasi als Intranet bei Partnern oder Kunden fungieren und ist damit außer Hause, ist auf jeden Fall eine eigene Hardwareanschaffung für die Anwendung erforderlich. Kleinere individualisierte Anwendungen können als virtuelle Webserver auf bereits bestehender Hardware platziert werden. Erzeugung von »My-*«-Seiten Die so genannten »My-*«-Seiten sollten, wie oben beschrieben, immer dann eingerichtet werden, wenn eine Site sehr groß und gut strukturiert ist, und zusätzlich alle Daten für einen Benutzer interessant sein können und der Benutzer selbst erkennen kann oder wissen muss, welche Daten für ihn besonders relevant sind, um deren Sofortanzeige bzw. eine einfache Navigation zu bestimmten Inhalten einer Anwendung über das »My-*«-Portal zu individualisieren. Für die Erstellung von »My-*«-Seiten stehen einige Werkzeuge zur Verfügung, die im WebFarm-Standard auch aufgenommen sind. Es ist aber oft der Fall, dass hier für eine Anwendung kleine individuelle Lösungen auf Basis des Content-Management-Systems geschaffen werden, die durchschnittlich
118
Sandini Bib Personalisierung und Profiling-Datenbanken
mit unter 500 Zeilen Programmcode abzudecken sind. Es ist also durchaus möglich, hier eine Eigenentwicklung, wenn das Anwendungsdesign dies verlangt, zu platzieren, vorausgesetzt das Content-Management-System wird als Lieferant für Informationslokationen usw. eingesetzt. Ist dies nicht der Fall, entspricht die Entwicklung nicht dem WebFarm-Standard, da zusätzlicher, unnötiger Pflegeaufwand nur für die »My-*«-Seiten entsteht, der durch Infrastrukturmaßnahmen der WebFarm-Konstruktion abgedeckt wird. Verwendung von »Recommendation Engines« Die schwierigste und letzte Stufe der Individualisierung ist der Einsatz von »Recommendation Engines«, die den One-on-One-Boom bei Webanwendungen ausgelöst haben. Der Einsatz solcher Werkzeuge ist bei Cross-Selling-Ansätzen durch Intensivierung der Produkt- oder Informationskenntnisse bei Anwendern oder zum kontaktfreien Erfahrungsaustausch zwischen globalen Nutzern und Nutzergruppen sehr gut geeignet. Damit eine Empfehlung sinnvoll ausgesprochen bzw. dargestellt werden kann, muss der Inhalt der Anwendung strukturiert organisiert sein. Das bedeutet der Baum der Anwendung muss in den Blattknoten gruppierbare oder ähnliche Informationen enthalten, denn nur dann macht eine Empfehlung auf Ebene von Informationen Sinn. Anderenfalls ist eine Empfehlung lediglich auf das Navigationsverhalten von Benutzern ausgelegt, was für die Benutzer beschränkt interessant ist, für den Anwendungsbetreiber aber alle Aspekte von Cross-Selling deaktiviert. Wird also eine Anwendung eingerichtet, die diesen Anforderungen entspricht, schlägt der WebFarm-Standard die Verwendung von Personalisierungssoftware, sprich »Recommendation Engines«, vor. Die Infrastruktur einer WebFarm-Lokation sieht einen Personalisierungsserver vor. Auf diesem Server befindet sich eine zentrale »Recommendation Engine«, die von mehreren Anwendungen verwendet werden kann. Dieses Vorgehen wird einerseits eingesetzt, um die Kosten für die Softwareanschaffung möglichst niedrig zu halten, und andererseits, weil auf diese Weise, wenn es von den Anwendungen gewünscht wird und dementsprechend in die Empfehlungsregeln eingebunden wird, eine Policy von Empfehlungen über den Horizont einer Anwendung hinaus gegeben werden kann. Auf diese Weise entsteht durch das reine Benutzerverhalten, das durch die Verwendung von Directories, wie sie im WebFarm-Standard definiert ist, über Anwendungen hinweg verfolgt werden kann, und dementsprechend zu anwendungsübergreifenden Benutzerprofilen führt, eine Vernetzung zwischen mehreren Anwendungen einer WebFarm-Lokation, die durch herkömmliches Linkage nie zu erreichen ist.
119
Sandini Bib 5 Content-Management und Content-Pool
5.9.3
Aktivierung der Empfehlungen
Die Aktivierung der Empfehlungen und die Aktivierung des Lernens der »Recommendation Engine« ist ein sehr entscheidender Prozess, bei dem häufig Fehler gemacht werden. Zur Profilfindung wird das Benutzerverhalten analysiert und in einem Profil abgelegt, dieses Profil beinhaltet selbstverständlich nicht alle vom Benutzer vorgenommenen Aktionen, sondern eine mathematische Abbildung des Benutzerverhaltens, die mit jedem neuen Besuch des Benutzers in der Anwendung aktualisiert wird. Aufgrund dieses Lernverhaltens ist die Darstellung des Profils bzw. die Kurve, auf der sich ein Profil bewegt, ein so genanntes chaotisches Attraktorensystem (Lorenzspirale), das sich auf einen bestimmten Punkt nach einer chaotisch oszillierenden Lernphase einschwingt. Soll nun ein bereits eingeschwungenes Profil, weil sich das Benutzerverhalten oder die Anwendung verändert hat, geändert werden, so ist der Vorgang des neuen Einschwingens zeitintensiver als die erste stabile Profilfindung.
120
Sandini Bib Personalisierung und Profiling-Datenbanken
Unter Umständen kann sogar ein oszillierendes System entstehen, in dem gar kein stabiles Profil für einen Benutzer mehr gefunden werden kann. Es ist zu vermerken, dass die Wahrscheinlichkeit eines solchen Problems sehr gering ist und durch die beschränkte Datendichte in einer »Recommendation Engine« auch alte Daten des Benutzerprofils aus der Betrachtung entfallen und darum neue Parameter für die Lernkurve entstehen. Die Betrachtung oszillierender Lernsysteme hat daher für den Fall der »Recommendation Engines« im Webbereich eher akademischen Charakter und muss bei der Entwicklung WebFarm-konformer Anwendungen gar nicht beachtet werden. Aufgrund dieses Verhaltens der Lernkurven ist der Zeitpunkt der Aktivierung des Profiling und danach der Aktivierung der Empfehlungen in der Anwendung wichtig. Die Empfehlungen müssen auf jeden Fall nach dem Profiling aktiviert werden, der Abstand hier sollte so groß sein, dass mindestens 15% der erwarteten Benutzerzahl mindestens zehn User-Sessions im Server hatten, damit für die 85% zu lernenden Profile eine Basis besteht.
121
Sandini Bib 5 Content-Management und Content-Pool
Das Profiling sollte nicht direkt nach dem Launch der Anwendung gestartet werden, da in einem solche Fall nicht das eigentliche Informationsverhalten der Benutzer, sondern nur das Lernen, die Anwendung selbst zu benutzen, sprich die Navigation in den Benutzerprofilen gespeichert wird. Es sollte also zunächst eine Benutzerbasis bestehen, dann das Profiling aktiviert werden und erst im dritten Schritt auch tatsächlich Empfehlungen in die Seiten integriert werden.
122
Sandini Bib
6
Suchmaschinen
Mit der Informationsfülle des Internets und mit der zunehmenden Informationsdichte der Intranet- und Extranet-Anwendungen in global operierenden Unternehmen wird die Informationsflut für Mitarbeiter und Partner immer größer, was das Lokalisieren interessanter und wichtiger Informationen exponenziell wachsend erschwert. Aus diesem Grund sind die heute im Internet am häufigsten abgerufenen Seiten Suchmaschinen wie Yahoo, Lycos, Excite usw., die dann ihrerseits wieder auf andere fachorientierte Seiten verweisen. Bei den erwähnten Dienstleistungen handelt es sich um allgemeine Suchmaschinen, die den Versuch unternehmen, das gesamte Internet zu indizieren. Zusätzlich verfügt heute jede größere Webanwendung über eine eigene Suchmaschine, die speziell auf die Bedürfnisse und Struktur der Anwendung angepasst ist und das Suchen innerhalb des vordefinierten Bereichs der Anwendung ermöglicht. Die allgemeinen Suchmaschinen hingegen ermöglichen es, Wissen grob zu lokalisieren, um dann von dieser Lokation aus die Suche in der Anwendung oder dem Informationssystem selbst zu vertiefen. Es ist sinnvoll, die Ansätze, die im allgemein zugänglichen Netz üblich sind, auch auf interne oder externe Ansammlungen von Webanwendungen in einem Unternehmen anzuwenden, wenn dort die Informationsdichte, was anzunehmen ist, ebenfalls über das normale, überschaubare Maß hinausgeht. Der WebFarm-Standard definiert aus diesem Grund zwei Elemente für die Einführung von Suchdiensten. Einerseits die Einführung eines globalen Suchdienstes für eine WebFarm-Lokation und andererseits die Einführung eines Suchdienstes für einzelne Webanwendungen ohne anwendungsübergreifende Inhalte. Dieses Dokument befasst sich mit der übergreifenden Suchfunktionalität in einer WebFarm-Lokation.
6.1
Suchverfahren
Für die Suche von Informationen werden die unterschiedlichsten Verfahren eingesetzt, die alle für bestimmte Anwendungsgebiete entwickelt wurden und entsprechende Vor- und Nachteile in einem allgemeinen System haben. Im Folgenden wird kurz auf die verschiedenen gängigen Oberverfahren eingegangen.
123
Sandini Bib 6 Suchmaschinen
6.1.1
Volltextsuche
Bei einer Volltextsuche wird ein Dokument, was in den Suchindex aufgenommen wird, Wort für Wort indiziert, und es ist später möglich, einzelne im Text vorkommende Wörter und Wortkombinationen zu suchen. Dabei ist es offensichtlich, dass die Indizes bei geringen Dokumentenmengen mindestens genauso viel Platz wie die Dokumente selbst verbrauchen. Dokument 13
Dokument 11
Dokument 12
Dokument 9
Dokument 10
Dokument 8
Dokument 6
Dokument 7
Dokument 5
Dokument 4
Dokument 2
Dokument 3
Dokument 1 Wort 1 Wort 2 Wort 3 Wort 4 Wort 5 Wort 6 Wort 7 Wort 8 Wort 9 Wort 10 Wort 11 Wort 12 Wort 13
Abbildung 6.1: Indizierung von Wörtern bei Volltextsuche
Ein einfacher Ansatz für eine Volltextsuche sind die so genannte Matrix oder das Reverse-Matrix-Verfahren, bei denen Wörter und Dokumente die Zeilen und Spalten einer Matrix beschriften, die Elemente der Matrix die Häufigkeit des Wortes darstellen und eine Suche über eben die Zeile zur Spalte führt. Moderne Volltext-Suchalgorithmen und Suchmaschinen basieren zum größten Teil auf diesen Verfahren, aber sie besitzen die Möglichkeit, über eine intelligente Vernetzung der Zeilen und Abbildung von Silben und Buchstaben auch Bruchstücke zu erkennen. Volltextsuchen setzen voraus, dass sich der Suchende sehr gut mit der Materie auskennt und nie allgemein gehaltene Anfragen stellt. Aus diesem Grund sind Volltextsuchen im Internet mit zunehmender Dokumentenzahl immer
124
Sandini Bib Suchverfahren
uneffizienter, weil hier zumeist sehr allgemein gesucht wird und dann eine nicht zu bewältigende Fülle an Treffern erscheinen, die das gesuchte Wort bzw. das gesuchte Pattern ganz widerspiegeln. Für die allgemeinen Suchservices in einer WebFarm-Lokation bietet sich eine reine Volltextsuchmaschine überhaupt nicht an. Auch für größere Anwendungen wie zentrale Intranets ist eine Volltextsuche aus den eben beschriebenen Gründen nicht geeignet.
6.1.2
Meta-Suche
Grundsätzlich wird zwischen zwei verschiedenen Typen von Meta-Suchen unterschieden. Auf der einen Seite handelt es sich um Suchmethoden, die sich auf Meta-Informationen in den Dokumenten beziehen, auf der anderen Seite handelt es sich um die Anwendung mehrerer Suchmaschinen auf eine Abfrage und dann eine Suche über deren Ergebnisse. Suche über Meta-Informationen Bei einer reinen Meta-Suche werden nur Meta-Informationen zu einem Dokument betrachtet. Diese Meta-Informationen werden in HTML und XML in speziellen Tags in den Dokumenten hinterlegt. Bei anderen Methoden werden die Meta-Informationen zu einem Dokument eventuell aus einer zusätzlichen Datei oder einer Datenbank extrahiert, was die Verarbeitung natürlich beschleunigt. Prinzipiell funktionieren die Suchverfahren dahinter genau wie Volltext-Suchalgorithmen, nur dass diese eben nicht auf allen Wörtern der Dokumente, sondern nur auf allen Meta-Informationen arbeiten. Durch diesen verringerten Suchraum können auch aufwändigere Suchen, wie z.B. phonetische Suchen eingesetzt werden. Meta-Suchmaschinen sind für den anwendungsübergreifenden Einsatz wesentlich besser geeignet, weil über diese Suchmethode Dokumente, die gefunden werden, nicht über ihre sprachlichen Eigenschaften, sondern über eine Art Stichwortkatalog gesucht werden. Schlagwörter sind oft gut vereinheitlicht und halten auch allgemeinen Anfragen ohne besondere Kenntnis der Materie stand. Suche über mehrere Suchmaschinen Ein im Internet auch häufig angewandtes Verfahren ist die Möglichkeit, eine Suchanfrage an mehrere unterschiedlich funktionierende Suchmaschinen mit unterschiedlichen Indizierungsverfahren und unterschiedlichen Suchalgorithmen zu übergeben und dann eine Suche über die Resultate selbst durchzuführen. Auf diese Resultate kann nun wieder eine Volltextsuche durchgeführt werden, was sicherlich stark verbesserte Ergebnisse liefert. Ein besseres Verfahren ist, die Ergebnisse der einzelnen Suchmaschinen miteinander zu
125
Sandini Bib 6 Suchmaschinen
vergleichen und deren Gewichtungen – Werte, welche die meisten Suchalgorithmen ausgeben, um die Qualität des Suchergebnisses anzuzeigen – in die Bewertung mit einzubeziehen. Ein Treffer, der insgesamt hoch bewertet ist, wird von der Meta-Suche auch wieder hoch bewertet und dementsprechend dem Benutzer präsentiert. Derartige Verfahren nutzen die Vor-, leider manchmal auch die Nachteile verschiedenster Suchmethoden und liefern allgemein sehr gute Ergebnisse. Für den anwendungsübergreifenden Betrieb einer Suchmaschine in einer WebFarm-Lokation bietet sich dieses Konzept an, wenn eine solche MetaSuche auf die einzelnen Suchverfahren der einzelnen Webanwendungen zugreifen kann. Generell ist die Implementierung eines solchen Verfahrens, das auf die Eigenheiten jeder Anwendung eingehen muss, leider mit erheblichem Aufwand versehen und wird darum nur selten umgesetzt.
6.1.3
Retrieval-Engines
Die aufwändigesten, heute vorhandenen Suchverfahren sind die so genannten Retrieval-Engines. Ein solches Vorgehen bedeutet, dass die eingehenden Informationen anhand von Meta-Informationen und vorhandener Klassifizierungsalgorithmen sofort mit anderen Informationen, die bereits indiziert wurden, vernetzt werden und damit über andere Informationen ebenfalls zugänglich werden. Der Vorteil dieses Vorgehens ist, dass sehr komplexe Anfragen an eine solche Suchmaschine gestellt werden können, die dann auf dem Wissensnetzwerk ihres Index arbeitet, um entsprechend miteinander vernetzte Informationen zu finden. Für die eigentliche Indizierung und das Retrieval werden unterschiedlichste Algorithmen aus allen Bereichen der klassischen und modernen Informatik verwendet. Retrieval-Engines sind vor allem sinnvoll einsetzbar, wenn sehr viele sehr ähnliche Informationen aus einem verwandten Fachgebiet miteinander vernetzt und dann über Experten abgefragt werden, die eine Suche genau genug spezifizieren können, um die Möglichkeiten des Werkzeugs auch auszunutzen. Eine solche Retrieval-Engine eignet sich sehr gut für den anwendungsübergreifenden Einsatz in einer WebFarm-Lokation eines Unternehmens. Allerdings ist zu beachten, dass Retrieval-Engines gewöhnlich bisher sehr teuer (eine Installation > 1,5 Mio. DM) sind und darum die entsprechende Software nicht als Bestandteil des Standards definiert wurde.
126
Sandini Bib Arbeitsweise der anwendungsübergreifenden Suchmaschine
6.1.4
KI-basierte Suchansätze
Eine weitere Generation von Suchmaschinen basiert aus Algorithmen, die aus dem Bereich der künstlichen Intelligenz stammen. Diese Suchmaschinen versuchen, zum einen Extrakte aus Passagen der gescannten Dokumente zu bilden und darauf eine Art Meta-Suche durchzuführen, was ein sehr interessanter Ansatz ist, der sich auch für eine anwendungsübergreifende Suche in einer WebFarm-Lokation eignet. Die andere, zweite Generation der KI-basierten Suchmaschinen versucht, eine Suchanfrage semantisch zu verstehen und ebenso die Inhalte der Dokumente, die indiziert sind, semantisch zu analysieren und gegen die Suchanfrage abzuwägen. Die Ergebnisse solcher Suchmaschinen werden immer besser. Diese Suchmaschinen haben den eindeutigen Vorteil, dass Anfragen auch in normaler Sprache unter Verwendung von Synonymen und Akronymen usw. an die Suchmaschine gerichtet werden können. Momentan kommen die ersten, für große Anwendungen konzipierten Suchmaschinen dieser Art auf den Markt. Noch eignen sie sich nicht für den Einsatz als anwendungsübergreifende Suchmaschine in einer WebFarm-Lokation, was sich aber in absehbarer Zeit ändern kann.
6.2
Arbeitsweise der anwendungsübergreifenden Suchmaschine
Eine anwendungsübergreifende Suchmaschine in einer WebFarm-Lokation muss für alle Anwendungen, die indiziert werden sollen, ein einheitliches Vorgehen haben.
6.2.1
Indizierung
Für eine anwendungsübergreifende Suchmaschine ist es wichtig, dass sie bei der Indizierung von Dokumenten wie ein Browser, also wie ein Benutzer, vorgeht und nicht direkt auf die Daten der Anwendungen zugreift, sondern über eine HTTP- oder HTTPS-Verbindung die Anwendung nach der Struktur der Anwendung durchgeht. Dabei bleiben alte Dateien und versteckte oder berechtigungstechnisch eingeschränkte Anwendungsbereiche unberücksichtigt, was eine allgemeine Einsicht in die Anwendung ermöglicht.
127
Sandini Bib 6 Suchmaschinen
Web Application
Web Application
Web Application
Web Application
Ethernet
Search Engine
Storage
Client
Abbildung 6.2: Vorgehen einer Suchmaschine bei der Indizierung
Die Konfiguration der Indizierung ist für die Netzlast in der WebFarm-Lokation und die weitergehende Performance der Anwendungen selbst sehr wichtig. Die Suchmaschine sollte so konfiguriert sein, dass sie keine spezifischen Indizierzeitrahmen hat, sondern kontinuierlich nur den definierten Namensraum durchgeht und dabei zwischen vier und acht Verbindungen gleichzeitig zu einer Anwendung offen hält. Auf diese Weise ist die Indizierung für die Performance und Netzlast nicht dramatisch, und die Suchmaschine an sich kann sehr effizient arbeiten. Sollte die Indizierung für derart viele Anwendungen laufen, dass eine Neuindizierung einer Anwendung nicht in einem akzeptablen Zeitrahmen stattfindet, kann die Verbindungszahl bis 16 erhöht werden. Neue Anwendungen sollten bei der Inbetriebnahme in der WebFarm-Lokation einmal eine Benutzerzugriffs-berechtigung erhalten, bevor sie, komplett manuell initiiert, indiziert werden.
6.2.2
Content-Berechtigungen
Die Berechtigungen von Contents sind für anwendungsübergreifende Suchen sicherlich ein Hindernis. Einerseits möchte man nicht unberechtigten Benutzern Einblick in Contents gewähren, der nicht für ihre Augen bestimmt ist, andererseits ist es wichtig, möglichst viele Contents in die Indizierung der Suchmaschine einzubinden.
128
Sandini Bib Arbeitsweise der anwendungsübergreifenden Suchmaschine
Zugriff geschützt und keine Suchmöglichkeit
Zugriff geschützt, aber Suchmöglichkeit gegeben
Öffentlich
Abbildung 6.3: Content-Berechtigungen
Der verfügbare Content wird aus diesem Grund über das Berechtigungsmodell und damit über das in der WebFarm-Lokation vorhandene Directory in drei Stufen unterteilt. Der öffentliche Content ist hierbei völlig problemlos. Der gelb markierte Content, der in die Suche mit einbezogen wird, ist auf der Anwendung selbst geschützt; alle anderen Contents werden nicht in die Suche einbezogen. Wird ein geschützter Content mit in die Suche einbezogen, ist der Content auf der Anwendung selbst geschützt, das bedeutet, wenn ein Benutzer nach einem Treffer in der WebFarm-anwendungsübergreifenden Suche auf diesen Content zugreifen will, dann wird eine Authentifizierung erforderlich. Es existieren Suchverfahren, welche die Contents aller Anwendungen indizieren und selbst die Berechtigung der Benutzer durchführen können. Diese Verfahren werden für die anwendungsübergreifende Suche in einer WebFarmStandard-Lokation nicht eingesetzt, da sie zu inperformant sind und außerdem der Idee einer anwendungsübergreifenden Suche, nämlich allgemeine Contents für spezifische Suchanfragen zu öffnen, widersprechen. Solche Ansätze werden bei Anwendungen mit großen Berechtigungsverzweigungen in der Anwendung selbst eingesetzt.
129
Sandini Bib 6 Suchmaschinen
6.3
Lokation einer Suchmaschine in einer WebFarm
Die Suchmaschine innerhalb der WebFarm-Lokation ist eindeutig als interner Service definiert, denn sonst ist auch die vorab definierte Content-SicherheitsPolicy nicht anwendbar. Die Lokation des Dienstes in der WebFarm ist nachfolgend dargestellt, sie ist in der DMZ II und hat dort auch lokalen Storage, der sich auf keinen Fall im internen LAN befinden sollte. Web Application
Web Application
Web Application
DMZ I Packetfilter
Web Application
DMZ II Packetfilter
Application Level Gateway
Search Engine
Client
Storage
Abbildung 6.4: Lokation einer Suchmaschine in einer WebFarm
130
Sandini Bib
7
Anwendungsklassifizierung
Webanwendungen wickeln einen großen Teil der tatsächlichen Anwendungsdynamik auf dem Rechner der Webanwendung ab. Auf dem Client wird lediglich Plausibilisierung, Visualisierung usw. durchgeführt. Dies erinnert stark an die Zeiten von Großrechnern, die ebenfalls diesen zentralistischen Rechen- oder Ausführungsansatz hatten. Der Vorteil dieser Vorgehensweise ist, dass die Konfiguration und hardwaretechnische Ausstattung der Clients nicht in den Vordergrund treten können, was den Aufwand für Prognosen über das Anwendungsverhalten und die Benutzerunterstützung minimiert. Die entstehenden Operationen und Zugriffe auf der eigentlichen Maschine der Anwendung sind relativ gut zu ermitteln und zu prognostizieren, so dass hier ein Standard für verschiedene Anwendungstypen geschaffen werden kann. Dieses Dokument definiert, welche Art von Anwendung in welche Kategorie fällt, und wie sich das auf die Hardwareausstattung der für die Anwendung angeschafften Rechner auswirkt. Die in diesem Dokument vorgenommenen Definitionen beschreiben die Klassifikation von Anwendungen im WebFarm-Standard.
7.1
Klassifizierung
Die eigentliche Klassifizierung einer Anwendung hat Auswirkungen auf deren Anforderungen in Hard- und Software, deren Installations- und Betriebspriceing und auf die mögliche Performance der Anwendung selbst. Neben der von der Anwendung benötigten Software und eventueller Hardware, die zwingende Voraussetzung für die Anwendung ist, sind die erwarteten Benutzer und Benutzerzugriffe für die Planung und Dimensionierung der Anwendung entscheidend. Für die Planung weiterhin wichtig sind Verteilungsgrade und Informationsgehalt von Anwendungen.
7.1.1
Software
Die Klassifikation von Anwendungen anhand der benötigten Softwarekomponenten ist sehr einfach und wirkt sich auf die Installationskosten und den Betrieb sowie die eventuell notwendigen Testverfahren aus.
131
Sandini Bib 7 Anwendungsklassifizierung
Standard-Webanwendung Bei einer Standard-Webanwendung wird ein normaler Webserver gemäß dem WebFarm-Standard installiert. Das bedeutet, es wird lediglich die HTTP- oder HTTPS-Server-Software installiert, mit der Möglichkeit, Informationen in einem Dokumentenbaum aufzunehmen und anwendungsspezifische CGIs in einem Binärbaum auszuführen. Die genauen Lokationen und Richtlinien für die Inhalte dieser Verzeichnisstrukturen sind in den WebFarm-Richtlinien zur Anwendungsentwicklung niedergelegt. Neben diesem Standard-Webserver stehen der Anwendung alle Dienste zur Verfügung, die eine WebFarm-Lokation bzw. die globalen Dienste einer WebFarm-Implementierung anbieten. Einige der Dienste, wie das Redaktionsverfahren für Content, müssen verwendet werden, andere, wie z.B. Personalisierung oder der Anschluss an den Content-Pool und somit die Einbeziehung der Anwendung in das Information-Modelling, sind bei der Anwendungsentwicklung definiert worden. Erweiterte Webanwendung Bei erweiterten Anwendungen kommen zu den unter Standard-Webanwendung beschriebenen Installationen weitere im WebFarm-Standard definierte Dienste hinzu, die sich aber nicht auf die gesamte Infrastruktur, sondern nur auf die Implementierung einzelner Anwendungen beziehen. Dies kann z.B. Installation eines Application-Servers, individueller Suchmaschinen, individueller Personalisierung, SSL-Ticketing usw. für eine Anwendung sein. Individuelle Webanwendung Eine individuelle Anwendung hat zunächst die Installation einer StandardWebanwendung. Es können, müssen aber nicht, Komponenten der erweiterten Anwendung hinzugefügt werden, also weitere Dienste, die der WebFarmStandard für die Entwicklung von Anwendungen definiert. Individuell wird die Anwendung durch die Installation eigener Serverkomponenten, sprich Programme, die auf dem Server als eigene Prozesse agieren und dort Funktionen ausüben, oder andere Programme, die von der Anwendung aus oder in Richtung der Anwendung Einfluss auf die Anwendung selbst oder andere Dienste nehmen.
7.2
Hardware
Die für eine Anwendung benötigte Hardware ist stark abhängig von der verwendeten Software und den gleichzeitig und monatlich erwarteten Benutzerzahlen in Durchschnitts- und zu Peak-Zeiten.
132
Sandini Bib Hardware
7.2.1
Eigene Hardware oder virtueller Server
Viele Ansätze gehen heute davon aus, eine möglichst große Maschine anzuschaffen und auf dieser möglichst viele Anwendungen zu vereinigen. Der WebFarm-Standard wählt einen anderen Weg, weil die Idee, eine zentrale Maschine zu betreiben, sehr gravierende Nachteile hat. Der WebFarm-Standard schreibt vor, für jede Anwendung, die über eine »Kleinapplikation« hinausgeht, bzw. für jede Anwendung, die völlig unabhängig zu anderen Anwendungen ist, eigene Hardware zu betreiben. Nach Betrachtungen, die bei der Entwicklung des WebFarm-Standards mit Kunden angestellt wurden, ist die Anschaffung und Pflege der Hardware bei Einzelkomponenten wesentlich günstiger als die Anschaffung und der Betrieb eines zentralen Servers. Vorteile der WebFarm-Architektur
Nachteile einer »Ein-Server«-Strategie
왘 Anwendungen agieren komplett un- 왘 Ausfallgründe und Störungen sind abhängig voneinander mit wesentlich besserer Effizienz nachzuvollziehen und dementspre왘 Der Ressourcenverbrauch einzelner chend zu beheben Anwendungen ist exakt zu verfolgen und dient als Betriebsplanungs- 왘 Anwendungen können miteinander grundlage kollidieren 왘 Die IO-Leistung, und hier auch die Bandbreite des Netzes, ist die entscheidende Größe, nicht die Prozessorleistung und interne Busarchitektur 왘 Beim Ausfall oder »Amoklauf« einer Anwendung werden ALLE anderen Anwendungen beeinflusst 왘 Anwendungen verschiedenster Sicherheitsstufen teilen sich Ressourcen und haben gemeinsame Zugriffe Tab. 7.1: Übersicht Vor- und Nachteile
Virtuelle Server sollten für sehr eng verwandte Anwendungen, wie z.B. Anwendungen, welche die gleichen Datenbestände mit unterschiedlichen Berechtigungen benutzen, verwendet werden. Außerdem sind virtuelle Server für »Kleinanwendungen« einzusetzen, die lediglich eine kleine Funktion haben, wie z.B. die interne Planung von Meetingräumen und dergleichen.
133
Sandini Bib 7 Anwendungsklassifizierung
7.2.2
Cluster
Cluster sollten verwendet werden, wenn es sich um eine sehr stark eingesetzte, nicht Daten generierende Anwendung handelt. Um Cluster auch für Daten generierende Anwendungen einzusetzen, müssen alle Richtlinien der massiv-parallelen Programmentwicklung beachtet werden, die nicht Bestandteil des WebFarm-Standards sein können. Cluster lohnen sich nur für Anwendungen, die konstant unter Hochlast stehen und eine enorm große Benutzerzahl abdecken müssen. Man geht hier von Anwendungen mit 2-10 Mio. Hits pro Tag und mindestens einer Mio. Benutzersitzungen pro Tag aus. Die wenigsten Unternehmen, die Internet nicht als absolutes Kerngeschäft haben, werden diese Methoden für normale Anwendungen einsetzen müssen.
7.2.3
Speicher und Plattenplatz
Eine Standard-Webanwendung kann bis zu einer Mio. Hits pro Tag mit 256 MB-Speicher abwickeln. Werden viele externe Programme aufgerufen, wird der vom WebFarm-Standard empfohlene Speicher auf 512 MB erhöht. Wird ein Application-Server verwendet, verdoppeln sich die Werte. Den benötigten Plattenplatz bestimmt allein die Anwendung. Es muss aber auf jeden Fall auch im Rahmen der K-Fall-Sicherheit darauf geachtet werden, dass das eigentliche Betriebssystem ohne alle für die Webanwendung erforderlichen Daten auf einer separaten Festplatte (nicht nur Partition) untergebracht ist. Für die Platte mit Websoftware und Webanwendungen schreibt der WebFarm-Standard eine Mindestgröße von 9 GB vor.
7.3
Backup, Fallback und K-Fall-Strategien
Durch den WebFarm-Standard wird ein Konzept entwickelt, das es ermöglicht, eine Infrastruktur für Webanwendungen aufzubauen, Entwicklungsrichtlinien für eine reibungslose Entwicklung von Webanwendungen zu geben und organisatorische Maßnahmen zu ergreifen, die eine webfreundliche Unternehmensumgebung schaffen. Dies alles hat zum Ziel, professionelle Anwendungen in den Bereichen der neuen Medien zu entwickeln. Die Entwicklung ist der erste Schritt, aber gerade mit dem wachsenden Anspruch der Benutzer und Partner ist der Betrieb von Webanwendungen und den dazugehörigen Diensten ein entscheidender Faktor. Web bedeutet in den meisten Fällen automatisch eine 24-Stunden-Verfügbarkeit, und dem muss im Betrieb Rechnung getragen werden. Der WebFarm-Standard definiert aus diesem Grund ein Betriebskonzept, das sowohl den Betriebsanforderungen (24/7 mit
134
Sandini Bib Datensicherung
geringen Reaktionszeiten), den Revisions- und Sicherheitsanforderungen des Unternehmens als auch den Anforderungen der Fachabteilungen entspricht. Eine wichtige Grundlage für einen solchen Hochverfügbarkeitsbetrieb ist eine Infrastruktur und eine allgemeine Konfiguration mit einem Backup, FallBack/Fail-Over und einer K-Fall-Konzeption, die diesen Betrieb jederzeit ermöglichen und die Verfügbarkeit der Dienste zu einem Maximum führen. Nachfolgend wird die Infrastruktur für diese Verfahren im WebFarm-Standard definiert.
7.4
Datensicherung
Die Datensicherung ist ein zentrales Thema im Betrieb von Webanwendungen, das leider viel zu oft vernachlässigt wird. Der WebFarm-Standard unterstützt zwei Möglichkeiten der Datensicherung, die auch in Kombination angewendet werden können.
7.4.1
Lokale Datensicherung
Bei der lokalen Datensicherung ist an einen Rechner eine Möglichkeit zur Datensicherung, also ein entsprechendes Peripheriegerät angeschlossen. Nach dem WebFarm-Standard muss ein Backup-Rechner nicht notwendigerweise über eigene Datensicherungskapazitäten verfügen, wenn der Hauptrechner entsprechende Kapazitäten besitzt. Eine lokale Sicherung wird aber auch bei Backup-Maschinen empfohlen. Es wird folgende Sicherungsstrategie verfolgt: 왘 Wöchentlich Full-Backup 왘 Täglich Incremental-Backup 왘 Wöchentliches Wechseln der Bänder 왘 Bandgeneration von erster Woche des Monats wird archiviert 왘 Quartalsweise wird der letzte Backup-Satz als Großvatersicherung archi-
viert
7.4.2
Datensicherung per Serveranwendung
In vielen Unternehmen existiert eine zentrale Lösung zur Datensicherung, oder die Anwendungszahl in einer WebFarm-Lösung ist so groß, dass sich eine zentrale Datensicherung allein für den Komplex einer WebFarm-Lokation wirtschaftlich rechnet.
135
Sandini Bib 7 Anwendungsklassifizierung
Bei einer zentralen Datensicherung ist zu beachten, dass hier unternehmensinterne Datensicherungsrichtlinien beachtet werden müssen. Die Sicherungsstrategie sollte aber auch keinen Fall unter die Strategie der lokalen Datensicherung fallen. Für den Betrieb einer zentralen Sicherungslösung ist zu beachten, dass keine direkten Verbindungen zwischen externen und internen Segmenten der Firewall-Konstruktion einer WebFarm-Lokation bestehen und die Daten deshalb per TCP und auf keinen Fall per UDP übertragen werden müssen. UDP-basierende Sicherungsprotokolle können innerhalb des WebFarm-Standards nicht verwendet werden, ohne sicherheitskritische Auswirkungen zu haben, und werden darum nicht in den Standard aufgenommen. Eine Abwicklung von UDP-basierten Protokollen ist über einen entsprechenden kommerziellen SOCKS-Server denkbar und dann auch gemäß dem WebFarm-Standard korrekt, und da der SOCKS-Server nicht zur normalen Infrastruktur einer WebFarm-Lokation gehört, ist diese Konstruktion nicht direkt aufgeführt. Im Rahmen einer homogenen Sicherungssoftwarelösung ist es aber sicherlich wünschenswert, diese Lösung zu betrachten, wenn im Unternehmen ein UDP-basierendes Sicherungswerkzeug eingesetzt wird. Firewall-Komponenten dürfen nicht an ein zentrales Sicherungssystem angeschlossen werden, sondern müssen lokal gesichert werden.
7.4.3
Kombination von lokaler und zentraler Sicherung
Eine Kombination aus lokaler und zentraler Datensicherung ist natürlich die wünschenswerteste Konfiguration, die allerdings auch die höchsten Kosten verursacht. Generell bleiben alle Aussagen der lokal und zentral orientierten Datensicherungskonzepte bestehen. Die Verwendung von Bändern und Medien kann allerdings näher an deren garantierte Lebenszeit geführt werden, als das bei der reinen Verwendung eines Verfahrens implementiert sein sollte. Sollen die Zyklen vor allem für das Wechseln von Bändern bei der lokalen Datensicherung verlängert werden, wird folgende alternative Strategie definiert: 왘 Alle zwei Tage Full-Backup 왘 Täglich Incremental-Backup 왘 Zweiwöchentliches Wechseln der Medien 왘 Alle sechs Wochen wird der aktuelle Mediensatz archiviert
136
Sandini Bib Datensicherung
Data via WebFarm Infrastructure Distribution to Web Application and Backup Data via Web Application Local Data Commit and Replication to Backup Server
WebFarm Infrastructure
Client Client Internet
DMZ I
DMZ II Application Level Gateway
Packetfilter
Web Server
Web Server Backup
GAN Packetfitler
Web Server
Web Server Backup
Abbildung 7.1: Kombination lokaler und zentraler Sicherung
7.4.4
Fail-Over- und Fall-Back-Lösung
Mit einer der häufigsten Gründe für einen Ausfall eines Dienstes ist der Ausfall irgendeiner Hardwarekomponente beim Rechner, auf dem der Dienst betrieben wird. Jeder Hardwarehersteller bietet aus diesem Grund so genannte High-Availability-Lösungen an, die zwei gleichartige Hardwarekonfigurationen miteinander so verbinden, dass eventuelle Ausfälle abgesichert werden. Der Nachteil solcher Lösungen ist der sehr hohe Preis, denn es müssen zwei gleiche Rechner angeschafft werden sowie die High-Availability-Lösung, die ungefähr noch einmal so viel kostet wie einer der beiden Rechner. Das bedeutet, bei der Investition in ein High-Availability-Set-up muss man mit dem Preisfaktor 3 im Vergleich zur Lösung ohne Backup-Hardware rechnen. Der WebFarm-Standard sieht ein anderes Verfahren vor, weil die Definitionen des Standards eine kosteneffizientere Lösung ermöglichen.
7.4.5
Datenströme
Entscheidend für die Funktionalität der Fail-Over und Fall-Back nach dem WebFarm-Betriebskonzept ist die Verteilung von Daten auf die entsprechenden Anwendungen. Existieren geregelte Datenströme, kann auf die HighAvailability-Lösung verzichtet werden. Voraussetzung hierbei ist, dass es für jede Maschine, die in das Fall-Back-Verfahren integriert werden soll, eine entsprechende Backup-Maschine gibt. Außerdem müssen die Datenströme, die auf die Anwendung gelangen, über die WebFarm-Infrastruktur abgewickelt werden, und die Anwendung muss, wenn sie selbst Daten generiert, gleichzeitig auf der Primär-Maschine und dem Backup-System ablegt werden.
137
Sandini Bib 7 Anwendungsklassifizierung
Data via WebFarm Infrastructure Distribution to Web Application and Backup Data via Web Application Local Data Commit and Replication to Backup Server
WebFarm Infrastructure
Client Client Internet
DMZ I
DMZ II Application Level Gateway
Packetfilter
Web Server
Web Server Backup
GAN Packetfitler
Web Server
Web Server Backup
Abbildung 7.2: Übersicht Datenströme
7.4.6
Fail-Over und Fall-Back
Für das Fail-Over-Konzept des WebFarm-Standards wird auf die Möglichkeiten der TCP/IP-Protokollfamilie zurückgegriffen. Jeder Rechner erhält auf der physikalischen Netzwerkkarte eine IP-Adresse und einen Namen, der sich aus Anwendungen (n=1 ... 2) zusammensetzt. Zusätzlich wird unter der IP-Adresse und damit auch unter dem Namen der Anwendung ein virtuelles Netzwerkinterface definiert, das auf dem Produktionssystem aktiviert und auf dem Backup-System inaktiv ist. Auf beiden Rechnern ist eine Software installiert, die, wenn das virtuelle Interface inaktiv ist, über das Löschen des ARP-Puffer und anschließendes Erzeugen eines ARP-Request für die Maschine mit dem aktiven virtuellen Interface deren Verfügbarkeit von bzw. netzwerktechnische Erreichbarkeit überprüft. Wird die Erreichbarkeit nicht nachgewiesen, so wird das virtuelle Interface aktiviert, und der bislang inaktive Rechner übernimmt die Produktionsfunktionalität Auf diese Weise können nur schwere Hardwareausfälle sowie Probleme im Netzwerk oder der LAN-Komponenten abgesichert werden, was aber für ein automatisches Hardware-Fail-Over ausreichend ist. Zusätzlich kann durch die im WebFarm-Standard definierte Überwachungssoftware der gleiche Mechanismus ausgelöst wird, wenn ein Dienst auf einer Maschine ausfällt und nicht direkt wieder aktiviert werden kann. Zusätzlich wird bei diesem Fall-Back das virtuelle Interface der Produktionsmaschine auf inaktiv geschaltet, damit keine Konflikte entstehen.
138
Sandini Bib Cluster
www-1 10.0.0.1 WWW Produktion www 10.0.0.3 Client www-2 10.0.02 WWW Backup
Abbildung 7.3: Failover und FailBack
7.5
Cluster
Mit zwei gleichen Maschinen und exakt spiegelgleichen Daten ist es selbstverständlich auch möglich, ein Clustering von Anwendungen zu schaffen. Nur sehr wenige Arten von Webanwendungen brauchen tatsächlich ein Clustering. Da die zweite oder die Backup-Maschine im WebFarm-Konzept für die Abwicklung des Pro-Production-Systems und den Redaktionsprozess verwendet wird, was bei einem Cluster nicht mehr möglich ist, muss analysiert werden, ob tatsächlich ein Cluster geschaffen werden soll. Ein einfachstes Load-Sharing kommt zustande, wenn unter einem Namen die beiden tatsächlichen IP-Adressen der Maschinen geführt werden. Fällt dann allerdings eine der Maschinen aus, gehen 50% aller Zugriffe ins Leere. Außerdem ist es keine echte Lastverteilung, weil nicht nach der Aufwendigkeit der Zugriffe unterschieden wird, sondern 50% aller Erstanfragen zur ersten Maschine und der Rest an die zweite Maschine geleitet werden. WWW C 3 WWW C 1
WWW Cluster Manager
Client
WWW C 2 WWW C 4
Abbildung 7.4: Clustering
139
Sandini Bib 7 Anwendungsklassifizierung
Ein echtes Load-Sharing wird erst durch eine Cluster-Verwaltung erreicht. In diesem Fall ist eine Hardwarekomponente als Cluster-Manager designiert, sie kennt die Last der einzelnen Cluster-Rechner und verteilt die Anfragen entsprechend. Weiterentwickelte Cluster-Manager können auch nach Anwendungsarten und Protokollen unterscheiden werden und somit mehrere SubCluster für bestimmte Anfragetypen verwalten.
7.6
K-Fall-Absicherung
Die Absicherung gegen Katastrophen, welcher Art auch immer, ist für kritische Anwendungen, die für das Primärgeschäft erforderlich sind, meistens eine Revisionsforderung. Zudem kommen in vielen Fällen für andere Anwendungsklassen auch gesetzliche Vorschriften zum Tragen, die eine Absicherung gegen Katastrophen verlangen. Als Katastrophe kann irgendein Vorfall definiert werden, der einen Rechner oder gesamte Infrastrukturkomponenten zum Ausfall bringt, so dass durch normale Maßnahmen keine Möglichkeit zur Wiederherstellung der Funktionalität des Dienstes besteht. Sei dies ein Wassereinbruch im Rechenzentrum, eine Naturkatastrophe oder ein Fehler im Stromnetz. Wie weit eine K-Fall-Absicherung gehen soll (Gebäude, Länder, ...), ist eindeutig in den Betriebsrichtlinien festzulegen oder eventuell auch durch entsprechende gesetzliche Regelungen vorgeschrieben.
7.6.1
Räumliche Trennung
Die räumliche Trennung von Produktions- und Backup-Rechner ist die erste Maßnahme zur K-Fall-Absicherung. Es muss dann allerdings gewährleistet sein, dass die Netze beider Standorte miteinander im gleichen Segment verbunden sind. Üblicherweise wird eine solche Verbindung durch eine LWLVerbindung zwischen zwei Gebäuden oder zwei Räumen im Gebäude möglich. Werden zwei komplett voneinander getrennte Lokationen geführt, ist die K-Fall-Absicherung komplexer und kann nicht im selben Netzwerksegment durchgeführt werden. In diesem Fall wird das ARP-basierte Heart-Beat-Protokoll, das im vorangegangenen Kapitel beschrieben wurde, durch ein wesentlich overhead-belastetes Protokoll auf TCP-Basis ersetzt. Dieses Vorgehen wird tatsächlich nur verwendet, wenn die räumliche Trennung der Systeme eine Verbindung der beiden Netzsegmente zu einem Netzsegment unmöglich macht.
140
Sandini Bib K-Fall-Absicherung
WWW
INTRA
WWW bak
FI
Segmen 10.0.0.X
INTRA bak
FI bak
Segment 10.0.0.X
RING Connection Fiber Connector
Fiber Connector
Abbildung 7.5: Räumliche Trennung
Der Sicherheitsstandard bzw. gesetzliche oder unternehmensinterne Vorschriften schreiben die Art der räumlichen Trennung anhand der Art der Anwendungen vor. Es ist grundsätzlich sinnvoll, zwei Räume zu verwenden, die komplett unabhängige Stromversorgung besitzen. Dies ist das Minimum für eine K-Fall-orientierte räumliche Trennung im WebFarm-Standard.
7.6.2
Medienaufbewahrung
Für kritische Systeme, für die eine zusätzliche K-Fall-Absicherung geschaffen werden soll, schreibt der WebFarm-Standard die regelmäßige Erstellung von Eins-zu-eins-Medienkopien vor. Üblicherweise werden hierzu die Systemund primären Datenplatten (auf optionale Daten wird verzichtet) mittels einer Eins-zu-eins-Übertragungssoftware in definierten Zeitintervallen gespiegelt. Für den Zeitpunkt, an dem die Spiegelung stattfindet, wird das Backup-System aktiviert, bzw. verfügt das Primärsystem über kein Backup. Das Zeitintervall sollte mindestens drei Monate betragen, kürzere Intervalle sind besser, können aber oft nicht eingehalten werden. Mit diesen Medien versehen, kann zu jeder Zeit eine gleiche Hardware sofort, also ohne das Einspielen von Backups usw., zu einem Produktivsystem umgewandelt werden. Mit den Hardwarelieferanten müssen entsprechende Verträge geschlossen werden, oder bei einer dritten Partei, die auch für die Aufbewahrung der K-Fall-Medien verantwortlich ist, wird eine kleine Anzahl an Notfallmaschinen hinterlegt.
141
Sandini Bib 7 Anwendungsklassifizierung
7.7
Network-Connectivity
Die gesamte Webinfrastruktur eines Unternehmens beruht auf der Vernetzung des Unternehmens in sich bzw. mit der Außenwelt. Aus diesen Gründen ist eine kurze Betrachtung der Netzstruktur mit entsprechenden Anforderungen Bestandteil des WebFarm-Standards. Nachfolgend wird beschrieben, wann Standorte miteinander verbunden werden, und wie eine Internetverbindung aussehen kann. Aufgrund der Erfahrungswerte, die in die Entwicklung des WebFarm-Standards eingeflossen sind, sind auch Bandbreitenvorschläge beigefügt.
7.8
GAN-Verbindungen Proxy IN
LAN
LAN
Proxy Ext
DMZ II Packetfilter
WorkstationWorkstationWorkstationWorkstationWorkstation WorkstationWorkstationWorkstationWorkstationWorkstation
DMZ I ALG
Internet Packetfilter
Intraproxy
Packet filter
Proxy
LAN
LAN
WorkstationWorkstationWorkstationWorkstationWorkstation WorkstationWorkstationWorkstationWorkstationWorkstation Packet filter
Proxy
LAN
Proxy
Proxy Packet filter
WorkstationWorkstationWorkstationWorkstationWorkstation
LAN
WorkstationWorkstationWorkstationWorkstationWorkstation
Packet filter
LAN
WorkstationWorkstationWorkstationWorkstationWorkstation
Abbildung 7.6: GAN-Infrastruktur
Die benötigten Verbindungen für eine GAN-Infrastruktur hängen selbstverständlich von allen anderen Anwendungen, die über diese Verbindungen gefahren werden, genauso ab wie von den hier beschriebenen Webanwen-
142
Sandini Bib Internetanbindung
dungen. Es gibt verschiedenste Möglichkeiten, ein GAN aufzubauen, hier wird beispielhaft eine hierarchische Organisation aufgezeigt, weil daran die Bandbreitenanforderungen am einfachsten zu demonstrieren sind. Das dargestellte Schema zeigt, analog zur vorgeschlagenen Proxy-Struktur, eine Infrastruktur mit vier Ebenen, wobei die oberste Ebene über einen Internetzugang verfügt. Aufgrund der Proxy-Infrastruktur ist mit einer 64-KBpsAnbindung das Antwortzeitverhalten der meisten Anwendungen auf jeden Fall akzeptabel. Optimal, vor allem wenn auch unbeschränkte private Nutzung der Netzzugänge gestattet ist, ist eine Vernetzung mit 64 KBps auf der untersten Ebene, 256 KBps auf der zweituntersten Ebene, 512 KBps oder bereits 2 MBps zur Zentrale. Die Internetanbindung der Zentrale sollte auf keinen Fall unter 2*2 MBps eingerichtet werden. Sind keine Proxy-Server vorhanden, muss mit einer Bandbreite von 64 KBps pro angeschlossenen Arbeitsplatz gerechnet werden. Ausfallsicherheiten durch Dial-up-Backups oder redundante Leitungen sind hier nicht angegeben, sollten aber generell in der Planung des GAN berücksichtigt werden. Wenn unternehmenskritische Echtzeit-anwendungen in einer GAN-Struktur benutzt werden, ist auf jeden Fall zumeist auch vom Gesetzgeber eine Ausfallsicherheit gefordert.
7.9
Internetanbindung
Eine normale Internetanbindung besteht aus einer Verbindung zu einem Provider. Diese Verbindung kann auf unterschiedliche Weise installiert sein. An Bandbreiten kann man von heutigen Citynetz-Providern alles ab 64 KBps in 64-KBps-Schritten mieten, es ist aber sinnvoll, in den Maßen 64 KBps, 128 KBps, 256 KBps, 512 KBps, 2 MB, 34 MB, 156 MB zu rechnen, da viele Algorithmen mit 64*2n-Bandbreite am besten arbeiten (weitere Zwischenstufen sind möglich).
Internet
Provider Net Packetfilter
Externer Router
Access Router
Backbone Router
Abbildung 7.7: Internetanbindung
143
Sandini Bib 7 Anwendungsklassifizierung
Zur Ausfallsicherheit kann auf jeden Fall eine zweite oder eine Dial-up-Leitung zum Internetprovider geschaltet werden, dies hilft aber nicht, wenn der Provider selbst der Störfaktor ist, was immer wieder vorkommen kann, da die heutigen Providernetze sehr komplex sind und auch dort Wartungsarbeiten durchgeführt werden müssen. Aus diesen Gründen kann ein so genanntes autonomes System (AS) eingerichtet werden, bei dem für die externe DMZ providerunabhängige Adressen (AS-Adressen) vergeben werden und dann der lokale Router direkt an das dynamische Routing der Internetprovider angeschlossen wird. Auf diese Weise ist die Internetverbindung ausfallsicher, und es findet ein Load-Sharing zwischen den beiden Provideranbindungen statt. Ein solcher AS-Aufbau kann mit beliebig vielen Internetprovidern zusammenarbeiten. Je mehr Provider eingebunden werden, desto höher werden die Anforderungen an den internen Router. Es ist wichtig zu beachten, dass die Konfiguration eines AS sehr komplex ist und direkt in das Routing des Internets eingreift. Aus diesem Grund muss vor der Konfiguration entsprechendes Wissen geschaffen werden oder für eine solche Installation eingekauft werden.
Internet
Provider Net Backbone Router
Access Router Packetfilter
Externer Router Provider Net Access Router
Backbone Router
Internet
Abbildung 7.8: Internetanbindung (2)
7.10 Archivierung Archivierung und klassisches Dokumentenmanagement werden im Büroalltag und in der Revisionierung und Prüfung von Unternehmen immer wichtiger. Papierprozesse werden durch diesen Trend Richtung elektronischer Prozesse migriert.
144
Sandini Bib Datentransfer
Es ist auch sehr deutlich, dass Webanwendungen aus dem Experimentierstadium entwachsen sind und heute einen großen Platz in der IT-Strategie eines Unternehmens einnehmen. Aus diesem Grund darf eine Verbindung zwischen den Produktivsystemen der Webanwendungen und den Back-OfficeSystemen der Archivierung nicht vernachlässigt werden. Der WebFarm-Standard konzentriert sich hauptsächlich auf Front-OfficeApplikationen, deren benötigte Infrastruktur, Entwicklung und Betrieb sowie die dafür notwendigen organisatorischen Maßnahmen. Mit dem Anschluss an ein Archivierungs- oder DMS-System wird also eine Verbindung in den Back-Office-Bereich eines Unternehmens geschaffen. Dieses Dokument beschreibt die möglichen Schnittstellen aus einer WebFarm-Lokation zu Archivierungs- und DMS-Systemen.
7.11 Datentransfer Der Datentransfer zu Archivsystemen gestaltet sich aufgrund der Vielfalt von Schnittstellen, die diese unterstützen müssen, sehr einfach. Es werden von der WebFarm-Infrastruktur aus alle Dateien, die in die Archivierung mit einfließen sollen, auf ein entsprechendes System kopiert und von diesem dann über die Dateischnittstelle des Archiv- oder DMS-Systems entgegengenommen. Da alle eingehenden Daten in der WebFarm- über die Administrationsrechner und Servicerechner der WebFarm-Infrastruktur kontrolliert werden, ist das Abgreifen dieser Daten völlig problemlos realisierbar. Wichtig ist, dass nicht Teile der Administrationsstruktur der WebFarmwomöglich über Sicherheitskonstruktionen hinweg »exportiert«, also komplett auf Dateisystemebene zugänglich gemacht werden, wie es von vielen Systemen anfänglich gefordert wird, sondern dass die WebFarm-Administrationsinfrastruktur für die Übertragung der benötigten Dateien an das Archivsystem sorgt. Auf diese Weise ist ein Konflikt zwischen den Abläufen im Archivsystem und den Abläufen des WebFarm-Betriebs nicht möglich, weil die Systeme sich nicht gegenseitig beeinflussen können. Der Datentransfer sollte aus der DMZ II einer WebFarm-Lokation in Richtung des internen Netzes erfolgen. Eine Verschlüsselung ist sicherlich sinnvoll und auch für die Automatisierung zweckdienlich, aber nicht zwingend erforderlich, wenn das Archivsystem entsprechend geschützt ist und nicht über weitere Außenanbindungen angebunden ist oder verfügt.
145
Sandini Bib 7 Anwendungsklassifizierung
Wird der Content-Pool als Datenquelle verwendet, können die Informationen sehr tief gehend weiter klassifiziert und mit Meta-Informationen versehen werden, was eine Weiterverarbeitung im DMS ermöglichen kann.
7.12 Aktualisierungen Aufgrund der sich ständig verändernden Technologie und der verschiedensten Entwicklungen ist der WebFarm-Standard von einigen Vorgehensweisen selbstverständlich auch permanenten Aktualisierungen unterworfen. Der WebFarm-Standard ist so zusammengestellt, dass Technologieänderungen und insbesondere Änderungen in den Entwicklungsstandards für Internet Anwendungen ohne Probleme integriert werden können. Wir sind selbstverständlich jederzeit bemüht diese Neuerungen in den WebFarm-Standard einzuarbeiten. Sie finden aktuelle Ergänzungen sowie weitere Informationen immer unter http://www.arago.de/
146
Sandini Bib
II Anwendungsspezifische Systemarchitektur
Sandini Bib
Sandini Bib
8
Richtlinien für die Implementierung
Nach dem Aufbau der bereits beschriebenen Infrastruktur können Anwendungen in einer Art Massenfertigung in die vorhandene Infrastruktur integriert werden. Hierbei ist es besonders wichtig, dass bei der Implementierung dieser Anwendungen bzw. bei der Installation der Produktionsumgebung auf den WebFarm-Standard geachtet wird, da nur dann eine optimale Zusammenarbeit mit allen Komponenten der Infrastruktur gewährleistet und der volle Nutzen aus dem Standard gezogen werden kann. Der WebFarm-Standard ist kein starres inflexibles Werk, das einem Entwickler eine exakte Vorgehensweise für eine Entwicklung oder gar die explizite Umgebung oder den Stil vorschreibt; Vielmehr gibt der WebFarm-Standard Schnittstellen zwischen Infrastruktur und Entwicklung vor, die einen Hochverfügbarkeitsbetrieb nach dem WebFarm-Modell ermöglichen und durch einen organisatorischen Kontext unterstützt wird.
8.1
Entwicklungsumgebung
Da für die verschiedensten Anwendungen in einer WebFarm-Umgebung üblicherweise unterschiedlichste Programmierer- und Entwicklungsteams sowie verschiedene Gesellschaften beteiligt sind, ist es nicht das Ziel des Standards, diesen Teilnehmern ihren Entwicklungsstil vorzuschreiben. Der WebFarm-Standard trennt die Entwicklungsumgebung der Zulieferer so weit wie möglich von den Produktionssystemen einer WebFarm-Umgebung, auf denen gar keine Entwicklung stattfinden darf. Dabei sind die Infrastrukturmaßnahmen und Standardpakete sowie die vorgeschriebene Software und die Orientierungshilfen für den Entwicklungsstil für die Zulieferer zusammengestellt, so dass diese alle Dienste der WebFarm-Infrastruktur benutzen können und eine einheitliche Systemlandschaft in der Betriebsumgebung einer WebFarm-Lokation entstehen. Für die verschiedenen grundlegenden Entwicklungsprozesse und Anwendungstypen, die entstehen können, ist der Zulieferer frei in der Wahl seiner Werkzeuge. Die Hard- und Softwareempfehlungen, die diesem Kapitel angehängt sind, sind lediglich als Anregungen zu verstehen, mit denen bereits viele erfolgreiche Entwicklungen durchgeführt wurden. Produktionsumgebung und Entwicklungsumgebung sind vollständig voneinander getrennt. Jede Produktionsanwendung hat eine Produktions- und eine Backup-Instanz. Auf der Backup-Instanz wird zusätzlich der fachliche
149
Sandini Bib 8 Richtlinien für die Implementierung
Redaktionsprozess, also die Abnahme des Auftraggebers/der Online-Redaktion für die angelieferten Anwendungsteile durchgeführt. Da die Zulieferer keinerlei Zugriff auf die Produktionsumgebung haben, ist es essentiell, dass diese die Möglichkeit haben, ein Spiegelsystem als Entwicklungssystem zu pflegen, das aber nur für diesen Zulieferer relevante Daten enthält. Um den Zulieferer diese Möglichkeit zu geben, wird das Redaktionssystem für eine Anwendung so konfiguriert, dass alle freigegebenen Pakete, die Bereiche tangieren, auf die der besagte Zulieferer Schreibberechtigung hat, an diesen Zulieferer versendet werden, nachdem sie freigegeben wurden. Der Zulieferer kann so sicherstellen, dass er ein System pflegt, das dem Produktionssystem für die von ihm beeinflussbarer Segmente gleicht. Dies ermöglicht es, bereits in einem frühen Stadium angemessene Test und Performanceuntersuchungen auf Seiten des Zulieferers durchzuführen. Die Entwicklungsplattformen für einzelne Anwendungssegmente können durchaus von der Plattform des Produktionssystems abweichen. So wird z.B. für die grafische Nachbearbeitung von Bildern oft APPLE-Hardware eingesetzt. Der Server, auf dem ein Zulieferer allerdings die Tests für eine Anwendung durchführt bzw. von dem aus Pakete für neue Anlieferungen gepackt und versendet werden, muss dem Produktionssystem zumindest von der Systemarchitektur gleichen, da ansonsten keine aussagekräftigen Tests durchgeführt werden können und diese dann von der WebFarm-Administration aufwändig nachgeholt werden müsse. Die Zulieferer müssen sich zur Durchführung entsprechender Tests verpflichten und in den Vereinbarungen zur Erstellung von Webanwendungen zugestehen, dass Änderungen an den Entwicklungen, die aufgrund der Integrationsfähigkeit in den WebFarm-Betrieb oder die WebFarmInfrastruktur anfallen, vom Zulieferer selbst getragen werden.
8.2
Webserver-Softwaredefinition
Ziel dieses Dokuments ist es, die spezifische Konfiguration, die auf einer Hardwareplattform für das Einrichten eines Webservers und der darauf existierenden Programme und Anwendungen benötigt wird, festzulegen. Dabei werden die Erfahrungen des WebFarm-Systembetriebs als Grundlage für die Definition der WebFarm-Standards verwendet.
8.2.1
Produktklassifizierung bei HTTP-Servern
Die zu treffende Grundsatzentscheidung ist prinzipiell, soll ein kommerzielles oder ein frei verfügbares Produkt als Webserver eingesetzt werden. Hierbei ergeben sich Vor- und Nachteile, die aus geschäftlicher und geschäftspolitischer Sicht abzuwägen sind und die dann für einen Softwaretypen eine klare Präferenz schaffen, der dann auch eingesetzt wird.
150
Sandini Bib Webserver-Softwaredefinition
Eine Mischung ist bei der Trennung von Anwendung in geschäftsrelevante Funktionen und Zusatzfunktionen sicherlich denkbar und kosteneffizient. Ziel muss es hierbei immer sein, für den Systembetrieb eine einheitliche Aufwandsstruktur zu schaffen. Das bedeutet, es kann innerhalb des WebFarmStandards durchaus mehrere Softwaretypen geben, die als HTTP-Server eingesetzt werden, allerdings nur unter der klaren Voraussetzung, dass der Betrieb dieser Server die gleichen Folgekosten hat.
Request
LDAP Module
Network Layer Network Permissions
HTTP Händler
MIME Händler
DB Module
Local Cache
HTML Parser SSI Connector ...
Access Module
Abbildung 8.1: Strukturdarstellung von Webserver-Modulen
8.2.2
Spezifische Webserver im Vergleich zu allgemeinen Webservern
Viele Hersteller von spezifischer Anwendungssoftware bieten heute auch eine HTTP-Integration in ihrer Anwendungssoftware an. Grundsätzlich ist der Einsatz solcher Produkte nicht Teil des WebFarm-Standards und wird darum auch nur in Sonderfällen in einer WebFarm-Lokation eingesetzt. Diese klare Richtlinie zum Einsatz von standardisierten HTTP-Servern ist folgendermaßen zu begründen: 왘 Die vom WebFarm-Standard empfohlenen Server bieten alle offene
Schnittstellen (APIs) und die Möglichkeit an, über Side-Includes oder Module andere Software in den Prozess des HTTP-Serving einzubeziehen
151
Sandini Bib 8 Richtlinien für die Implementierung
und diese zu verwenden. Es entstehen also keinerlei Restriktionen für den Anwender. 왘 Aufgrund der sehr schnellen Weiterentwicklung der Webtechnologie und
den auch ständig steigenden Anforderungen an reine Serverprodukte ist es sinnvoll, hier ein spezialisiertes Produkt einzusetzen, das eben auch allen Sicherheitsanforderungen usw. entspricht. 왘 Server, die als Zusatzfunktion einen HTTP-Server anbieten (z.B. Daten-
bank-App-Server, Corba-App-Server usw.), konzentrieren sich auf ihre eigentliche Serverfunktion und nicht auf die HTTP-Funktionalitäten und bieten daher weniger Flexibilität, Sicherheitsmechanismen, Mechanismen zur Einbindung anderer Produkte usw. 왘 Server, die als Zusatzfunktion einen HTTP-Server anbieten, sind für diese
Zusatzfunktion prioritär in der Benutzung, Entwicklung und im Betrieb und schaffen daher ein schlechteres Betriebseffizienzverhältnis.
Abbildung 8.2: Integrierter und embedded Webserver
8.2.3
Plug-ins, Module und Includes
Zur Erweiterung der Funktionalität eines Webservers, so z.B., um einen Application-Server in den eigentlichen HTTP-Server einzubinden, um eine direkte Datenbankverbindung herzustellen oder um bestimmte Berechtigungsmechanismen zu erwirken, können die im WebFarm-Standard vorgeschlagenen Produkte alle über standardisierte Schnittstellen erweitert werden. Es gibt hierbei die Möglichkeit, direkt die Serversoftware um bestimmte Module zu erweitern oder in die Prozesse der Serversoftware so genannte Server-Side-Includes einzuklinken, mit denen dann an bestimmten vorgesehenen Punkten des HTTP-Serving-Prozesses die entsprechenden Zusatzfunktionen verwirklicht wird.
152
Sandini Bib Webserver-Softwaredefinition
Auf diese Weise ist es möglich, alle vorstellbaren technischen Zusätze in einen HTTP-Server zu integrieren und dabei trotzdem auf einer hochwertigen Serverbasis aufzubauen. Einige typische Beispiele für Plug-ins, Side-Includes und Module, die im WebFarm-Standard eingesetzt werden, sind hier aufgelistet: 왘 Funktionale Berechtigung 왘 Zusätzlich zum Standard-LDAP-Identifikationsmodul erscheint es oft
wünschenswert, andere Gruppen oder Felder der X500-Struktur in die Berechtigung von Benutzern mit aufzunehmen. Dies kann über ein entsprechendes Plug-in geschehen. 왘 SSL-Tickets
Zur verschlüsselten Sicherung der Seitenabruffolge können so genannte SSL-Tickets verwendet werden, die über ein entsprechendes Modul verwaltet und gesteuert werden. 왘 Web-Application-Server
Application-Server wie Cold-Fusion oder Silver-Stream werden über Includes in die Server eingebunden und stellen dann über Parsed-HTML die entsprechenden Funktionen zur Verfügung.
8.2.4
Installation
Grundsätzlich wird im System eine Trennung zwischen Anwendungen, Anwendungsdaten, und von der Anwendung erzeugten Daten gemacht. Die eigentliche Anwendung wird in einem Subtree unter dem /TOP/-Verzeichnis bei Unix-Systemen installiert. Die Anwendungsdaten werden in einem Subtree des /WWW-Verzeichnisses (bei Webservern) auch für andere Anwendungen installiert, und Loginformationen werden in einem Subtree des Verzeichnisses /LOGS unter Unix installiert. Alle diese Oberverzeichnisse werden separaten Datenspeichern oder Partitionen zugeordnet, damit der Einfluss von Anwendung auf Daten und Funktionalität minimiert werden kann und so eine maximale Betriebsbereitschaft entsteht. Basissoftware Die Basissoftware wird z.B. im Falle eines Netscape-Enterprise-Servers unter /OPT/NS-HOME installiert. Dabei wird für jede Instanz darunter ein https-xxxVerzeichnis angelegt. In den jeweiligen Anwendungsverzeichnissen werden die Logverzeichnisse nach /LOGS/XXX verlinkt, damit die angesprochene Systemtrennung gegeben ist.
153
Sandini Bib 8 Richtlinien für die Implementierung
Zusatzsoftware/Anwendungsspezifische Software Zur Template-Installation zählen die, weiter unten beschriebene Basissoftware der WebFarm-Infrastruktur die unter /OP/SWPACKAGE installiert, wobei SWPACKAGE die Bezeichnung der jeweiligen Software darstellt. Eine zusätzliche, von den Anwendungen geforderte Software wird nur dann unter /TOP/SWPACKAGE installiert, wenn es sich um Standardsoftware handelt, die eine Prüfung für die WebFarm-Infrastruktur-Tauglichkeit bestanden hat. Andernfalls wird die Software unter /WWW/XXX-ORIG-SWPACKAGE installiert, wobei xxx die Anwendung bezeichnet, für welche die Software installiert wird, ORIG den Zulieferer, der die Softwareinstallation erlangt hat, und SWPACKAGE die entsprechende Software bezeichnet. Unter Umständen kann der Lieferant auch über das Redaktionssystem bzw. das Content-Pool-System berechtigt werden, neue Versionen bereitzustellen (eine Inbetriebnahme der Applikationen erfolgt allerdings nur unter Kontrolle des Systembetriebs). Es werden zur Installation von Anwendungen folgende Grundsätze innerhalb des Bereichs der Webanwendungen festgelegt: 왘 CGIs:
werden unter /WWW/XXX/CGI-BIN/ORIG/ abgelegt, wobei xxx wieder die Anwendungsbezeichnung und ORIG der Zulieferer ist. 왘 Generierte Daten:
Werden von den Anwendungen Daten auf Platte generiert, so werden diese unter /WWW/XXX/LIB/ORIG abgelegt. 왘 Zusätzliche Daten:
Werden von den Anwendungen zusätzliche Daten benötigt, die nicht im Webtree stehen sollen, so werden diese unter /WWW/XXX/ETC/ORIG abgelegt. WebFarm-Standard-Software Im Rahmen einer WebFarm-Installation wird auf einem Webserver nicht nur die eigentliche HTTP-Serversoftware installiert. Es sind noch einige Standardkomponenten absolut erforderlich, wenn der Rechner später in den Betrieb einer WebFarm-Lokation aufgenommen werden soll. Diese Komponenten sind im Folgenden kurz aufgelistet und werden in den entsprechenden Sektionen der WebFarm-Standardbeschreibung detailliert erläutert: 왘 Überwachungssystem:
Es wird auf jedem Rechner einer WebFarm-Lokation installiert und verbindet diesen Rechner mit dem lokalen Administrationsserver. Die Administrationsserver sind untereinander verbunden und stellen so das Web-
154
Sandini Bib Webserver-Softwaredefinition
Farm-Überwachungsnetzwerk dar. Das Überwachungssystem versucht wie ein Benutzer auf die einzelnen Dienste eines Rechners zuzugreifen und ist dabei gleichzeitig mit den Logdateien des Systems und der jeweiligen Dienste verbunden. Fehler können auf diese Weise sehr schnell erkannt und in den meisten Fällen behoben werden, bevor sie den Benutzern auffallen. Jedes WebFarm-System wird mit der Systemüberwachung vorinstalliert. Für jeden Dienst und jede Zusatzsoftware ist das Überwachungssystem entsprechend zu konfigurieren. 왘 Content-Management-System:
Jeder Webserver benötigt Teile des Content-Management-Systems der WebFarm-Infrastruktur, da über dieses System alle Komponenten des Webservers geliefert werden. Hierbei wird zwischen zwei wesentlichen Teilen, dem Redaktionssystem und dem Content-Pool-System, unterschieden. Die Komponenten der WebFarm-Redaktionsinfrastruktur müssen auf jeden Fall installiert werden, ebenso die für die Softwareverteilung zuständigen Komponenten des Content-Pool-System. 왘 Redaktionssystem:
Jeder Content, der auf einer Webanwendung eingespielt wird, wird über das Redaktionssystem geleitet. Hierbei können externe und interne Zulieferer Inhalte für das Redaktionssystem bereitstellen. Die Zulieferer liefern ihren Content an die zentrale Infrastruktur des Redaktionssystems einer WebFarm-Lokation, diese verteilt den Content dann über das definierte Redaktionsverfahren auf die einzelnen Anwendungen weiter. Bei der lokalen Konfiguration des Redaktionssystems müssen alle berechtigten Benutzer bzw. Rollen in das System eingetragen und die für diese Benutzer möglichen Content-Bereiche im System definiert werden. Diese Angaben sind der Projektdokumentation der jeweiligen Anwendung zu entnehmen. 왘 Content-Pool-System:
Das Content-Pool-System wird einerseits zur Pflege von strukturiertem Content innerhalb der Anwendung verwendet, andererseits wird ein Teil des Content-Pool-System zur Verteilung von Softwarepaketen verwendet. Diese Methodik erlaubt es, die zu installierende Zusatzsoftware auf ein Minimum zu beschränken. Nicht für jedes Websystem ist die ContentPool-Software notwendig, um Inhalte in der Webanwendung zu pflegen. Nicht erforderlich ist sie z.B., wenn es sich nur um einen kleinen, völlig statischen Webauftritt handelt oder wenn es sich um eine reine C/SAnwendung handelt, die keinerlei Bezug zu semi-dynamischen Informationen hat. Der Teil des Content-Pool-Systems, der für die Verteilung von notwendigen Updates verwendet wird, ist aber auf jeden Fall in der Template-Installation eines Webservers einer WebFarm-Lokation enthalten.
155
Sandini Bib 8 Richtlinien für die Implementierung
8.3
Webserver-Hardwaredefinition
In diesem Dokument soll beschrieben werden, welche Hardwareanforderungen für welche Art von Webanwendung als Minimum vorausgesetzt, werden, wie Webanwendungen auf Hardware verteilt oder vereinigt werden und wie diese Hardware dimensioniert wird. Als Beispiel wird mit Sun-Hardware gearbeitet. Eigene vs. Virtuelle Server Eine grundsätzliche Frage für die Hardwareinfrastruktur einer WebFarmLokation ist die Art des Serverbetriebs. Hier gibt es grundsätzlich zwei extreme Ansätze, die für den WebFarm-Standard gemischt wurden. 1. Jeder Anwendung einen eigenen Server Jede Webanwendung, und sei sie auch noch so klein, bekommt ihren eigenen Server. Dabei werden die Vorteile der Hardwareskalierbarkeit nur bei großen Anwendungen genutzt; allerdings gewährleistet dieses Paradigma auch, dass auf keinen Fall das Nichtfunktionieren einer Anwendung auf Hardware- oder Serverebene eine andere Anwendung beeinflussen kann, was für die Betriebsbereitschaft und Verfügbarkeit der Anwendungen für den Benutzer erhebliche Vorteile liefert. 2. Es existieren ein oder mehrere zentrale Server, auf denen möglichst alle Anwendungen liegen. Dieser Ansatz ist der typische Zentralrechneransatz. Es wird eine Hardwareplattform geschaffen, die so leistungsfähig ist, dass alle Anwendungen gleichzeitig auf dieser betrieben werden. Es wird in diesem Falle die maximale Skalierbarkeit der Hardware ausgenutzt, und die Wartung der Systemkomponenten beschränkt sich auf eine Maschine. Dabei ist allerdings zu beachten, dass das Management einer geclusterten oder sehr großen Maschine komplexer ist als das Management einer Einzelmaschine. Der Nachteil dieser Vorgehensweise ist hierbei primär, dass eine Anwendung, die das System beeinträchtigt oder sogar dessen Betrieb stört, alle anderen Anwendungen, die ebenfalls von diesem System abhängen, auch mit beeinflusst, was für die allgemeine Verfügbarkeit von Diensten aufgrund der exponentiellen Abhängigkeitsketten nicht ohne Bedeutung ist. Der WebFarm-Standard mischt diese Paradigmen mit einem besonderen Fokus auf der Betriebssicherheit der einzelnen Anwendungen. Aus diesem Grund wird eine eigene Hardware für eine Anwendung eindeutig bevorzugt. Dies gilt natürlich nicht für kleine Anwendungen ohne Programme, sondern lediglich relativ statischem Informationsinhalt, oder für Anwendungen, die quasi keine Benutzer aufweisen. Solche Anwendungen können z.B. reine Marketingseiten, temporäre Informationen, kleine Rechner usw. sein. Für
156
Sandini Bib Webserver-Hardwaredefinition
diese Webseiten werden keine gesonderten Hardwareanforderungen getroffen, sondern lediglich ein virtueller Server auf einer bestehenden Hardware installiert.
Abbildung 8.3: Webserver-Aufbau
Ansonsten spricht außer massivem Platzmangel oder Problemen mit der Klimatisierung von Rechnerräumen nicht viel dafür, eine zentrale Host-Lösung zu etablieren, denn: 왘 Da bei der Dimensionierung von Serverhardware Peak-Zeiten nicht als
Ausreißer herausgefiltert werden dürfen, sondern durchaus eine wichtige Rolle (durch Mehrfachbewertung) spielen, sind die Leerlaufzeiten, die hier einkalkuliert werden, bei einer zentralen Serverlösung additiv. Es wird also durchschnittlich mehr Rechenleistung brachliegen. 왘 Einzelne Skalierungsschritte bei großen Hardwarekonstruktionen bieten
zumeist keinen Preisvorteil gegenüber der Anschaffung einzelner kleinerer Komponenten, sondern sind eher teurer. 왘 Der Betrieb in der WebFarm-Umgebung ist hoch automatisiert, und
darum entsteht kein Ungleichgewicht, wenn mehrere Systeme systemseitig betreut werden müssen.
8.3.1
Hardwareplattform
Die Hardwarebasis entscheidet im Allgemeinen über die Gesamtperformance der Webanwendungen in einer WebFarm-Infrastruktur. Darum ist eine allgemeine Plattformentscheidung ein Grundsatz für den stabilen Betrieb und die zukunftsweisende Entwicklung im Web-Bereich. Da das Augenmerk der gesamten WebFarm-Konstruktion auf Betriebs- und Ausfallsicherheit liegt, wird bei der Plattformentscheidung auf Erfahrungswerte in diesem Umfang Wert gelegt. Der WebFarm-Standard empfiehlt
157
Sandini Bib 8 Richtlinien für die Implementierung
daher als generelle Plattform für Web Server und Infrastrukturkomponenten eine UNIX-Plattform. Diese Entscheidung liegt in den gesammelten Erfahrungen mit Betriebssicherheit (Anzahl gefundener Sicherheitslücken und notwendiger Nachbesserungen), Stabilität und Performance begründet. Bei der Auswahl der spezifischen Plattform ist der Hausstandard zu berücksichtigen. Es ist allerdings offensichtlich, dass die Webtechnologie sehr schnelle Entwicklungszeiten hat und der Einsatz moderner Technologie durchaus maßgeblich am Erfolg einzelner Webanwendungen beteiligt ist. Es ist darum wichtig, eine Plattform für allgemeine Anwendungen zu wählen, die auch als Entwicklungsplattform für moderne Anwendungen gesehen und eingesetzt wird, und nicht nur ein Portierungsziel ist. Für spezifische Aufgaben wie z.B. Datenbanken ist auch der Einsatz einer anderen Plattform denkbar. Die Homogenität kann dann aufgelöst werden, wenn sich ein wesentlich besseres Preis-Leistungsverhältnis bietet oder andere Optionen wie Skalierbarkeit für eine Anschaffung in die Heterogenität aussprechen. Der wichtigste Grundsatz, wenn innerhalb einer WebFarmInfrastruktur ein heterogenes Netz betrieben wird, ist, dass die Betriebskosten für die einzelnen Komponenten gleicher Art, seien sie von welcher Plattform auch immer, sich nicht unterscheiden. Sobald die Betriebskosten einer Plattform andere übersteigen, ist dies in die Effizienzrechnung vor der Anschaffung einzubeziehen. Auf der anderen Seite sollten Preis- und Entwicklunsvorteile, die durch das Schaffen einer heterogenen Umgebung ausgearbeitet werden können, nicht zu Gunsten einer IT-technisch »schönen« oder »eleganten« homogenen Lösung nicht wahrgenommen werden.
8.3.2
Hardwaredimensionierung
Die eigentliche Dimensionierung der Hardware ist in den meisten Fällen nicht besonders komplex. Für normale Webanwendungen stehen folgende Systembereiche zur Dimensionierung an: 왘 Festplatten/Datenspeicher:
hierbei ist nicht nur der Gesamtplatz, sondern im Fall von stark belasteten Servern oder Clustern auch die Verteilung auf verschiedene Controller zu beachten. 왘 Arbeitsspeicher
der Arbeitsspeicher ist ein wesentlicher Faktor, da es im Webbetrieb nach dem WebFarm-Konzept, in dem On-the-Fly-Generierungen möglichst vermieden werden, um das effiziente Ausführen von Programmen und das Durchstreichen von Seiten geht.
158
Sandini Bib Webserver-Hardwaredefinition
왘 Rechenleistung/CPU
ist der an sich unkritischste Teil der Dimensionierung für Webanwendungen, da lediglich aufwändige Anwendungen sehr viel CPU verbrauchen, IO ist eher der Engpass. Festplatten/Massenspeicher Grundsätzlich ist die Basisinstallation des Systems und die Installation der Webumgebung mit allen Komponenten, die in der WebFarm-Infrastruktur benötigt werden, außer dem Betriebssystem an sich voneinander tatsächlich physikalisch zu trennen, um eine Massenproduktion von reinen Basissystemen zu ermöglichen. Das bedeutet also, ein System muss auf jeden Fall zwei Festplatten haben. Dabei muss die erste Systemplatte groß genug sein, um das System mit allen Komponenten und den temporären Speicherplatz zu halten. Gewöhnlich sind hier 4 GB ausreichend, allerdings ist heute mit mindestens 9 GB- Festplatten zu rechnen, da kleinere Platten nur noch auf Anfrage erhältlich sind. Die zweite Platte sollte dann genügend Platz für die Software und die Daten bieten, die für eine Webanwendung benötigt werden. Generell sollte diese Festplatte nicht unter 9 GB dimensioniert werden. Es muss immer damit gerechnet werden, dass an einem Tag für eine viel verwendete Webanwendung ca. 1 GB Logdateien anfallen können, da die statistischen Auswertungen die maximale Anzahl an Loginformationen benötigen. Zusätzlich benötigt die Software ca. 1 GB. Deren Daten können bis zu 500% des aktuellen Contents einer Webanwendung betragen. Die Webanwendung selbst benötigt wiederum zwischen 100 MB und 2 GB, je nach Informationsvolumen. Nur sehr wenige Anwendungen kommen über ein Informationsangebot von 2 GB hinaus. Es ist bei datengenerierenden Anwendungen oder Anwendungen, die eine große eigene Datenbasis oder entsprechend große Programme haben, davon auszugehen, dass für diese allein ca. 4 GB zu rechnen sind. Aus diesen Überlegungen kann man sagen, dass mit der vorgeschlagenen zweiten 9 GB-Platte ca. 80% aller Webanwendungen abgedeckt werden können. Bei sehr stark frequentierten Anwendungen ist die IO zwischen Web Server und Festplatte entscheidend, es sollte daher mindestens ein System von zwei Festplatten angeschafft werden, auch wenn diese nicht komplett ausgelastet werden, das auch über zwei Controller auf diese Platten zugreift, weil sich auf diese Weise zumindest eine theoretische Lesegeschwindigkeit von 88 MB/s verwirklichen lässt.
159
Sandini Bib 8 Richtlinien für die Implementierung
Arbeitsspeicher Die Dimensionierung des Arbeitsspeichers hängt sehr stark von der Anwendung ab. So ist davon auszugehen, dass das System alleine mindestens 64 MB Speicherbedarf hat. Für jeden simultanen Zugriff auf das System sollte mit einem Speicherbedarf von 2 bis 8 MB ausgegangen werden. Das bedeutet, dass bei 64 gleichzeitigen Zugriffen und einem Grundbedarf von 128 MB mindestens 256 MB Speicher nur für den HTTP Server zur Verfügung stehen muss. Üblich sind heute auch Konfigurationen von 1GB oder mehr, weil von einer großen Benutzeranzahl ausgegangen wird. Kein Server sollte mit weniger als 128 MB ausgestattet werden. Werden nicht nur HTTP Server, sondern auch CGIs, Application Server, usw. betrieben, ist die Rechnung zu erweitern. Bei CGIs ergibt sich der durchschnittliche Speicherbedarf aus durchschnittlicher Programmgröße mal Anzahl simultaner Benutzer. Bei Application Servern ist von 100 MB für die Basisinstanz und 2 MB pro Benutzer zu rechnen. Rechenleistung CPU Es sollten auf jeden Fall schnelle Prozessoren verwendet werden, weil diese die allgemeine Performance beim Starten und Ausführen von Prozessen beschleunigen. Es ist bei einer Webanwendung davon auszugehen, dass sehr viele Prozesse oder Threads bedient werden müssen, da für jeden neuen Benutzer und jede neue Seite ein Thread oder Prozess benötigt wird, der neu entsteht oder zumindest neu initialisiert werden muss. Der Grad der Parallelisierbarkeit ergibt sich aus der Anzahl gleichzeitiger Benutzer und deren gleichzeitigem Zugriff auf die gleiche Systemressource und deren Parallelisierbarkeit. Zum Beispiel ist der Zugriff auf eine Festplatte bereits mit 45 MB/s theoretischer Obergrenze beschränkt, der Zugriff auf eine Datenbank durch die Performance der Datenbankmaschine und der Netzanbindung. Steht z.B. nur eine Netzwerkkarte zur Verfügung, kann man bei einer ausgelasteten Anwendung von 75% ausgehendem Traffic und 25% eingehenden Verbindungen durch Datenbankabfragen rechnen. Für Standardanwendungen ist auf jeden Fall eine CPU ausreichend. Werden viele Programme ausgeführt, daher viele Funktionen gleichzeitig verwendet (Application Server) oder bestehen sehr viele Verbindungen nach außen, sollte auf eine Zwei-Prozessor-Maschine vergrößert werden. Mehr als 4 Prozessoren werden auch für sehr große Anwendungen nicht in einer Maschine verwendet. Es bietet sich an, wenn mehr Rechenleistung benötigt wird, eher einen Cluster einzuführen.
160
Sandini Bib Webserver-Hardwaredefinition
Andere Komponenten Auch andere Komponenten bieten eventuell Potential zur Optimierung bei wirklich ausgelasteten Systemen. Es kann vorkommen, dass ein System von der Netzwerklast her keine weiteren Zugriffe erlaubt, weil sehr viele Daten zwischen Benutzer und System und zwischen System und externen Datenquellen transportiert werden. In diesem Fall wird eine zweite Netzwerkkarte, die lediglich eine Verbindung zu den externen Datenquellen besitzt, in das System eingebaut werden. Zu beachten ist hierbei, dass das Routing deaktiviert werden muss, so dass nur das System selbst, nicht aber ein Benutzer über das System auf die Datenquellen zugreifen kann. Solche Maßnahmen werden erst erforderlich, wenn eine Anwendung mit Benutzerzahlen, die in die Millionen gehen und auf Datenbanken zugreifen, geschaffen werden soll. Es sollte auf keinen Fall eine Anwendung überdimensioniert werden.
8.3.3
Cluster-Lösungen
Cluster-Lösungen werden heute eher eingesetzt, als die Hardware maximal zu skalieren. Cluster-Lösungen bieten für große Anwendungen den entscheidenden Vorteil, dass sie sowohl Ausfallsicherheit als auch nahezu beliebige Skalierbarkeit erzeugen.
Abbildung 8.4: Cluster-Lösung
161
Sandini Bib 8 Richtlinien für die Implementierung
Das WebFarm-Konzept schreibt ohnehin die Verfügbarkeit von einem Server inklusive einer baugleichen Backup-Maschine vor. Aus diesen Systemen kann ohne Änderungen am Konzept ein zweiter Maschinen-Cluster erzeugt werden, der dann allerdings nicht spezifisch gemanagt wird. Für große Anwendungen können Cluster mit 4, 8, 16 oder 32 Maschinen erzeugt werden. Mehr als 32 Maschinen können nur noch in einer Cluster-Umgebung gemanagt und gleichzeitig betreut werden (absolut synchrone Datenbestände). Alles bis 32 Maschinen kann durch die normalen Redaktions- und Verteilungsmechanismen des WebFarm-Konzepts verwaltet werden. Es ist offensichtlich, dass Anwendungen in einem Cluster backupfähig sein müssen, das bedeutet sich nicht auf den eigenen Maschinennamen verlassen, redirected werden können usw. Diese Anforderungen bestehen seitens des WebFarm-Standards aber sowieso an Entwicklungen, da nur auf diese Weise eine Betriebssicherheit im gewünschten Umfang erreicht werden kann.
162
Sandini Bib
9
Application-Server
Application-Server und Application-Serving sind Schlagwörter der weborientierten IT geworden. An vielen Stellen wird zwischen allgemeinen WebApplication-Servern und anwendungsspezifischen Application-Servern unterschieden. Dabei bieten die allgemeinen Web-Application-Server eine Integration für die Programmierung beliebiger Webanwendungen, und die für Applikation spezifischen Server beziehen ihre Funktionalität auf eine bestimmte Anwendung oder einen bestimmten Dienst, der über das Plug-in des Application-Servers webfähig gemacht wird (z.B. Application-Server, die in Datenbanken direkt integriert sind, oder Application-Server, die in Middleware-Produkte integriert sind). Die allgemeine Webentwicklung bietet eine große Anzahl an Redundanz. Das bedeutet, es wurden oder werden immer noch und immer wieder die gleichen Programmieraufgaben gelöst, wobei die beiden häufigsten im Zusammenhang mit Webanwendungen sicherlich das Halten eines Zustands (State) sowie der Zugriff auf Datenbanken sind. Dieses Dokument beschreibt die Auswahl der Application-Server für den WebFarm-Standard, die daraus resultierenden Vor- und Nachteile sowie die Einsatzgebiete und Nicht-Einsatzgebiete und die Schulungserfordernisse der empfohlenen Application-Server. Dieses Dokument fokussiert sich auf die allgemeinen Web-Application-Server, da diese wesentlich mehr Relevanz bei der Entwicklung oder Standardisierung von Webanwendungen haben als spezifische und da diese direkt eine effizientere Entwicklung ermöglichen.
163
Sandini Bib 9 Application-Server
9.1
Funktionen eines Application-Servers
Browser Enter URL DNS Lookup
Server
Connect
Accept
Send Requested URL
Interpret URL CGI?
Interpret CHAR Stream
Read Transmission
Transmit Output
ReadFile
Execute CGI
Display PAGE Abbildung 9.1: Übersicht Application-Server
Das grundsätzliche Problem bei Webanwendungen ist das Halten des Zustands. Dies hört sich übermäßig einfach an, verursacht aber den größten Entwicklungs- und Performance-Overhead, den Webanwendungen überhaupt enthalten. Das Problem liegt darin, dass das Hypertext-Transfer-Protocol (HTTP) eine Verbindung aufbaut, einmal Daten vom Client an den Server überträgt, dem Server eine gewisse Bearbeitungszeit einräumt und, falls vorhanden, die entstandenen Ergebnisse an den Client zurückliefert. Nach einem solchen Zyklus sind Server und Client sich gänzlich unbekannt. Das bedeutet aber, dass es Sache der Applikation selbst ist, den Zustand eines bestimmten Clients zu speichern, diesen Client wieder zu erkennen und dann entsprechend im Programmablauf fortzufahren. Dabei gibt es mehrere Ansätze zur Speicherung von Zuständen. Es kann dem Client über die URL oder eine andere Methode alle notwendigen Informationen für die Wiederherstellung des Zustands, in dem sich die Anwendung für diesen Client befand, mitgegeben werden. Ist eine Client-Identifikation möglich, so kann der gesamte Zustand, der Programmkontext, auf dem Server gespeichert sein und wird für den Client, wenn dieser sich identifiziert, wieder hergestellt.
164
Sandini Bib Funktionen eines Application-Servers
Start
1
End
Abbildung 9.2: Ablaufdiagramm
Webserver hatten schon fast seit ihrer Entstehung 1992 die Möglichkeit, externe Programme auszuführen, die über das so genannte Common Gateway Interface (CGI) aufgerufen und mit Informationen versorgt wurden. Diese CGIs mussten und müssen heute auch noch den Zustand ihrer Anwendung, die sich gewöhnlich aus dem Zusammenspiel vieler CGIs zusammensetzt, übermittelt bekommen, um für den Client, der sie aufruft, die richtige Funktionalität zu erbringen. Ein einzelner Aufruf hat immer nur die, wie oben im Zyklus des HTTP-Protokolls erläutert, Reihenfolge einer Eingabe und einer darauf folgenden Ausgabe. Das führte dazu, dass sehr viele Programmierer die gleichen Funktionalitäten entwickelten, um dieses Problem zu lösen. Es wurde so genannte State-Engines als Bibliotheken angeboten, die es CGIs ermöglichen, untereinander den Zustand der Applikation auszutauschen und so überhaupt erst eine Applikation zu bilden. Viele weitere Funktionen, die immer wieder benötigt wurden, wie z.B. der Zugriff auf Daten-
165
Sandini Bib 9 Application-Server
banken, die Schleifenfunktion für Ausgaben usw., wurden immer wieder programmiert und mussten für jede Anwendung angepasst werden. Auf diese Weise wurden sehr viele Ressourcen aus der Entwicklung gebunden, die aber nichts Neues schufen, sondern nur grundlegende Probleme wieder und wieder beseitigten, um danach etwas Neues schaffen zu können. Außerdem entsteht eine klare Spaltung zwischen Entwicklung und Design, denn HTML ist leichter zu erlernen als das Programmieren, was bei vielen Webangeboten dazu führte, dass die so hoch gepriesene Interaktivität Aufgrund von Ressourcenmangel zugunsten sehr aufwändiger Designansätze verloren ging. Es ist offensichtlich, dass die Entwicklung und das Schreiben von Computerprogrammen mehr Kenntnisse der IT und der Maschine an sich erfordert, als z.B. notwendig sind, um ein maschinengerechtes Design zu entwerfen. Browser Enter URL DNS Lookup
Server
Connect
Accept
Send Requested URL
Interpret URL CGI? ReadFile
ReadSession
Interpret CHAR Stream
Read Output
Display/ Execute Page
Transmit Output
Execute CGI
ColdFusion Engin KeepSession DB Access Lib Access
Abbildung 9.3: Application-Server
166
Sandini Bib Typisierung allgemeiner Application-Server
Application-Server waren die Antwort auf dieses Dilemma für große Anwendungen. Zwischen die reine Repräsentationssicht und die Programmausführung wurde die Schicht des Application-Servers eingebunden. Hierbei interpretiert der Application-Server-Code, der von einem Client angefordert wurde, bevor er dem Client wieder zurückgegeben wird, und stellt dabei z.B. den Status der Anwendung wieder her, erfüllt Basisfunktionen wie Schleifen und Entscheidungen oder stellt sogar erweiterte Funktionen wie z.B. den transparenten Zugriff auf Datenbanken bereit. Die Befehle für diese zusätzliche Schicht werden in die eigentlich vom Client angeforderte Information, also in die Webseite hineinkodiert und erst auf dem Weg durch den Application-Server für den Client wieder zu für ihn verständlichen Seiten zusammengesetzt.
9.2
Typisierung allgemeiner Application-Server
Für die Bereitstellung der oben beschriebenen Funktionen gibt es grundsätzlich zwei Ansätze, die aus den unterschiedlichen Richtungen der Webentwicklung entstanden sind. Zum einen sind die TAG-basierte Ansätze, bei denen Programmfunktionalität in HTML-Erweiterungen, also eigenen Tags, untergebracht ist und in das ganz normale HTML-, JavaScript und dergleichen eingebunden wird. Dieser Ansatz wurde von Webdesignern entwickelt, die ihre aufwändigen Designs mit Programmfunktionalität versehen wollten. Zum anderen sind programmierorientierte Application-Server, bei denen das Design im Programmcode der einzelnen Seiten abgelegt ist, von den Programmierern entwickelt worden, die nicht auf ein gutes Design verzichten wollten. Als bekanntestes Beispiel für einen Application-Server, der programmiert wird, ist PHP zu nennen. Als bekanntestes Beispiel für einen TAG-basierenden Application-Server ist Cold-Fusion von Allaire zu nennen.
9.2.1
Vor- und Nachteile von TAG-basierten Systemen
Der eindeutige Vorteil eines TAG-basierten Systems ist die Verwendbarkeit in jeder HTML-Umgebung. Fast jeder HTML-Entwickler kann sehr schnell lernen, zumindest die einfachen Funktionen des Application-Servers zu nutzen und somit Dinge in seine Entwicklungen einfließen lassen, die ohne einen Application-Server nicht möglich gewesen wären. Die Integration der Programmierung in das Layout selbst hat zur Folge, dass die klassische Trennung zwischen Design und Algorithmik, wie sie in der Informatik schon seit längerem als Paradigma gilt, gebrochen wird. Es ist
167
Sandini Bib 9 Application-Server
allerdings zu berücksichtigen, dass TAG-basierte Systeme meistens von HTML- oder Webdesignern eingesetzt werden, die sich nicht zu reinen Programmierern entwickeln wollen, deren Ziel darin liegt, elegante algorithmische Lösungen zu gestalten, es handelt sich vielmehr um Kreative, die auch die Möglichkeiten der Programmierung nutzen wollen. Die direkte Einbindung in die Seiten, in das vertraute TAG-System und die Einfachheit der Strukturen, die durch TAGs ohnehin gegeben ist, machen die TAG-basierten Systeme einfacher zu erlernen. Dies ist aber nur der Fall, wenn bereits Kenntnisse im HTML- und Webdesign vorhanden sind. Die Zeit, die also benötigt wird, einen Webdesigner zu einem Webentwickler zu machen, ist durch diesen Ansatz stark verringert und schafft zusätzlich auch noch die Integration der rein kreativen Elemente, auf die ein solcher Personenkreis in der Arbeit sehr viel Wert legt. Der Nachteil von TAG-basierten Systemen ist eindeutig die einfache Programmstruktur, die abgebildet wird. Durch das TAG-System werden komplexe Programmieransätze, wie sie in einigen Algorithmen verwendet werden, nicht unterstützt. Außerdem ist der Code einer Anwendung über alle zur Anwendung gehörenden Seiten verteilt, da die Programmierung nicht einem programmdesignerischem Modulkonzept, sondern dem dialoggesteuerten Seitenkonzept folgen muss. TAG-basierte Systeme erfordern aus diesem Grund eine bessere Dokumentation, als diese für gewöhnliche Programme bereits erforderlich ist, um später keinen erhöhten Wartungsaufwand zu generieren. Ein weiterer, wenn auch geringerer Nachteil, der sich eventuell in den nächsten Generationen von Hybridsystemen weiter verringern wird, ist die rein interpretative Natur von TAG-basierten Systemen. Es muss bei jedem Seitenaufruf die Seite durch den Application-Server-Parser geschickt werden, der diese dann bearbeitet und wiederum reines HTML oder XML zurückliefert, was dann an den Client übermittelt wird. Durch die Aufteilung der Anwendung auf ihre Dialogseiten wird nicht nur das Debugging und bei nicht ausreichender Dokumentation die Weiterentwicklung erschwert, sondern auch die Kompilierung zu direkt ausführbarem Code nicht unterstützt. Es ist offensichtlich, dass die Vorteile dieses Ansatzes bei weitem überwiegen, weshalb Application-Server auf TAG-Basis Bestandteil des WebFarm-Standards sind.
9.2.2
Vor- und Nachteile von programmorientierten Systemen
Der Vorteil der progammorientierten Systeme ist eindeutig die Anlehnung an herkömmliche Programmiersprachen wie z.B. C oder C++. Dies ermöglicht es bei Ausnutzung der Funktionalität des Application-Servers, die hier eher wie
168
Sandini Bib Typisierung allgemeiner Application-Server
eine Bibliothek verwendet wird, auch komplexe Programmlogik in Webseiten abzulegen. Die Modularisierung der Seiten muss hierbei nicht unbedingt dem Dialogdesign der Anwendung folgen, da eine Seite durchaus mehrere unterschiedliche Dialoge erstellen kann. Bei einigen programmorientierten Systemen ist auch das Erzeugen eines Vorkompilats der erstellten Seiten zur Performancesteigerung möglich. Der Nachteil der programmierorientierten Systeme ist der hohe Kenntnisstand, den die Programmierung auf Sprachebene erfordert. Die auch informatisch elegante Realisierung von Problemen entspricht oft nicht der Denkweise von kreativen Webdesignern und hat dementsprechend einen hohen Schulungsaufwand, bzw. entsprechende Entwicklerstellen sind schwer zu besetzen.
9.2.3
Fazit
Grundsätzlich können beide Arten von Application-Servern im WebFarmStandard auch gleichzeitig eingesetzt werden. Es ist hierbei aber auf jeden Fall auf die richtige Zusammenstellung von Entwicklerteams zu achten. Im Falle eines TAG-basierten Systems benötigt man entsprechend geschulte Webdesigner, im Falle von programmierorientierten Systemen sind meistens sowohl Programmierer als auch Designer erforderlich. Es ist zu bedenken, dass die Wartung von Webanwendungen gerade aufgrund der schnellen Veränderungszyklen in diesen Anwendungen eine entscheidende Rolle für den dauerhaften Erfolg dieser Anwendungen spielt. Beim Einsatz TAG-basierter Systeme sind darum die Dokumentation und die klare Projekttierung, die in einem stringenten Anwendungsdesign abgebildet wird, wichtige Faktoren. Der WebFarm-Standard ist hierbei mit den Anforderungen an die Integration in die Infrastruktur einer WebFarm-Lokation eine Hilfe für die Entwickler. Die entsprechenden Style-Guides geben auch Auskunft darüber, wie zu wartende Seiten auch mit Application-Server-Einsatz geschaffen werden können. Es ist aber wie bei allen Entwicklungsprojekten essentiell, dass das Entwicklungsteam einer Anwendung, die in einer WebFarm-Lokation betrieben werden soll und sich in die Infrastruktur integrieren soll, ein gutes Design mit darauffolgender Umsetzung und einer entsprechenden Testphase vor der Betriebsübergabe durchgeführt hat. Es ist aber auch unbedingt erforderlich, dem Entwicklungsteam den Gesamtzusammenhang ihrer Anwendung in der WebFarm-Lokation vor der Entwicklung zu verdeutlichen, um es den Entwicklern zu ermöglichen, nicht nur den Standard der WebFarm-an sich, sondern auch den spezifischen Kontext einer WebFarm-Lokation in das Design miteinzubeziehen.
169
Sandini Bib 9 Application-Server
9.3
Arbeitskräfte und Ressourcen
Das Thema der Ressourcen, die für die Entwicklung einer Webanwendung zur Verfügung stehen und eine entsprechende Qualifikation sowohl auf fachlicher als auch auf technischer Seite besitzen, ist tatsächlich kritisch. Wenn man dem Technologieboom folgt und hierbei sieht, dass trotz eventueller Konsolidierung der Firmenstrukturen an den neuen Märkten die Investitionssummen in Zukunftstechnologien eher noch steigen werden, ist auch nicht mit einer baldigen Besserung der Ressourcenlage zu rechnen. Es ist daher entscheidend, dass die Entwickler in einer Umgebung arbeiten, die ihrem Kenntnisstand und ihren Anforderungen angemessen ist. Dieser Faktor, der bislang in DV-Entwicklungen höchstens als Einstellungskriterium, aber lange nicht als Kriterium für das Systemdesign gesehen wurde, ist heute kritisch geworden, da durch mangelnde Ressourcen durchaus wesentliche Verzögerungen oder gar Nichtrealisierungen entstehen können. Es sollte also bei der Wahl des Application-Servers für eine bestimmte Webentwicklung auf jeden Fall darauf geachtet werden, wie sich das bestimmte Projektteam zusammensetzt und ob eher eine Gewichtung der Projektmitglieder in die Programmier- oder in die Designecke der oben beschriebenen Unterteilung fallen. Dies kann ein wichtiger Hinweis für die Auswahl des Application-Servers sein.
9.4
Entwicklungsumgebungen
Die Entwicklungsumgebung entscheidet über die Teamfähigkeit einer Entwicklung. Es ist wichtig, dass die Entwickler so entwickeln können, wie sie es für sich persönlich am besten halten. Aus diesem Grund soll nicht von vornherein eine bestimmte Umgebung zur Pflicht gemacht werden. Das Backend der Umgebung für Entwicklungen ist wesentlich wichtiger, denn hier werden die einzelnen Teile zusammengefügt. Es ist wichtig, dass für die Übergabe von entwickelten Seiten und Anwendungsteilen das Content-Management-System (in diesem Fall das Redaktionssystem) verwendet wird. Es sollte auch auf eine Versionierung während der Entwicklung geachtet werden, was für ein IT-Projekt an sich selbstverständlich ist, aber in Webprojekten oft vernachlässigt wird. Die optimale Entwicklungsumgebung vereint die Teile der verwendeten Sprachen, also sowohl HTML als auch die Sprache des Application-Servers, sei diese nur TAG-basiert oder programmierorientiert. Das bedeutet, dass sowohl Konstruktion, die Syntax-Checking als auch einfache Funktionen und, besonders bei der Entwicklung von großen Anwendungen wichtig, eine ausgeklügelte Bibliotheksverwaltung bei der Umgebung berücksichtigt sind.
170
Sandini Bib Entwicklungsstil
Abbildung 9.4: Entwicklungsumgebung Allaire ColdFusion
Viele Standardumgebungen unterstützen all diese Punkte. Oft können auch Entwicklungsumgebungen, die in den Application-Server integriert sind, verwendet werden. Aber auch im letzteren Fall ist auf eine Möglichkeit des indirekten Exports von Seiten und deren Übergabe über das ContentManagement-System und die damit verbundenen essenziellen Prozesse des WebFarm-Standards zu achten.
9.5
Entwicklungsstil
Der Stil von Entwicklungen im Webbereich unterscheidet sich leider sehr oft von nach herkömmlicher Weise propagierten Programmierstilen. Und dies liegt nur zum Teil, wie oft behauptet wird, an der Menge an generiertem und nicht manuell erzeugtem Code. Es ist auf jeden Fall darauf zu achten, dass in Grenzen, die dem Entwicklungsteam zuzumuten sind, ein gängiger Entwicklungszyklus einzuhalten ist.
171
Sandini Bib 9 Application-Server
Dies bedeutet insbesondere bei der Entwicklung der Programmlogik und der Verbindungen nach außen (z.B. Datenbanken, externe Programme usw.) eine Konzeption der Entwicklung, deren anschließende Kodierung und erst darauf folgend ein Test des Geschaffenen. Dies wird hier in der Beschreibung der Implementierungsspezifika des WebFarm-Standards explizit erwähnt, da viele Webdesigner ein absolut 100%iges Trial- und Error-Verfahren anwenden, was sowohl die Entwicklungszeit mehr als verdoppelt als auch die Umgebung, wie z.B. Datenbanken, der Entwicklung über die Maßen hinaus belastet. Es ist bei der Zusammenstellung eines professionellen Teams auf jeden Fall darauf zu achten, dass diese einfachen Maßregeln der Programmierung eingehalten werden. Bei der Entwicklung des WebFarm-Standards ist oft eingeworfen worden, dass es sich bei HTML aber um ein lebendes System handele oder dass schließlich der Entwicklungszyklus so kurz sei. Es ist sicherlich festzuhalten, dass jegliche Art von Programm, das einen derart kurzen Entwicklungszyklus hat, als lebendes System bezeichnet werden kann, weil auch die normalen Zyklen für die Weiterentwicklung und damit die Veränderung im System sich an die Zyklen des Initialprojekts angeglichen haben und so stark verkürzt sind. Dies entbindet aber nicht von einem korrekten Vorgehen, in dem die zu programmierende Logik auch im Bereich der Datenbankabfragen zuerst konzipiert, danach kodiert und getestet wird. Es ist auch bei Webentwicklungen billiger, einen korrekten Stil einzuhalten, und wirkt sich hierbei nicht auf die Zeit bis zum Online-Datum aus. Diese einfachen Feststellungen, die in der herkömmlichen Programmentwicklung bereits lange bekannt sind, treffen auch nach Erfahrungen in der Erstellung des WebFarm-Standards auf die Webentwicklung im besonderen Maße zu.
9.6
Schulung und Time-to-Market
Schulungen sind ein entscheidendes Thema, was auch schon im Bereich zu Ressourcen und Arbeitskräften angesprochen wurde. Es ist hier wichtig zu sehen, was die schnellsten Resultate bei gleich bleibend guter Qualität gibt, denn die Time-to-Market ist direkt nach der danach dargestellten Funktionalität noch mehr als bei anderen IT-Projekten das A und O. Aus diesem Grund ist zu bedenken, dass TAG-basierte Systeme von Application-Servern wesentlich leichter zu erlernen sind, als programmierorientierte Systeme, wenn eine HTML-Grundlage bereits gegeben ist.
172
Sandini Bib Einsatz eines Application-Servers
9.7
Einsatz eines Application-Servers
Glaubt man den Marketingprospekten der meisten Produkte, kann man sie für alles einsetzen, was überhaupt vorstellbar ist. Da dies aber sicherlich nicht sinnvoll ist (z.B. Formularlogik mit einem Middleware-App-Server zu erzeugen), werden im WebFarm-Standard auch klare Vorgaben für den Einsatz solcher Werkzeuge gemacht.
9.7.1
Einsatz von spezifischen Application-Servern
Spezifische Application-Server sind mit neuem Schulungsaufwand verbunden und sollten daher nur, wenn unbedingt notwendig, eingesetzt werden. Die Bedingung für den Einsatz ist, dass die Datenübergabe gemäß dem WebFarm-Standard für Content-Management geschehen kann. Ferner empfiehlt der WebFarm-Standard, spezifische Application-Server nur für fertige Frontend-Anwendungen einzusetzen und nicht für Backend-Services. Das bedeutet zum Beispiel, dass es sicherlich sinnvoll ist, den SAPApplication-Server einzusetzen, wenn man eine webgestützte SAP-Anwendung generieren will, dass man eine Webanwendung, die lediglich auch auf Daten aus einer Datenbank zugreift, nicht mit einem Datenbank ApplicationServer erstellen muss, weil die entsprechende Funktionalität unter Berücksichtigung von Entwicklungszeit und Standard auch mit einem allgemeinen Application-Server abgedeckt werden kann.
173
Sandini Bib 9 Application-Server
9.7.2
Standardfunktionen von Application-Servern und Webservern
Gerade bei spezifischen Application-Servern werden oft Funktionalitäten, wie z.B. eine Java-Engine zur Einbindung von Servlets, als besondere Funktionen dargestellt. Da diese Application-Server meist auch gleichzeitig als Webserver fungieren, ist dies sicherlich auch notwendig. Es ist allerdings zu beachten, dass es sich hierbei zumeist um Standardfunktionen handelt, die bei normalen Webserver-Produkten (ohne ApplicationServer-Funktionen) bereits integriert sind und eventuell sogar wesentlich weiter entwickelt erscheinen. Es bietet sich also nicht an, aus solch einem Server-Backend-Grund einen spezifischen Server einzusetzen, da in diesem Falle die Kombination eines Webservers mit einem Application-Server als Zusatzprodukt die bessere technologische Grundlage für Entwicklungen bietet.
9.7.3
Einsatz von allgemeinen Application-Servern
Für alle Anwendungen können theoretisch Application-Server, wie z.B. ColdFusion von Allaire, eingesetzt werden. Allerdings ist es offensichtlich nicht sinnvoll, für sehr kleine Anwendungen diese Werkzeuge, die dem Programmierer zwar einiges an Overhead ersparen, dies aber auch von technischer Seite in die Anwendung einbringen, zu verwenden. Web-Application-Server sollten auf jeden Fall immer dann eingesetzt werden, wenn größere Webanwendungen mit HTML/XML-Basis geschaffen werden, die große zusammenhängende Benutzersitzungen erfordern. Das bedeutet z.B. Beratungswerkzeuge, Shopping-Applikationen usw. Besonders empfiehlt sich der Einsatz bei diesen Anwendungen, wenn neben der Programmlogik auch Datenbankzugriffe und Zugriffe auf andere externe Ressourcen eingebunden werden müssen. Ein zusätzlicher Vorteil der meisten im WebFarm-Standard empfohlenen Application-Server ist deren Fähigkeit, Application-Cluster zu bilden und damit eine Lastverteilung zu unterstützen.
9.7.4
Application-Server vs. CGI
Eine Frage, die sich häufig stellt, ist, ob CGIs als Programme, die über das Common-Gateway-Interface mit Informationen vom Client versorgt werden, überhaupt noch entwickelt werden sollen. Die eindeutige Antwort ist ja. Es ist nicht sinnvoll, sehr kleine Anwendungen oder Anwendungen, die keine zusammenhängenden Benutzersitzungen erfordern, weil sie aus vielen
174
Sandini Bib Hardwarespezifikationen
kleinen unabhängig voneinander funktionierenden Werkzeugen bestehen, in einen Application-Server einzubetten, dessen erzeugter Overhead dann gar nicht verwendet wird. CGIs sind in solchen Fällen sicherlich sehr sinnvoll. Bei der Entwicklung von CGIs ist auf jeden Fall auf Sicherheitskonformität mit dem WebFarm-Standard anhand der Sicherheitsrichtlinien und der CGIEntwicklungsrichtlinien zu achten, da es über die Parameterübergabe oft zu Sicherheitsproblemen kommen kann. CGIs erfordern eine sehr saubere Entwicklung, und das nicht zuletzt aufgrund der sicherheitskritischen Funktionalität im System, sondern auch aufgrund der Performance, die verbraucht wird, wenn für jedes »Anklicken« eines CGIs ein Programm gestartet werden muss. Für den Praxiseinsatz in Anwendungen mit sehr vielen Benutzern empfiehlt es sich nicht, CGIs in interpretativen Sprachen wie z.B. PERL zu entwickeln. Diese eignen sich eher für Anwendungen, die im RAD (Rapid Application Development) entwickelt werden und später für eine kleine Benutzerzahl wenige Funktionen anbieten sollen. Auf jeden Fall sinnvoll ist der Einsatz von Script-Sprachen oder interpretativen Sprachen, wenn ein Prototyping für eine Webanwendung entsteht.
9.8
Hardwarespezifikationen
Aufgrund der Funktionalität eines Application-Servers ändern sich für den Betrieb einer Webanwendung, die auf einem Application-Server aufbaut, die Spezifikationen für die Hardware der Webanwendung, wie dies auch im entsprechenden Dokument zur Webserver-Hardware des WebFarm-Standards dokumentiert ist. Generell ist davon auszugehen, dass der Application-Server pro Instanz mindestens 100 MB RAM benötigt, ohne eine Funktionalität auszuführen. Für die meisten Anwendungen, die mit einem Application-Server realisiert werden, ist also mit einer Mindestspeicheranforderung von 512 MB RAM zu rechnen. Werden über die Programmlogik komplizierte Algorithmen zur Berechnung oder zur Bedingungsauflösung und Plausibilisierung durchgeführt, so ist auch die Rechenleistung der Maschine zu erhöhen (2. Prozessor), da die Performance durch den Overhead der Applikationsabteilung und der Interpretation durch den Application-Server relativ hoch ist. Grundsätzlich ist im WebFarm-Standard zu vermerken, dass Maschinen, die Application-Server-basierte Webanwendungen beherbergen sollen, eine wesentlich höhere Hardwareausstattung benötigen, als das für einfache Webserver, die Informationssysteme beheimaten, der Fall ist.
175
Sandini Bib 9 Application-Server
9.9
Clustering
Da Application-Server oft sehr hohe Anforderungen an die Hardware haben, wie oben beschrieben wurde, empfiehlt es sich hier wesentlich eher als bei reinen Informationssystemen, ein Server-Clustering anzustreben. Der WebFarm-Standard empfiehlt dieses Clustering bei einer rein ApplicationServer-basierten Anwendung bei mehr als 200.000 Hits auf Web-Application-Server-basierten Seiten. Dieses Clustering wird zumeist von der Application-Server-Software unterstützt und ist nicht ein Load-Sharing auf IP-Basis, sondern auf Anwendungsebene.
9.10 Cookies Ein wichtiges Thema im Zusammenhang mit Web-Application-Servern sind die so genannten und allseits unbeliebten Cookies. Es handelt sich hierbei um »Nachrichten« oder Informationen, die ein Webserver an einen Client übermittelt, wo sie abgespeichert werden, und dann vom Server oder beliebigen Servern wieder heruntergeladen werden können. Unbeliebt sind diese Cookies, weil sie es einem Server ermöglichen, das Benutzerverhalten und auch das Verhalten insgesamt eines Benutzers nachzuvollziehen, und sehr effizient Informationen über den Benutzer sammeln. Ebenfalls ist es möglich, Informationen auf dem Rechner des Benutzers abzulegen, die sicherlich nicht dort zwischengespeichert werden sollten. Vor allem störend ist, dass diese Informationen immer wieder gelesen werden können. Im Bereich der Web-Application-Server wird meistens ein Cookie verwendet, um eine Session-ID für die aktuelle Anwendersitzung durch die gesamte Sitzung hindurch im Server vom Client verfügbar zu haben. Generell sollte auf den Einsatz von Cookies bei der Entwicklung eigener Anwendungen verzichtet werden. Die Art und Weise, wie aber z.B. ein WebApplication-Server, der korrekt konfiguriert ist, Cookies verwendet, nämlich lediglich zum Session-Tracking, wobei alle Cookies eine Lebenszeit unter 24 Stunden oder noch kürzer haben, eine Platzbeschränkung der gespeicherten Daten enthalten und nur von der Anwendung, die sie erzeugt hat, innerhalb der Lebenszeit gelesen werden können, ist jedoch sinnvoll.
176
Sandini Bib
10
Database-Connectivity
Datenbankverbindungen sind für jede Anwendung, die eine Interaktion mit dem Benutzer bietet und nicht nur eine reine Spielwiese darstellt, von größter Wichtigkeit, da sie nur in Datenbanken-Produktivdaten gehalten werden können bzw. verfügbar sind und diese Daten, wenn man über den Simulationslevel hinausgeht, sicherlich erforderlich sind. Nachfolgend werden die Kontextparameter für die Verbindung zu Datenbanken innerhalb der WebFarm-Infrastruktur beleuchtet und die verschiedenen Themen des Verbindungsaufbaus, der Benutzerberechtigung und des Schutzes an sich betrachtet. Der WebFarm-Standard unterstützt dabei Verbindungen zu lokalen Datenbanken der einzelnen Anwendungen, zu Datenbanken, die sich innerhalb der lokalen oder einer entfernten WebFarm-Lokation befinden, aber auch zu Datenbanken, die sich in einer anderen internen Betriebsumgebung befinden, die den Bedürfnissen der entsprechend spezifischen Datenbank und deren Betriebsanforderungen entspricht.
10.1 Lokale und entfernte Datenbanken Lokale Datenbanken, also Datenbanken, die direkt auf der gleichen Maschine laufen wie die Webanwendung, sind nur für nichtproduktive Datenbestände zu verwenden. Das bedeutet z.B. als Zwischenspeicher für Simulationen, Berechnungen oder Boards. Diese Datenbanken dürfen auf keinen Fall sicherheitsrelevante Daten enthalten und auch keine Daten, die später in ein produktives System übernommen werden, erzeugen. Lokale Datenbanken müssen so konfiguriert sein, dass entweder ein Zugriff über einen PIPE-Mechanismus erfolgt oder, wenn dies nicht möglich ist, weil nur eine TCP-Verbindung unterstützt wird,dass lediglich der lokale Rechner und, wenn der Rechner sich in einer Cluster-Umgebung befindet, alle anderen Rechner im Cluster Zugriff auf die Datenbank haben.Für alle Daten, die in irgendeiner Weise einen schützenswerten Status haben, werden entfernte Datenbankserver benutzt. Der WebFarm-Standard verlangt, dass diese jeweils eine Stufe hinter der Lokation des Webservers in der Sicherheitskonstruktion der WebFarm-Lokation stehen.
177
Sandini Bib 10 Database-Connectivity
10.2 Connectivity auf Datenbankebene Es gibt viele Arten, wie eine Verbindung so zu einer Datenbank hergestellt werden kann, dass nachher Abfragen möglich werden. Grundsätzlich gibt es die Möglichkeit, über ein der Datenbank eigenes Protokoll bzw. einen datenbankeigenen oder so genannten nativen Treiber eine Verbindung zur Datenbank aufzubauen. Alternativ existieren Protokolle wie ODBC oder JDBC, mit denen standardisierte Verbindungen aufgebaut werden können. Es ist essenziell zu beachten, dass der WebFarm-Standard Verbindungen von einer Webanwendung (serverseitig) über eine native Schnittstelle vorschreibt, es sei denn, es werden einzeln vereinbarte Sonderbedingungen definiert. Dies ist mit den Performancevorgaben durch die Mechanismen in ODBC, JDBC vorgegeben, wo z.B. Joints von Tabellen im Treiber und nicht in der Datenbank durchgeführt werden. ODBC ist lediglich für den Zugriff auf Entwicklungssysteme und in der Anwendungsentwicklung ein Thema. Es ist auf jeden Fall zu beachten, dass manche ODBC und native Treiber unterschiedliche Behandlungen des lokalen Codes haben und damit z.B. Zahlen unterschiedlich interpretieren (z.B. 3.01 wird zu 3,01). Es sollte, wie bereits erwähnt, also immer ein Native-Treiber zur Datenbankanbindung von Anwendungen aus dem Application-Server oder CGIUmfeld verwendet werden. Ein dedizierter Webserver, der bereits Datenbankoperationen eingebaut hat, bietet zwar meistens sehr gute Datenbankfunktionalitäten, ist aber im Bereich des Webservings nicht ausgereift, was sich allein durch die Entwicklungsstrategien der jeweiligen Hersteller klar belegen lässt. Durch die verschiedenen Arten, Anwendungen im Web zu entwickeln, gibt es grundsätzlich zwei Modelle für den Zugriff auf Datenbanken. Einerseits bei Anwendungen, die über einen Application-Server oder CGIs erstellt wurden, greift der Client nur auf den Webserver und die Ergebnisse einer Datenbankabfrage, die vom Webserver Richtung Datenbank erfolgt, zu. Andererseits entsteht ein direkter Zugriff vom Client auf eine Datenbank der einen Datenbankverbindung, wenn z.B. JAVA-Applets eine Datenbankabfrage starten, die nebenbei direkte Kommunikation ermöglicht.
10.2.1
Datenbankzugriff vom Webserver aus
Bei diesem Zugriffsmechanismus werden die Datenbestände durch die Sicherheitsmechanismen in der Webanwendung geschützt. Das bedeutet, dass einerseits der Server so sicher konfiguriert sein und in ein dem WebFarm-Standard entsprechendes Sicherheitskonzept eingebunden sein muss, damit sich ein Angreifer nicht der Kontrolle des Servers bemächtigen kann, um dann auf die Datenquelle mit eigenen Befehlen zuzugreifen, und anderer-
178
Sandini Bib Kostenbetrachtung
seits, dass die Webanwendung selbst dafür Sorge trägt, dass nur entsprechend berechtigte Benutzer auf die für sie zur Verfügung stehenden Daten zugreifen können. Dieser Mechanismus hat den Vorteil, dass die Datenbankabfragen absolut überschaulich und innerhalb der eigenen Sicherheitsinfrastruktur einer WebFarm-Lokation oder ggf. auch Lokationsübergreifend kontrolliert werden können. Eine Verschlüsselung, also der Einsatz eines zu verschlüsselnden Datenbanktreibers, ist nur dann erforderlich, wenn die Datenbank nicht in der gleichen WebFarm-Lokation untergebracht ist oder die Route von der Webanwendung bis zur Datenquelle Netzsegmente passiert, die mit einem weniger sicheren Status versehen sind, als die Datenbank selbst.
10.2.2
Datenbankzugriff vom Client aus
Der Datenbankzugriff vom Client aus stellt hier wesentlich größere Anforderungen an die Sicherheit. Es wird ein Weg geschaffen, mit der quasi beliebige Clients (Einschränkungen sind nur anhand der Einschränkung des Benutzerkreises der Webanwendung möglich und auf Datenbankseite sehr schwer zu implementieren und zu warten) ermöglicht werden. Für Java-Anwendungen wird in diesem Fall z.B. ein JDBC-Treiber installiert. Dieser muss auf jeden Fall, wenn es sich um geschäftskritische oder imagekritische Daten handelt, eine Verschlüsselung bis hin zum Client ermöglichen. Anderenfalls kann eine solche Datenversorgung nicht bis zum Client nach dem WebFarm-Standard erfolgen. Bei Primärdaten ist zusätzlich noch eine verschlüsselungsbasierte Identifikation des Clients bzw. seines Benutzers erforderlich, so dass auf jeden Fall nicht nur anhand der heruntergeladenen Applets nachvollzogen werden kann, wer Datenbankzugriffe getätigt hat.
10.3 Kostenbetrachtung Einige wenige Datenbanken, die für Spezialanwendungen wie z.B. das performante Management von großen Zeitreihenarchiven verwendet werden, haben auch heute noch ein benutzerbasiertes Pricing. Dies hat zur Folge, dass, wenn diese Datenbank im Rahmen einer Webanwendung eingesetzt wird, normalerweise ein Pauschalbetrag für die angenommene Anzahl von möglichen Webbenutzern fällig wird. Diese Preisstruktur kann sehr unvorteilhaft sein; es sollte darum beim Design einer Anwendung, die nach dem WebFarmStandard entwickelt wird, auf jedem Fall eine Standarddatenbank für die entsprechenden Lizenzabkommen bestehen, oder eine Datenbank, die ein ser-
179
Sandini Bib 10 Database-Connectivity
verbasiertes Pricing verfolgt, eingesetzt werden. Ist dies nicht möglich, was definitiv bei der Projektierung begründet werden muss, so ist zu betrachten, ob sich die Benutzermenge bzw. der Benutzerkreis sehr stark einschränken lässt, so dass wieder Preisvereinbarungen über eine spezifische Nutzerzahl getroffen werden können.
10.4 Layer-Zugriffe Wird ein Zugriff auf mehrere Datenbanken gleichzeitig getätigt oder wird ein Cacheing-Mechanismus wegen mangelnder Performance oder Verfügbarkeit der eigentlichen Datenquelle benötigt, kann nach dem WebFarm-Standard eine Zwischenschicht zwischen der eigentlichen Webanwendung und der eigentlichen Datenbankverbindung hergestellt werden. An sich ist diese Zwischenschicht nichts anderes, als eine starke Erweiterung der ohnehin bereits existierenden Zwischenschicht des Datenbankzugriffs über Netzwerke. Eine einfache Erweiterung wird z.B. durch verschlüsselte Zugriffe implementiert, da diese meistens in den Treibern direkt integriert sind. Diese Zugriffsschichten sind vor allem bei der Notwendigkeit von Datenproxy-Servern, wie sie z.B. oft bei HBCI-Abfragen entstehen, sinnvoll. Das Design einer solchen Zugriffsschicht sollte auf eine verlässliche Middleware aufbauen, damit eine Integration in WebFarm-Cluster und allgemein in die WebFarm-Betriebsumgebung möglich wird. Eine solche Middleware unterstützt die durch eine Warteschlange abgesicherte garantierte Zustellung von Nachrichten auch über komplexere Routen zwischen dem Sender und dem Empfänger. Solche Software wird auch oft verwendet, um Data-Warehouses oder Data-Marts aufzubauen. Der Einsatz einer Zwischenschicht sollte im Hinblick auf Performance der Anwendung, auf Kosten und auf Programmkomplexität begutachtet werden. Durch die Erfahrungen, die mit dem WebFarm-Standard gesammelt wurden, hat sich gezeigt, dass eine solche Schicht nur bei sehr zentralen Anwendungen mit Zugriffsmethoden auf Primärdatenbestände des gesamten Unternehmens wirklich notwendig sind.
10.5 Datenbank-Zugriffsverwaltung Da sich Datenquellen genauso wie Webanwendungen weiterentwickeln, aber meist nicht explizit mit den Webanwendungen verbunden sind, sondern einen eigenen Entwicklungszyklus haben, da sie auch für andere Prozesse verwendet werden, ist es ein wichtiges Thema in der Entwicklung von Web-
180
Sandini Bib Datenbank-Zugriffsverwaltung
Farm-konformen Applikationen, die Verwaltung oder eigentlichen Zugriffe innerhalb einer Anwendung so zu zentralisieren, dass sie leicht angepasst werden können. Neben der Flexibilität, die dadurch bei Änderungen der Datenbanken und Datenbankstrukturen entsteht, ist dies auch für das Performance-Tuning, was bei allen Webdatenbank-Abfragen von Bedeutung ist, ein entscheidender Vorteil, da alle Abfragen zentralisiert vorliegen und diese gemeinsam betrachtet werden können. Dies bedeutet, dass SQL-Zugriffe innerhalb einer Anwendung nicht anhand der Programmodule oder Anwendungsseiten bei Application-Servern verteilt sein dürfen, sondern dass SQL-Abfragen generell zentralisiert oder zumindest gruppiert abgelegt werden müssen. In der CGI-Entwicklung schreibt der WebFarm-Standard darum vor, alle SQL-Statements in ein Modul oder eine Modulgruppe auszulagern, abhängig davon, wie viele es sind. Es bietet sich beim Zugriff auf sehr große Data-Warehouses ebenfalls an, die Feld- und Tabellennamen durch Makrobezeichner für die Anwendung zu ersetzen, die am Anfang einer solchen Modulgruppe definiert werden, damit die Abfragen bestehen bleiben können (Mengenproblem), wenn Änderungen an Feldern vorgenommen werden, die ja dann nur noch einmal in den Makros durchgeführt werden müssen. Bei Application-Servern sollten alle SQL-Abfragen in einem gesonderten Verzeichnis in jeweils einer Datei pro Abfrage abgelegt sein. Die entsprechenden Seiten, die dann Abfragen aufrufen, werden dann mit der entsprechenden Datei über ein INCLUDE-Statement verbunden.
181
Sandini Bib
Sandini Bib
11
Search
Suchmaschinen sind bereits Teil der Infrastrukturmaßnahmen für WebFarmLokationen. Diese Suchmaschinen decken aber nur eine informations- und anwendungsübergreifende Suche auf einem bestimmten Berechtigungsniveau ab. Es ist sicherlich wünschenswert, gerade in Anwendungen oder Sites mit vielen Informationen eine Suchfunktion zu integrieren, die nicht auf die globale Infrastruktur zugreift. Ziel ist es nun, hier die Möglichkeiten zur Integration von Suchfunktionen in eine einzelne Anwendung oder einen einzelnen Site für den WebFarm-Standard festzulegen.
11.1 Suche und Content-Management Durch die im WebFarm-Standard festgelegte Philosophie des ContentManagements werden alle semi-dynamischen Informationen mit Meta-Informationen versehen. Einige dieser Meta-Informationen sind Stichwörter. Werden diese nach einem Katalog oder frei von den Autoren gepflegt, kann das Content-Management-System eine Suche über diese Stichworte zur Verfügung stellen. Eine solche Suche ist sehr effizient, da es sich um direkte aggregierte Informationen handelt, über welche die Suche durchgeführt wird. Im Gegensatz zu Volltextsuchen liefern derartige Suchmechanismen auch gute Ergebnisse, wenn die Dokumentenmenge sehr groß ist.
Abbildung 11.1: Suchabfrage und Ergebnisdarstellung
Es ist auf jeden Fall empfehlenswert, auf allen Systemen, die über den Information-Pool mit Inhalten versorgt werden – also nicht reine Applikationen oder rein statische Seiten sind – in eine solche Suchfunktion einzubinden, wenn eine Suche benötigt wird, da hier am effizientesten für das gesamte System gesucht werden kann. Alle anderen Suchen benötigen eine zusätzliche Indizierung von Dokumenten und sind somit eine Mehrbelastung für das System.
183
Sandini Bib 11 Search
11.2 Volltext- und Metasuche auf lokalen Sites Eine Volltext- oder Metasuche auf einem lokalen Site hat genau die gleichen Vor- bzw. Nachteile wie bei der Anwendung im globalen Suchbereich. Es kann also hier auf die Betrachtungen des WebFarm-Standards auf dem Infrastrukturbereich zurückgegriffen werden. Hiernach sollen möglichst nicht reine Volltextansätze für große Sites und Anwendungen verwendet werden. Der WebFarm-Standard schlägt hier vor, eine Metasuche als ersten Schritt zu etablieren. Eine Volltextsuche wird, wie bereits bei der Definition des Infrastrukturstandards erwähnt, mit zunehmender Dokumentenzahl, also mit stark steigender Informationsmenge, unzuverlässig, da sehr viele Dokumente gefunden werden, die eventuell keine echten Treffer sind.
Abbildung 11.2: Volltext- und Metasuche
184
Sandini Bib Volltext- und Metasuche auf lokalen Sites
Im Gegensatz zum Ansatz der globalen Suchmaschinen ist es mit einer gegebenen Berechtigungsstruktur eventuell sinnvoll, auf der Ebene des Dateisystems Dokumente einzulesen. Hierbei werden alle Dokumente berücksichtigt. Es ist hierbei aber auch zu beachten, dass auf jeden Fall alle Dateien eingescannt werden; das kann im Fall von statischem Content, der von den Entwicklern nur mangelhaft gepflegt wird, bedeuten, dass alte Versionen eingelesen werden, was auf jeden Fall zu verhindern ist. Wenn alle Dateien eingescannt werden, muss auf die Berechtigungsstruktur geachtet werden, die dann auf jeden Fall in der Suchmaschine nachzubilden ist. Unterstützt die Suchmaschine keine Berechtigungsabbildung, was mit einigen Suchmaschinen, die aus anderen Gründen im WebFarm-Standard empfohlen werden, der Fall ist, müssen für unterschiedliche Rollen unterschiedliche Engines verwendet werden. Auf jeden Fall ist der Einsatz einer lokalen Suchmaschine sicherlich zu empfehlen. Es kann neben der Suchmaschine über das Content-Management-System, das die Informationen aus dem Information-Pool über Stichwort und Metasuchen zugänglich macht, auch eine Volltext- oder Metasuchmaschine verwendet werden, die dann den gesamten Text untersucht. Auf jeden Fall muss eine Meta- oder Volltext-Suchmaschine verwendet werden, wenn die Autoren nicht korrekt angewiesen wurden, Schlüsselworte zu den publizierten Dokumenten zu erfassen, oder wenn Schlüsselworte nicht in den Meta-Informationen des Content-Pool konfiguriert sind, also von den Designern des Informationsmodells gar nicht vorgesehen sind.
11.2.1
Konfigurationsvoraussetzungen
Wird eine Volltext- oder Metasuchmaschine auf einem Webserver eingesetzt, der nach dem WebFarm-Standard betrieben wird, sind einige Konfigurationsvoraussetzungen zu erfüllen. Es muss auf jeden Fall dafür gesorgt werden, dass die Administration der Suchmaschine, die bei allen im WebFarm-Standard empfohlenen Suchmaschinen, die auch als lokale Suchmaschinen eingesetzt werden können, webbasiert ist, nicht automatisch aktiv ist. Diese Administrationsoberfläche darf nur eingeschaltet werden, wenn die Suchmaschine tatsächlich konfiguriert wird. Ist dies nicht möglich, ist durch eine strenge Zugangsbeschränkung (auf IP- und Benutzerebene) dafür zu sorgen, dass der Zugang autorisiertem Personal vorbehalten bleibt. Außerdem dürfen die Konfigurationsdateien sowie die Indexdateien und Suchhistorien nicht im Bereich des Document-Root der Webanwendung abgelegt werden, die durchsucht werden soll, sondern müssen entsprechend
185
Sandini Bib 11 Search
dem Schema für die Installation von Zusatzsoftware auf Webservern, das im WebFarm-Standard definiert wird, eingerichtet werden. Bei großen Anwendungen kann man für die Installation der Suchmaschine und insbesondere für deren Indexdateien eine gesonderte Partition oder Platte vorsehen, da die Indexdateien einer Suchmaschine manchmal so groß oder sogar größer werden können als die zu indizierenden Informationen.
11.3 Integration in die globale Suchumgebung Die Integration einer Anwendung und deren lokaler Suchmaschine in das globale Suchumfeld gestaltet sich immer wieder als komplex. Es ist grundsätzlich selten der Fall, dass für die Anwendung ein direkter Mehrwert geschaffen wird, vielmehr wird durch die Aufnahme einer Anwendung in die globale Suchwelt zusätzlich zur lokalen Suchmaschine den Benutzern, die diese Anwendung nicht kennen oder deren Inhalte nicht beurteilen können, ein Mehrwert gegeben, da diese sicherlich Informationen, die sie in ihren normalen Anwendungen nicht finden können, im globalen Suchmechanismus der WebFarm-zu finden versuchen. Soll eine Anwendung also auch Anwendern »schmackhaft« gemacht werden, die diese normalerweise nicht verwenden, ist eine Einbindung in das öffentliche Suchnetz der WebFarm-Lokation der Anwendung unerlässlich. Die Benutzer der Anwendung selbst können, wenn es sich um ein Angebot mit allgemein nützlichen Informationen handelt, über die Verbindung zum globalen Suchnetz und einer integrierten Suche über die anwendungseigene Suchmaschine sowie die globalen Suchmechanismen Dokumente in anderen Anwendungen lokalisieren, die zu dem von Ihnen momentan bearbeiteten Themenblock passen und damit einen Mehrwert an Information bieten, den der Benutzer, wäre er nur in der lokalen Anwendung verblieben, nicht gehabt hätte. Fazit dieser Ausführungen ist, dass ein Angebot immer in die globale Suchumgebung integriert werden sollte.
186
Sandini Bib Integration in die globale Suchumgebung
Abbildung 11.3: Integration in eine Globale Suchumgebung
187
Sandini Bib 11 Search
Abbildung 11.4: Suchumgebung von Altavista
188
Sandini Bib
12
Content-Management
Im Folgenden soll auf die spezifischen Anforderungen von Anwendungen im Hinblick auf deren Anschluss an das WebFarm-Content-Management-System eingegangen werden. Es handelt sich nicht um ein Kapitel für Agenturen und wie diese Contents in die Systeme übertragen können; eine entsprechende Beschreibung ist dem Benutzerhandbuch für Agenturen bzw. dem Autorenhandbuch für das Content-Pool-System zu entnehmen. Vielmehr geht es darum, Content in die allgemeine Struktur einzugliedern, verfügbaren Content für eine neue Anwendung nutzbar zu machen und allgemein darum Content im Unternehmen oder bei externen Quellen zu lokalisieren.
12.1 Lokales Content-Management Content-Management umfasst, wie im entsprechenden Infrastruktur-Kapitel des WebFarm-Standards beschrieben, alle Arten von Inhalten, die auf Webservern abgebildet werden können. Dabei ist es offensichtlich, dass dynamischer Content keine Frage eines zentral verfügbaren Content-Management-Systems ist, sondern von den Anwendungen selbst generiert wird und daher ohnehin eine Frage der Anwendung an sich ist. Interessant für das globale Content-Management ist die Versorgung aller Anwender mit Inhalten. Das bedeutet sowohl den Transport von statischem Content an die richtige Anwendung als auch die Versorgung aller Anwender mit semi-dynamischem Content aus einem verteilten Content-Pool.
189
Sandini Bib 12 Content-Management
12.1.1
Statischer Content
Abbildung 12.1: Statischer Content auf einer Website
Statischer Content wird von den Erzeugern und Lieferanten direkt an das Content-Management-System übergeben. Dieser Content enthält statische Serverbereiche einer Webanwendung genauso wie eigentliche Anwendungen, sprich Programme, Includes, Templates, Application-Server-Code usw. Dieser Content wird an das System nicht als allgemeiner Content für den Content-Pool übergeben, sondern mit der Kennzeichnung, dass es sich um Content für einen vorgegebenen Bestimmungsort handelt. Das ContentManagement-System wird dieses Package, wie im entsprechenden Kapitel des WebFarm-Standards beschrieben, durch die Checkalgorithmen schleusen und für eine fachliche Freigabe auf dem Pre-Production-System der Zielanwendung bereitstellen. Wurde das Package freigegeben, so wird es auf das System und das Backup-System der Anwendung als Praxis-Package eingespielt, und der Prozess ist abgeschlossen.
190
Sandini Bib Lokales Content-Management
Dieses Verfahren beeinflusst den lokalen Server. Sind hier Mehrsprachigkeit oder andere Features gewünscht, muss dies der statische Content alleine zur Verfügung stellen, da es die Idee von statischem Content ist, keine weitere Beeinflussung zu erfahren.
12.1.2
Semi-dynamischer Content
Semi-dynamischer Content wird von Autoren direkt an das Content-Management-System in den Content-Pool übergeben. Dabei ist es für die Autoren nicht relevant, für welche Zielsysteme oder Zielanwendungen dieser Content verwendet wird, denn es geht hierbei um die Speisung des Content-Pool. Die Konfiguration einer Anwendung im Content-Pool bedeutet also, dass alle diejenigen Informationsklassen und/oder durch Regeln eingeschränkten Informationsgruppen auf die Anwendung selbst übertragen werden, um dann dort in Format, Struktur, Vernetzung usw. auf die Anwendung angepasst zu werden.
Abbildung 12.2: Unterschiedliche Darstellung desselben Contents auf verschiedenen Zielsystemen
Der Content-Pool ist in diesem Fall eine Zwischenschicht zwischen Autor und Anwendung, der sich um die einfache Arbeitsumgebung für den Autor, die Verteilung der Informationen und letztendlich um das Management der Informationen auf vielen Anwendungen gleichzeitig kümmert. Mehrsprachigkeit Die Mehrsprachigkeit innerhalb eines Unternehmens oder einer Anwendung ist beim Erstellen von Webanwendungen immer wieder ein heikles Thema, was über die Funktionalität des WebFarm-Content-Management-Systems mit seinem objektorientierten Content-Pool-System mit Attributen und MetaInformationen einfach gelöst wird. 191
Sandini Bib 12 Content-Management
Selbstverständlich sollen von einer Information keine computerisierten Übersetzungen automatisch erstellt werden, da die Qualität solcher Übersetzungen immer noch stark zu wünschen übrig lässt.
Abbildung 12.3: Eingabemaske für Metainformationen
Es werden vielmehr von Autoren bzw. Übersetzern der Autoren die entsprechenden erforderlichen Dokumente in mehreren Sprachen an den ContentPool übergeben. Dabei sind die den Dokumenten mitgegebenen Attribute und Meta-Informationen, wie z.B. Klasse, Expiry usw., identisch. Zusätzlich wird den Klassen des Content-Pool, die mehrsprachigen Content unterstützen sollen, eine Meta-Information für die Sprache des jeweiligen Dokuments mitgegeben, die der entsprechende Autor oder Übersetzer mit vordefinierten Werten ausfüllt. Dadurch wird es dem Content-Management-System auf den einzelnen Anwendungen, auf denen die Information eintrifft, ermöglicht, die Sprachen zu identifizieren und den Content, obwohl er in der gleichen Klasse und Strukturebene angekommen ist, in eine andere Struktur, eben für die andere Sprache, zu integrieren. Es ist über das Content-Pool-System auch möglich, zusammenhängende Informationen zu publizieren, also z.B. immer ein englisches und ein deutsches Dokument gemeinsam. Das hat den Nachteil, dass diese Dokumente
192
Sandini Bib Lokales Content-Management
auch immer zusammenhängend behandelt werden müssen, also nie unabhängig voneinander für eine deutsche und/oder eine englische Anwendung verwendet werden können. Es kann aber als Vorteil eine Verbindung zwischen exakt diesen Dokumenten hergestellt werden. Beide Ansätze zur Verwaltung von mehrsprachigem Content sind möglich, der WebFarm-Standard verwendet allerdings in 95% aller Fälle die Möglichkeit, Sprachen über Meta-Informationen zu identifizieren, weil dabei eindeutig die Vorteile überwiegen. Layout und Design Das Layout und Design, das bei statischen Informationen, da es ja nur für eine Anwendung erzeugt wurde, feststeht, ist bei semi-dynamischen Informationen variabel. Je nach Ziel der Information – und das sind, wenn die Information effizient eingesetzt wird, sehr viele verschiedene Ziele – kann die Information ein neues Layout und Design erhalten. Wird eine Information in einer bestimmten Klasse vom Content-Pool-Netzwerk an eine Anwendung geliefert, sind die auf der Anwendung installierten Komponenten des WebFarm-Content-Management-Systems dafür verantwortlich, dass aus dem Klassenmodell des Content-Pool und den der Information mitgegebenen Meta-Informationen eine Eingliederung der Information in die Struktur der jeweiligen Anwendung erfolgt, und ebenso sind diese Komponenten dafür verantwortlich, dass das Layout- und Designkonzept der Anwendung in den einzelnen Dokumenten umgesetzt wird.
Abbildung 12.4: Trennung von Layout und Inhalt
Eine solche Umsetzung des Designs ist, wie in Webanwendungen üblich, nur in webbasierten Dokumententypen, also HTML oder XML, sinnvoll und wird auch nur bei diesen Content-Typen vom Content-Management-System bzw. dessen Content-Pool-Komponenten vorgenommen. Auf der Anwendung
193
Sandini Bib 12 Content-Management
liegt dann also entsprechend eine Kopie der original vom Autor bereitgestellten Information, die über Links usw. in die Struktur der Anwendung eingebunden ist und dem Layout der Anwendung entspricht. Struktur Wie im vorangegangenen Absatz bereits beschrieben, ist die Einbindung einer Information in die Struktur der Anwendung ein sehr wichtiges Element, wenn Informationen wieder verwendbar gemacht werden. Da jede Anwendung eine andere Anforderung an Struktur, Vernetzung und allgemeine Darstellung bzw. Navigierbarkeit von Informationen hat, spielt die für eine Anwendung gewählte Struktur der Informationen eine große Rolle. Auf einem Site für Experten werden z.B. wesentlich mehr Informationen im direkten Zugriff stehen und völlig anders sortiert sein als auf einem Site, auf dem Benutzer an ein Thema herangeführt werden sollen, oder auf einem Site, an dem eine Art Drill-Down für Informationen präsentiert wird.
Abbildung 12.5: Integration von Informationen in die Struktur einer Anwendung
Damit eine Anwendung den Automatisierbarkeitsanforderungen des WebFarm-Standards entspricht, muss sie so strukturiert sein, dass jegliche Art von Content, der nicht unbedingt statisch oder vollkommen dynamisch erzeugt werden muss, über das Content-Pool-System der WebFarm- gefüttert wird. Die Struktur muss dabei den Anforderungen der Benutzer für diese spezielle Anwendung Rechnung tragen. Auf diese Weise können mit den gleichen Informationen viele Benutzer unterschiedlichster Benutzergruppen und Anforderungsprofile versorgt werden, die ansonsten nur schwerlich den richtigen Zugang zu diesen Informationen gefunden hätten. 194
Sandini Bib Lokales Content-Management
Der Aufbau solcher Strukturen hat Auswirkungen auf die im Content-PoolSystem verwendeten Meta-Informationen zu einem Dokument. Fällt bei einer neuen Anwendung auf, dass zusätzliche Meta-Informationen benötigt werden, so können diese immer problemlos eingeführt werden. Diese Erweiterbarkeit auf der Attributebene bewirkt, dass ein gut designtes Klassenmodell für den Content-Pool immer so erweitert werden kann, dass neue Applikationen und Informationstypen problemlos integriert werden können. Die Strukturierung muss in Betracht ziehen, auf welcher Ebene der Navigation einer Informationsanwendung welche Informationen bzw. wie viel dieser Information dargestellt werden sollen und welche Verfallszeiten Informationen an sich bzw. der Verweis auf bestimmte Informationen in Indizes haben. Sind die Indizes ermittelt, kann das System so konfiguriert werden, dass es jeden Index mit einer Menge an Bedingungen über die eingehenden Informationsklassen, deren Meta-Informationen, Sortierung, Darstellung, Verfallszeiten usw. darstellt. Sind diese Indizes geschaffen, werden sie automatisch vom Content-Pool-System auf der Anwendung generiert, und die Informationsstruktur der Anwendung ist komplett automatisiert und sehr einfach verwaltbar. Vernetzung Die Vernetzung von Informationen, die als semi-dynamische Informationen oder auch als statische Informationen auf einer Anwendung angekommen sind, wird durch das WebFarm-Content-Management weit über die generierte Struktur hinaus ermöglicht. Informationen sollen über Schlüsselwörter und Referenzen miteinander verbunden werden. Wie diese Vernetzung stattfindet, ist nicht eine Frage der globalen Konfiguration des WebFarm-ContentManagement-Systems, sondern eine Frage der lokalen Anwendung, da genau wie die Struktur die Vernetzung von Informationen auf die Benutzer der Anwendung abgestimmt sein muss. Die Vernetzung kann nur auf semi-dynamische Dokumente beschränkt werden, damit nur aktuelle Informationen miteinander verbunden werden; sie kann aber auch auf statische Dokumente ausgedehnt werden, die dann ihrerseits Verweise auf aktuelle Dokumente in der Anwendung enthalten können. Der WebFarm-Standard unterscheidet zwischen zwei grundlegenden Arten der Vernetzung: Schlüsselworte/Keywords Keywords werden einer Information vom Autor als Meta-Informationen mitgegeben. Sie dienen dazu, den Inhalt des Dokumentes zu klassifizieren. Es kann den Autoren freigestellt werden, eigene Schlagworte zu wählen, es ist aber auch möglich, das WebFarm-Content-Management-System so zu konfi-
195
Sandini Bib 12 Content-Management
gurieren, dass dem Autor eine bestimmte Auswahl an Stichworten zur Verfügung steht. Die Vernetzung anhand von Stichworten durchsucht nun den als Text (HTML, XML, Application-Server) auf einem Server, auf dem die Information ankommt, vorhandenen Inhalt nach diesen Stichworten. Wird ein Stichwort gefunden, erzeugt das Content-Management-System einen Verweis von diesem Stichwort auf das Dokument, das dieses Stichwort als Meta-Information mitführt. Wenn es mehrere Dokumente gibt, wird wie bei der Indexerstellung eine Art Zwischenseite generiert, die dann nach vorgegebenen Sortierungskriterien die Dokumente, die das Schlüsselwort als Meta-Information mitführen, darstellt, so dass der Benutzer diese anwählen kann. Zusätzlich können Attribute über die Art der Schlüsselworterkennung (z.B. mit Abständen oder unter Nichtbeachtung von HTML-Tags) definiert werden sowie Konfigurationen über die Häufigkeitsverteilung von Verweisen in einem Dokument (wie viele Wörter zwischen zwei Verweisen sein müssen, wie viele Verweise ein Dokument überhaupt enthalten darf).
Abbildung 12.6: Verweise in einem Dokument
196
Sandini Bib Lokales Content-Management
Referenzen Referenzen sind eine Art Schlagwörter, die auf Anwendungsseite konfiguriert werden. Dies bedeutet, dem Content-Management-System wird auf der Anwendung eine Liste mit Stichwörtern übergeben, die mit einem Verweis versehen sind. Semi-dynamische Informationen werden nun auf diese Schlagwörter hin untersucht, und wenn diese gefunden werden, wird ein Verweis hinter dem Schlagwort in das Dokument integriert, der auf die angegebene Stelle vernetzt. Dieses Verfahren, den Content einer Anwendung zu untersuchen, kann auch auf den statischen Content ausgedehnt werden. Auf diese Weise kann in Informationssystemen eine Art Lexikon integriert werden, das typische Begriffe erläutert. Ebenso ist dieses Verfahren geeignet, um ein durchgehendes und automatisch funktionierendes Hilfssystem in eine Webanwendung zu integrieren. Voraussetzung für die Konfiguration von Referenzen im Vergleich zu Schlüsselwörtern ist, dass ein Wort in der Referenzliste nur ein einziges Mal vorkommen darf, da es ja für die Vernetzung eindeutig identifiziert werden muss. Überlegungen zum Thema Vernetzung von Informationen nach dem WebFarm-Standard sollten in jedem Webprojekt eine wichtige Rolle spielen. Die Vernetzung über das Content-Management-System der WebFarm stellt eine sehr wichtige Administrationserleichterung sowie eine große Verbesserung der Kommunikationsstruktur von Anwendungen dar, da eine Content-orientierte Struktur, die sich nicht an der Baumstruktur eines Servers orientiert, in die Anwendung vollautomatisch eingezogen werden kann. Dokumentenzyklen Der Zyklus von Dokumenten in einer Anwendung ist ebenfalls entscheidend für die Informationsstruktur und damit für die Art der Anwendung sowie deren Benutzergruppe. Über das Content-Management-System können mehrere Zyklen für Dokumente festgelegt werden. Zunächst kann der globale Zyklus für eine Information einer Klasse bestimmt werden. Das bedeutet, dass ein Dokument nach dem dort festgelegten Zeitpunkt oder der festgelegten Dauer komplett aus der Anwendung entfernt wird. Selbstverständlich werden hierbei auch alle Verweise auf dieses Dokument entfernt. Indizes und Strukturelemente können im WebFarm-Content-ManagementSystem ebenfalls so konfiguriert werden, dass nur eine bestimmte Anzahl von Dokumenten auf einer Seite, nur eine bestimmte Anzahl von Dokumenten in einem Index dargestellt werden oder Dokumente nach einer gewissen Zeit aus einem bestimmten Index verschwinden. Diese Titel können eingesetzt werden, um verschiedene Aktualitätsstufen und Archivübersichten in eine Anwendung zu integrieren.
197
Sandini Bib 12 Content-Management
12.2 Content für eine Anwendung Die Grundsatzfrage, welcher Content überhaupt in eine Anwendung integriert wird, ist Thema vieler Abhandlungen im Bereich der Webforschung. Grundsätzlich ist wohl zu sagen, dass, wenn die Anwendung eine sehr gute Struktur hat und Drill-Down-orientiert ist, möglichst viel Content überhaupt verwendet werden sollte. Es gibt aber auch Anwendungen, wie z.B. Management-Information-Systeme, bei denen der Content auf das absolut Notwendige beschränkt ist, damit er überhaupt zu verarbeiten ist, und nicht erst eine Suche nach wesentlichen Inhalten durchgeführt werden muss. Die Anwendung an sich bietet in ihren Basisanforderungen grundsätzlich auch Anforderungen für Inhalte und damit für Content. Es ist wichtig, diese Informationen, Programme usw. auf jeden Fall in die Anwendung zu integrieren. Die eigentliche Frage stellt sich erst dann, wenn der absolute BasisContent abgedeckt ist und es um zusätzlichen Content geht. Hier gilt, aller verwandter Content, der um den Basis-Content generiert wird, oder Anwendungen, die um den Basis-Content herum entstehen, sind auf jeden Fall sinnvoll zu integrieren und stehen damit dann auch anderen Anwendungen, die eventuell einen ähnlichen Fokus haben (Brückenfunktion), zur Verfügung. Dieser Content kann, wenn er noch nicht im Informationsmodell erfasst ist, sofort in die Strukturen über den neuen Content eingegliedert werden, der die Basis für die Anwendung bildet. Zusätzlich ist es oft sinnvoll, Anwendungen mit Hintergrundinformationen zum Fachgebiet, zu Anwendungen, zum Unternehmen usw. zu versorgen, die allgemein aus dem Content-Pool angefordert werden können. Durch den bestehenden Content-Pool ist auch eine doppelte Erstellung von Informationen, was im heutigen Informationsprozess in Unternehmen sehr oft geschieht, nicht mehr möglich. Beim Design einer Anwendung muss nach dem WebFarm-Standard nämlich zuerst der Content-Pool des ContentManagement-Systems nach Informationen durchsucht werden, welche die Basisanforderungen der Anwendung widerspiegeln. Wird für eine Anwendung tatsächlich neuer Basis-Content oder auch Content aus dem Kontext der Anwendung geschaffen, muss dieser auf jeden Fall in den Informationspool einfließen, wenn es sich um semi-dynamische Informationen handelt, oder in die Bibliothek von Anwendungen und statischen Informationen, wenn es sich um statischen Content oder Anwendungen zur Benutzerführung oder zur Erzeugung von dynamischem Content handelt. Dieses Einfügen in die Strukturen erfolgt anhand des vorgegebenen Klassenmodells des Informationsmodells für die globale Content-Struktur des Unternehmens, die bei der Implementierung der WebFarm-in einem Unternehmen dynamisch festgelegt wird. Wie im entsprechenden Infrastrukturdokument des WebFarm-Standards definiert, sollten einige Oberklassen, die sich am
198
Sandini Bib Content für eine Anwendung
sinnvollsten an der fachlichen Ausrichtung von Informationen um die Geschäftsbereiche des Unternehmens organisieren, festgelegt werden. Darunter stehende Klassen werden mit den entstehenden Applikationen gebildet und daher ständig anhand der Vererbung und der Erweiterung des Modells verbessert und verfeinert. Durch den objektorientierten Ansatz des Klassenmodells des ContentManagement-Systems der WebFarm-ist die Integration von neuem Content nicht schwierig. Sie muss dennoch sehr sorgfältig erzeugt werden, damit nicht generell doppelte Strukturen innerhalb des Content-Pool bzw. dessen Klassenbaum aufgebaut werden. Auch ist zu unterscheiden, ob für neuen Content eine neue Klasse geschaffen werden muss oder ob dieser eventuell besser über die Erweiterung von Meta-Informationen eingebettet werden kann und so wesentlich einfacher und voll automatisch auch auf bestehenden Anwendungen zur Verfügung steht. Im Fall, dass nur Meta-Informationen für neuen Content erweitert bzw. Attribute hinzugefügt werden, wird der Content automatisch an alle Anwendungen verteilt, diese entsprechende Klasse angefordert haben (und keine Restriktion auf Meta-Informationen besitzen). Sind diese offen konfiguriert, wird der Content ohne weiteres Zutun integriert. Es wird auf diese Weise also eine sehr gute Automatisierung von Informationswiederverwendung erreicht.
199
Sandini Bib
Sandini Bib
13
Management der Navigationsstruktur
Die Navigation ist ein Aushängeschild für einen Webserver oder die Benutzerschnittstelle für eine Anwendung, die weborientiert arbeitet. Ohne eine sinnvolle und benutzerfreundliche Navigation ist eine Webanwendung nicht einsetzbar und wird keine Akzeptanz finden. Im Folgenden werden die Richtlinien des WebFarm-Standards beschrieben, wie eine Navigation am besten aufgebaut wird und welche unterschiedlichen Navigationstypen es gibt. Jede Anwendung hat ihre eigene Umgebung, darum können solche Richtlinien nie zu 100% eingehalten werden. Es ist aber sinnvoll, sich an diesen Vorgaben zu orientieren, da sie aus vielen großen Webprojekten resultieren, die erfolgreich sind; selbstverständlich sind auch Misserfolge beim Anwendungsdesign in den Erfahrungsschatz dieses Dokuments eingeflossen, die bei der Entwicklung neuer Anwendungen aber nicht wiederholt werden müssen.
13.1 Anwendungsklassifizierung Für die Navigationsstruktur einer Anwendung sind grundsätzlich drei Typen zu unterscheiden, die sich auf die Struktur und die Art der Navigation auswirken.
13.1.1
Reine Programmanwendung
In diesen Anwendungen, welche die Repräsentation einer normalen Applikation zur Dialogabwicklung für einen Benutzer darstellen, ist die Navigation Bestandteil der Programmierung. Es ist offensichtlich, dass dies derart abhängig von der Anwendung an sich ist, dass keine weborientierten Vorgaben gemacht werden können. Grundsätzlich gelten hier die gleichen Anforderungen an Benutzbarkeit und Ergonomie wie beim Design von Client-Serveroder anderen Anwendungen. Eine Webentwicklung bedeutet nicht, dass man sich von den Erfahrungen in der Benutzerführung und der Unterstützung des Benutzers beim Benutzen einer Anwendung, die über lange Zeit gesammelt wurden, lossagen kann. Dies ist beim Design solcher Anwendungen auf jeden Fall zu beachten.
201
Sandini Bib 13 Management der Navigationsstruktur
Abbildung 13.1: Reine Programmanwendung
13.1.2
Allgemein verwendbare Webanwendung
Allgemeine Webanwendungen sind Webanwendungen, die sich an einen Benutzerkreis richten, der durch Informationslandschaften und Interaktionsmöglichkeiten geführt werden muss und dabei neue Informationen und Anwendungen entdecken kann und soll. Es handelt sich nicht nur um Marketingangebote, sondern auch um Informationssysteme, welche die Benutzer zum weiteren Lernen veranlassen sollen. Diese Anwendungen bilden im Internet mit knapp 95% die große Mehrheit, hier ist aber ein Rückgang auf ca. 80% vorherzusagen. In den Intranet- und Extranet-Entwicklungen bilden auch diese Anwendungen mit ca. 70% den größeren Teil.
202
Sandini Bib Anwendungsklassifizierung
Diese Anwendungen besitzen eine Navigation, die sich an der Denkweise des Benutzers Schritt für Schritt orientiert und so den Benutzer unterstützt, wenn er neue Informationen entdeckt oder seinen eigenen Gedankengängen folgt.
Abbildung 13.2: Allgemein verwendbare Webanwendung
13.1.3
Webanwendung für Experten
Bei Anwendungen für Experten, also Benutzern, die exakt wissen, was sie suchen und wo sie es finden, ist eine völlig andere Navigation zu wählen. Anwendungen, die in einer solchen Art geschaffen werden, sind normalerweise sich schnell aktualisierende Informationssysteme oder Organisationssysteme, bei denen bestimmte Anwender immer wieder auf die gleichen Seiten zugreifen. Für solche Anwendungen bietet sich auch eine Individualisierung an.
203
Sandini Bib 13 Management der Navigationsstruktur
Abbildung 13.3: Webanwendung für Experten
204
Sandini Bib Navigationsdesign für allgemeine Anwendungen
13.1.4
Homepages
Abbildung 13.4: Homepages verschiedener Unternehmen mit unterschiedlichen Aussagen
Die Eingangsseite zu einer Webanwendung kann aus dem normalen Navigationsdesign der Anwendung herausstechen. Bei allgemeinen Anwendungen wird sie meistens zum Transport von aktuellen Marketingbotschaften verwendet, bei Anwendungen für Experten eher für die Darstellung von individuellen Seiten oder für die Präsentation neuester Informationen.
13.2 Navigationsdesign für allgemeine Anwendungen Das Navigationsdesign für allgemeine Anwendungen ist, wie bereits angesprochen, darauf ausgelegt, den Benutzer zu führen, ihn also von einer Ebene in die nächste zu leiten und innerhalb des Content neue Ideen oder gewollte Suggestionen zu unterstützen.
205
Sandini Bib 13 Management der Navigationsstruktur
13.2.1
Seitenlayout
Es gibt mehrere Ansätze, eine Seite zu gestalten. Viele Seiten verfolgen den Ansatz, eine Navigation oben und links oder oben und rechts oder unten und links oder auch unten und rechts zu etablieren. Nur sehr marketingorientierte Anwendungen bauen die Navigation direkt auf die Seite. Wie oben bereits erwähnt, geht es hier nicht um die Homepages, sondern um Seitenlayouts in den Anwendungen, da Homepages zur Erstellung von gewissen Effekten oft völlig anders gestaltet sind und dies auch sein dürfen.
13.2.2
Navigationselemente
Es werden verschiedene Navigationselemente unterschieden. Top Level-Navigation Über diese werden die Oberpunkte einer Anwendung angesprochen. Im Falle der allgemeinen Anwendungen stehen in diese Navigationselemente für die einzelnen Bereiche des gesamten Webservers. Diese Navigation wird oft als Top Level bezeichnet, weil sie sich für gewöhnlich auch am oberen Rande der Darstellung befindet. Hot Buttons Hot Buttons sind Navigationselemente, die, mit besonders auffälligem Design versehen, in die Top Level-Navigation integriert oder um diese gruppiert werden. Diese Elemente werden verwendet, um bestimmte spezifische Teile einer Anwendung, die von starkem allgemeinen Interesse sind, direkt anzusprechen. Meistens werden hier Hilfefunktionen oder Feedback-Funktionen in Marketinganwendungen untergebracht. In Extranet-Anwendungen werden hier z.B. Konfigurationsmöglichkeiten oder besonders hervorzuhebende Einzelanwendungen vernetzt. Die Hot Buttons sind ein wichtiges Element einer Navigation, da sie einerseits die Unterstützungsfunktionen für den Benutzer bieten, die immer benötigt werden, und andererseits verwendet werden können, um gezielt Benutzer auf bestimmte Einzelanwendungen oder Informationen zu lenken.
206
Sandini Bib Navigationsdesign für allgemeine Anwendungen
Abbildung 13.5: Elemente einer Navigationsstruktur
Side-Navigation Diese Navigationsebene, die oft an der Seite einer Website untergebracht ist, stellt die Navigation im momentan gewählten Bereich des Servers dar, der über die Top Level-Navigation ausgewählt wurde. Die Navigation kann sich auch als zweite Ebene unter der Top Level-Navigation befinden, was sich auf Seiten mit wenigen Elementen in einer Ebene sehr stark bewährt hat. Wird ein Element der Side-Navigation angewählt, was neben dem Content auch eine nächste Ebene in der Navigation der Anwendung darstellt, so wird die vorhandene Side-Navigation auf den angewählten Punkt und in einer Stufendarstellung seinen Unterpunkten umgebaut. Dies hat zur Folge, dass der Benutzer nicht durch die Möglichkeit, direkt in andere Bereiche zu springen, verwirrt wird.
207
Sandini Bib 13 Management der Navigationsstruktur
Geht man von einer erfahrenen Benutzergruppe aus, so wird nicht die Navigation der Elemente der oberen Ebene ausgeblendet, sondern lediglich die Unterpunkte des gewählten Bereichs werden eingeblendet. In einer Side-Navigation sollten nur in ganz seltenen und gut begründeten Fällen mehr als zwei Ebenen gleichzeitig voll dargestellt werden. Wird tiefer navigiert, werden die darüber stehenden Ebenen, da immer ein direkter Weg zurück geboten werden muss, mit einer Symbolik dargestellt, die es erlaubt, die Backnavigation auf die gleiche Ebene wie die übergeordneten Ebenen zu stellen, in der sich der Benutzer gerade befindet. Navigation-View Die Anzeige des Standortes des Benutzers im Server ist gerade für unerfahrene Benutzer oder Benutzerinnen, die einen Site kennen lernen, sehr wichtig. Grundsätzlich ist bei einer gut gestalteten Top Level-Navigation, die also visualisiert, welchen Bereich der Benutzer angewählt hat, und einer SideNavigation, welche die Ebenen klar erkennen lässt, keine zusätzliche Anzeige notwendig. Zur Information des Benutzers kann aber die exakte Lokation in der primären Struktur des Servers zusätzlich zwischen Top Level- und Side-Navigation dargestellt werden.
13.2.3
Navigationsebenen
Aus den vorangegangenen Ausführungen wird deutlich, dass auf jeden Fall mehr als zwei Navigationsebenen darstellbar sein müssen. Ist dies nicht der Fall, muss man von einer Bedienung der Anwendung nur von Seite zu Seite ausgehen, was eine sehr stringente Benutzerführung voraussetzt, der sich heute kaum noch ein Benutzer von Webanwendungen unterziehen will. Solche Anwendungen werden z.B. für Computer-Based-Training eingesetzt, da hier der Benutzer ohne Verwirrung nur die in der Schulung direkt im Ablauf vorgesehenen Vernetzungen verwenden soll.
208
Sandini Bib Navigationsdesign für Expertenanwendungen
Abbildung 13.6: Verschiedene Ebenen einer Navigationsstruktur
13.3 Navigationsdesign für Expertenanwendungen Expertenanwendungen müssen eine wesentlich detailliertere Navigation auf einmal anbieten als Anwendungen im allgemeinen Bereich, weil man hier davon ausgehen kann, dass der Benutzer bereits weiß, in welchem Bereich des Servers sich die Informationen befinden, die er sucht, und auch genau weiß, wie man diesen Bereich annavigieren kann. Wenn nicht ohnehin ein Bookmark für einen Anwendungsteil existiert, wie sich viele Benutzer sparen, wenn eine für sie geeignete Navigation verfügbar ist. Die Elemente sind prinzipiell gleich, nur die Anforderungen an diese Elemente haben sich im Vergleich zu allgemeinen Anwendungen stark verändert. In der Top Level-Navigation wird, wenn der Benutzer sich in einem Unterbereich befindet, nur noch die Top Level-Navigation dieses Unterbereichs dargestellt.
209
Sandini Bib 13 Management der Navigationsstruktur
Die Side-Navigation wird zu einer Komplettnavigation über die gesamte Anwendung. Dies ist das wichtigste Element für Anwendung für Experten. Der Benutzer kann mit diesem Werkzeug einfach die gesamte Site auf einmal betrachten und sich an die von ihm gewünschte Stelle mit einem Klick navigieren. Eine solche Navigation lässt sich statisch realisieren, was einen gewissen Aufwand darstellt. Sinnvoll erscheint eine an einer gewohnten Umgebung (z.B. von Windows) orientierte Navigation, wie z.B. ein Dateibaum. In einem solchen Baum können Ordner auf- und zugeklappt werden und für die Navigation angeklickt werden. Eine solche Anwendung lässt sich am einfachsten mit JavaScript navigieren.
Abbildung 13.7: JavaScript-Navigation
210
Sandini Bib Navigationsdesign für Expertenanwendungen
Wissensbasierte Navigation Eine Alternative zur allgemeinen Site-Navigation in sehr großen Informationssystemen ist eine Navigation, die sich an der Technik der so genannten Mind-Maps orientiert und somit logische Verkettungen zwischen Informationselementen darstellen kann. Eine solche Navigation wird momentan oft nur experimentell eingesetzt, wird sich aber bei wachsenden Informationssystemen immer mehr durchsetzen.
Abbildung 13.8: Wissensbasierte Navigation
211
Sandini Bib
Sandini Bib
14
Cluster-Management
Viele Websites im Internet erreichen sehr schnell eine Popularität, die über die Leistungsfähigkeit einer Maschine stark hinausgeht, oder bieten derart aufwändige Anwendungen an, dass diese nicht mehr in einem Single-Host-Environment betrieben werden können. Die erste Strategie war es, die Rechner, auf denen solche Anwendungen betrieben werden, zu maximieren. Es ergibt sich auch hier die gleiche Problematik, wie sie bereits im WebFarm-Infrastruktur-Kapitel über WebserverHardware diskutiert wird. Es hat sich darum im Internet durchgesetzt, solche Anwendungen eher auf mehrere kleine Server zu verteilen, die dann einen Cluster bilden. Solche Cluster haben Vorteile bei Anschaffungspreis, Kontrollierbarkeit und Ausfallsicherheit, sind aber auch im Management wesentlich aufwändiger als andere Umgebungen. Im Folgenden sollen die Möglichkeiten des Clustering, die Voraussetzungen und die Bedingungen in der Anwendungsentwicklung sowie die Integration von Clustern in die WebFarm-Umgebung definiert werden.
14.1 Cluster-Varianten Es gibt einige, mehr oder weniger einfache und sinnvolle Möglichkeiten, Cluster zu erstellen. Alle diese Möglichkeiten widersprechen nicht dem WebFarm-Standard.
14.1.1
Round-Robin-Verfahren
Dieses Verfahren ist wohl das älteste Verfahren, um eine Art von RechnerClustern zu erzeugen. Dieses Verfahren funktioniert über die Vergabe des gleichen Namens im DNS für mehrere Rechner bzw. mehrere IP-Adressen. Der Nameserver wird nun diesen Raum an IP-Adressen sequentiell abarbeiten und bei jeder Anfrage die nächste Adresse zurückgeben. Dieses Verfahren setzt kein besonderes Cluster-Management voraus. Es müssen lediglich alle Server, die den gleichen Namen besitzen, auch die gleichen Inhalte liefern.
213
Sandini Bib 14 Cluster-Management
Request 1 Request 2 Request 3
Client
Request 4
Client Client Client Cluster Server 1
Cluster Server 2
Network
LAN
LAN
Cluster Server 3
DNS Request 4
DNS
DNS Request 3 DNS Request 2 DNS Request 1
Cluster Server 4
Abbildung 14.1: Round-Robin-Verfahren
Das Round-Robin-Verfahren ist leider nicht kontrollierbar, da die DNS verschiedene Cash-Stufen enthält und oft keine neuen Anfragen durchgeführt werden. Auf der anderen Seite kann es sein, dass Anfragen eines Benutzers auf mehreren Rechnern eingehen, was dann wieder bedeutet, dass der Cluster Sessiondaten von Benutzern, wenn es um eine Anwendung mit Sessions geht, unter den beteiligten Maschinen in Echtzeit abgleichen muss. Generell empfiehlt der WebFarm-Standard dieses Verfahren nur dann, wenn es sich um öffentliche Informationssysteme mit sehr wenig Interaktion handelt, bei denen eine exakte Lastverteilung nicht das Ziel ist, sondern nur eine Verbesserung des Performanceverhaltens.
14.1.2
Reverse-Proxy-Cluster
Über das bereits im Infrastruktur-Kapitel des WebFarm-Standards beschriebene Reverse-Proxy-Verfahren kann ebenfalls ein Cluster eingerichtet werden. Hierfür sollte allerdings die Proxy-Software so konfiguriert werden, dass sie nur das Clustering betreibt, da ansonsten der Performanceverlust zu hoch ist. Der Reverse-Proxy kann über das Cluster-Protokoll, auf das sich verschiedene Hersteller von Proxy-Software geeinigt haben, eine bessere Verteilung der Auslastung gewährleisten. Wichtiger ist allerdings, dass der ReverseProxy auch Benutzer erkennen kann und somit einen Benutzer auf einer Maschine des Clusters belässt, so dass kein zusätzlich belastendes Sharing der Benutzerdaten vorgenommen werden muss.
214
Sandini Bib Cluster-Varianten
Eine weitere Funktion, die mit einem Reverse-Proxy abgedeckt werden kann, ist die Verteilung unterschiedlicher Anfragen. Es kann z.B. bei einem Cluster aus acht Maschinen veranlasst werden, dass alle Anfragen für den WebserverBereich/Customers auf die Maschinen 1 bis 4 verteilt werden und alle anderen Anfragen auf die Maschinen 5 bis 8. Somit kann also innerhalb einer Anwendung auch eine weitere Unterteilung der Prozesse erreicht werden, was zu einem wesentlich besseren Performanceverhalten führt. Der Nachteil einer solchen Konstruktion ist eindeutig, so dass der ReverseProxy selbst sehr schnell zum Engpass werden kann, da dieser sehr viele Requests abhandeln und je nach Konfiguration doch einiges an Operationen dabei durchführen muss. Es besteht nun die Möglichkeit, auch diese Proxies wieder zu Clustern zu machen, was aber sicherlich das Management unnötig kompliziert machen würde. Außerdem handelt es sich um ein Softwareprodukt, das, wie bei Internet-Software üblich, relativ kurzen Entwicklungszyklen unterliegt und damit eventuell instabil sein kann. Da der Reverse-Proxy aber dann ein »Single Point of Access« ist, kann das verheerende Auswirkungen auf die Verfügbarkeit der Anwendung haben.
Client Request
Client Client
Request Distriburtion
Client Cluster Server 1
Cluster Server 2
LAN
LAN
Network
Cluster Reverse Proxy
Cluster Server 3
Cluster Information Cluster Server 4
Abbildung 14.2: Reverse-Proxy-Cluster
Der WebFarm-Standard sieht Reverse-Proxy-Clusters nur bei Anwendungen vor, die keine 99% Ausfallsicherheit verlangen, und nur dann, wenn eine getestete Proxy-Software verwendet wird, die nicht immer dem aktuellen Stand angepasst wird, sondern nur, wenn wieder entsprechende Tests durchgeführt wurden, angepasst wird.
215
Sandini Bib 14 Cluster-Management
14.1.3
Director-(Hardware)-Cluster
Die wohl performanteste Methode des Handlings der Cluster-Kontrolle sind so genannte Directors, die aus dem Routing-Bereich kommen und von verschiedenen Herstellern angeboten werden. Dabei wird mit einem Regelwerk auf zunächst relativ niedriger Ebene festgelegt, wann welche Adresse mit welcher Anfrage auf welchen Cluster-Rechner weitergeleitet wird. Zusätzlich verfügen die meisten Directors heute auch über die Möglichkeit, Cluster-Protokolle zu verwenden und so auch die Cluster-Maschinen bzw. deren Belastung mit in die Routing-Entscheidung einzubeziehen. Neue Betriebssysteme auf den Directors ermöglichen es, auch die meisten Funktionen eines Reverse-Proxys abzudecken. Auf jeden Fall sind SessionHandling, URL-Redirection usw. heute bereits Standardfunktionen. Hardware-Directors sind auf jeden Fall die performanteste Methode, einen Cluster in Richtung der Außenwelt zu erzeugen. Diese Variante wird im WebFarmStandard bevorzugt.
Client Request
Client Client
Request Distriburtion
Client Cluster Server 1
Cluster Server 2
LAN
LAN
Network
Cluster Director
Cluster Server 3
Cluster Information Cluster Server 4
Abbildung 14.3: Director-Cluster
14.2 Content-Management für Cluster Das Content-Management für Cluster ist in einem System mit herkömmlichem (durch Publishing basiertes) Content-Management sehr komplett. Das WebFarm-Content-Management-Konzept unterstützt die Idee von Clustern von vornherein, so dass es, wenn die Anwendungen entsprechend entwickelt
216
Sandini Bib Content-Management für Cluster
wurden, auf Informationsseite auf keinen Fall zu Schwierigkeiten kommt, wenn nachträglich ein Cluster eingerichtet werden soll. Die verschiedenen Informationskategorien werden unterschiedlich abgedeckt.
14.2.1
Dynamische Informationen
Werden von Anwendungen selbst erzeugt oder durch Application-Server dargestellt. Für Anwendungen gelten die weiter unten aufgeführten Entwicklungsvoraussetzungen. Werden nur Informationen generiert, ist es auf jeden Fall wichtig, dass eine Belastung der Datenquelle ab einem gewissen Niveau ebenfalls zu verteilen ist. Die Notwendigkeit eines Clustering entsteht oft durch die Verwendung von vielen dynamischen Informationen, die für jeden Abruf neu in Echtzeit generiert werden. Es ist auf jeden Fall zu überlegen, ob diese Informationen derart echtzeitbehaftet sind oder ob es einen anderen Weg gibt, diese darzustellen und so eventuell das teure Erstellen eines Clusters vermeiden zu können. Da dynamische Informationen nicht direkt durch das Content-Management erstellt werden, sondern lediglich die entsprechenden Seiten und Programme als statische Informationen auf die Server einfließen, trifft für die Verteilung dieser Anwendung der Absatz dieses Kapitels über statische Informationen zu. Die Anwendungen müssen, wie bereits erwähnt, entsprechend entwickelt sein.
14.2.2
Semi-dynamische Informationen
Die Integration von Informationen, die über das Content-Pool-System des WebFarm«-Content-Management-Systems verbreitet werden, in eine ClusterUmgebung ist sehr trivial, da das Content-Pool-System der WebFarm-Standard ohnehin dafür vorgesehen ist, Informationen mehrfach zu verteilen und diese nicht nur einmal einzusetzen. Im Gegensatz zu anderen Anwendungen, die mit den gleichen Informationen aus dem Content-Pool versorgt werden, muss bei einem Cluster die Konfiguration für jedes System nicht neu erstellt werden, da sich die Systeme ja nicht an Informationen, Struktur oder Layout unterscheiden sollen. Die Konfigurationen werden also nur einmal erstellt und dann kopiert, auf diese Weise sind alle Systeme gleich konfiguriert und werden mit eingehenden Informationen gleich umgehen. Es bietet sich hier an, eine Mastermaschine im Cluster zu etablieren, von der aus automatisch in regelmäßigen Abständen die Konfigurationen an die anderen Systeme verteilt werden, wenn das eingesetzte Content-Pool-System nicht ohnehin ein Cluster-Modell unterstützt. Der Content-Pool seinerseits wird so konfiguriert, dass er an alle Systeme des Clusters exakt die gleichen Informationen verteilt.
217
Sandini Bib 14 Cluster-Management
Mit diesen einfachen Aktionen ist eine vollständige clusterfähige Informationsanwendung realisierbar. Es ist also offensichtlich, dass bei diesem Vorgehen auch nachträglich ein Cluster für eine Anwendung eingesetzt werden kann.
14.2.3
Statische Informationen
Statische Informationen werden ebenfalls durch das Content-ManagementSystem der WebFarm, in diesem Fall über das Redaktionssystem, verwaltet. Es geht hierbei sowohl um statisches HTML/XML als auch um Programme, Vorlagen usw. Diese Informationen werden vom Redaktionssystem ganz normal in den Redaktionsprozess übergeben und auf ein Pre-Production-System zur Freigabe bereitgestellt. Sind die Informationen freigegeben, wird das System für einen Cluster so konfiguriert, dass es die Informationen nicht nur an eine oder zwei Maschinen weiterkopiert, sondern an alle Maschinen des Clusters. Auch hier sind alle Systeme im Cluster von Content-Management-Seiten gleich konfiguriert, so dass keine Differenzen im lokalen Handling der eingehenden Packages auftreten können. Auch hier ist es offensichtlich, dass es sich um eine einfache Konfiguration handelt, die sehr schnell durchgeführt werden kann.
Agent Cluster Server 1 LAN Cluster Director
LAN
Cluster Server 2
Send Static Update Cluster Server 3
Cluster Server 4
Content Management Server Permit
Publish to PRE-Production Editor
Replicate to Cluster Publish to Production
Abbildung 14.4: Übergabe statischer Informationen
Das Content-Management-Konzept der WebFarm-ermöglicht es, also auch für diese Gruppe von Informationen einfach auf einen Cluster umzusteigen, wenn dies erforderlich wird, ohne dass dabei komplexe Regeln beachtet werden müssen oder bestehende Anwendungen bzw. deren Funktionalität beeinflusst würden.
218
Sandini Bib Entwicklungsvoraussetzungen für Cluster
14.3 Entwicklungsvoraussetzungen für Cluster Die grundsätzlichen Entwicklungsvoraussetzungen für Cluster sind mit dem normalen Backup-Verfahren der WebFarm bereits gegeben, da diese auch für das Backup-Verfahren benötigt werden. Es gibt zusätzliche Punkte, die im Cluster zu beachten sind, die aber keine weitere Verschärfung oder Einschränkung bei der Entwicklung bedeuten.
14.3.1
Datengenerierung
Werden Daten von der Anwendung generiert, so ist die Anwendung auf jeder Maschine des Clusters dafür verantwortlich, dass diese Daten auch den anderen Servern des Clusters zur Verfügung stehen, damit tatsächlich ein Sharing für die Benutzer in mehreren Sessions erreicht werden kann. Dies geschieht entweder, indem ein zentrales Datenbank-Backend von allen Servern des Clusters verwendet wird, oder indem lokale Applikationsdatenbanken so konfiguriert sind, dass sie sich in Echtzeit mit anderen Datenbanken des Clusters abgleichen. Dies kann z.B. über die in der Datenbank implementierten Replikationsfunktionen oder durch definierte Stored-Procedures geschehen. Handelt es sich bei den generierten Informationen nicht um Datenbankinformationen, sondern z.B. um Textdateien, oder andere Informationen, müssen sie in regelmäßigen Abständen zwischen den Servern auf Anwendungsebene synchronisiert werden und zu einem gemeinsamen Datenbestand zusammengefasst werden.
14.3.2
Vernetzungsvoraussetzungen
Es ist sinnvoll, auf absolute Vernetzungen in einer Cluster-Umgebung zu verzichten. Diese Vernetzungen und Verweise sind in HTML, XML-Applet oder Skript-Code zu finden. Viele Programme und Applets verwenden absolute Pfade, um auf jeden Fall ihre Anwendung wieder zu verwenden, was bei Clustern, da die tatsächliche Verbindung zu einem Rechner in einem bestimmten Adressbereich aufgebaut wird, sehr schnell zu Session-, aber auch zu Permission-Problemen führen kann. Der WebFarm-Standard schreibt darum vor, nur relative Links zu verwenden, die keinen Rechnernamen enthalten. Ist dies nicht zu umgehen, muss auf jeden Fall über die Cluster-Management-Maschine gegangen werden, die entsprechende Weiterleitungsmechanismen z.B. für Datenbankverbindungen bereithält und die Sessionmaschine des Benutzers identifizieren kann.
219
Sandini Bib
Sandini Bib
15
Secure-Content
Die Bereitstellung von sicherem Content ist in allen Fällen der Geschäftsabwicklung oder der direkt das Primärgeschäft unterstützenden Anwendungen ein Thema. Es sollte eher zu viel gesichert werden als zu wenig. Im Folgenden sollen die Verfahren zur Absicherung von Content nach dem WebFarm-Standard dargestellt werden, die leicht in die Applikationsentwicklung eingebracht werden können.
15.1 Sicherheitsverfahren Grundsätzlich muss zwischen zwei verschiedenen Bereichen in der Absicherung von Anwendungen unterschieden werden, die sich ergänzen, aber auch unabhängig voneinander eingesetzt werden können. Diese sind die Identifikation und die Berechtigung von Benutzern und die Sicherung der Übertragung.
15.1.1
Authentifizierung
Die Benutzer in einer Anwendung müssen einwandfrei identifiziert werden und mit Berechtigungen entsprechend ihrer Rolle versehen werden. Die Verfahren zur Authentifizierung und vor allem zum Management von Rechten usw. sind bereits in den entsprechenden Infrastrukturkapiteln des WebFarmStandards beschrieben. Hier geht es mehr um die Einbettung dieser Verfahren oder die Bestimmung spezieller Verfahren in die Entwicklung von Webanwendungen. Zertifikatsverfahren sind sehr einfach zu implementieren, da hier einfach eine Verbindung vom Webserver zum LDAP-Server hergestellt werden muss und die entsprechenden Rollenberechtigungen in den Webservern selbst konfiguriert werden müssen. Sollen weitere Verfahren, z.B. Challenge-Response-Verfahren, eingesetzt werden, so unterstützt der WebFarm-Standard keine PIN/TAN-Verfahren, da diese keinen echten Sicherheitsgewinn bringen. Es können Verfahren mit Hardwaregenerierung von Kennungen eingesetzt werden, wie z.B. SecureID. Bei diesen Verfahren übersendet der Server zusätzlich zur Zertifkat- oder Passwortidentifikation einen Challenge an den Benutzer, der diesen dann zusammen mit persönlichen Daten (Passwort oder bei Hochsicherheitsver-
221
Sandini Bib 15 Secure-Content
fahren Fingerabdruck oder Ähnliches) in ein Gerät (SecureID = ScheckkartenTaschenrechner) überträgt, eine Antwort erhält, die zurück an den Server übertragen wird und somit diese Verbindung legalisiert. Der Einsatz solcher Verfahren kann zur legalen Konfirmation von digitalen Unterschriften eingesetzt werden oder auch in echten Hochsicherheitsbereichen, die sich direkt auf das Primärgeschäft im größeren Umfang auswirken können. Für normale Sicherheitsanwendungen ist es zu überlegen, ob derart teure Lösungen zusätzlich verwendet werden sollen. Der WebFarm-Standard rät von der Verwendung von hardwarebasierten Verfahren wie ME-Chip, Fingerprint, ChipCard usw. in Massenanwendungen ab, solange diese Verfahren nicht in einem normalen Computer integriert sind. Bei internen Anwendungen und eventuell auch bei Anwendungen bei Partnern, bei denen die Ausstattung und Konfiguration von Arbeitsstationen kontrolliert werden kann, können solche Verfahren für Hochsicherheitsanwendungen eingesetzt werden.
15.1.2
Übertragungssicherung
Diese Sicherheit wird im Allgemeinen durch Verschlüsselung erreicht. Wenn eine Verbindung zu Partnern entstehen soll, ist auch an eine VPN-Lösung zu denken, wenn keine Punkt-zu-Punkt-Sicherheit vorgesehen ist, sondern lediglich die Abdeckung von Risiken, wenn Verbindungen über andere Leitungsnetze geschickt werden. Es ist keine Sicherheit, wenn es sich um dedizierte Leitungen handelt, da auch diese abgehört werden können, darum muss auch auf solchen Leitungen nach dem WebFarm-Standard Verschlüsselung betrieben werden.
15.2 Verschlüsselung Da Verschlüsselung ein wesentlicher Bestandteil der Übertragung von sicheren Daten ist und die Verbindung zum Angebot möglichst offen gehalten werden soll, ist es sinnvoll, für alle Anwendungen mit Sicherheitsrelevanz und alle Übertragungen, die kritische Daten enthalten, ein Standardverfahren zu verwenden, das modular aufgebaut ist. Hier bietet sich SSL (Secure Socket Layer), entwickelt von Netscape, an, das unterschiedliche Verschlüsselungsalgorithmen verwenden kann und entsprechend der kryptographischen Entwicklung in den Server- und Browserprodukten angepasst wird. Die Verwendung dieses Verfahrens hat den Vorteil, dass keinerlei Konfigurationen beim Client vorgenommen werden müssen. Die bekannten Exportrestriktionen der USA greifen im Falle dieser Anwendung nicht, da Unternehmen der Finanzbranche mit den letzten Gesetzesnovellen von den Exportrestrik-
222
Sandini Bib SSL
tionen befreit wurden. Es bleibt allerdings festzuhalten, dass in anderen Ländern Verschlüsselung durchaus ein juristisches Problem darstellt, was bei einer global eingesetzten Anwendung durchaus ein Problem sein kann; als Beispiel seien hier sowohl als Frankreich und Australien auch China genannt. Bei massivem Einsatz in diesen Gebieten werden Ausnahmegenehmigungen beantragt werden müssen, die üblicherweise für den Finanzsektor problemlos zu erhalten sind.
15.3 SSL Im Folgenden soll eine kurze Beschreibung der Prinzipien von SSL, Secure Socket Layer, gegeben werden, die das grundsätzliche Verständnis für die Verschlüsselungsschicht stärkt. Es ist wichtig zu beachten, dass SSL nicht abhängig von Verschlüsselungsalgorithmen ist; diese können modular eingesetzt und ausgetauscht werden, wenn zukünftige Entwicklungen bisherige Algorithmen als unsicher erscheinen lassen. SSL legt, wie der Name andeutet, eine zusätzliche Schicht zwischen die zuverlässige Transportebene TCP/IP und die Anwendungsebene (HTTP, Telnet, FTP,…). Von »oben« gesehen ist sie transparent, d.h., die Anwendungsprogramme können ohne große Modifikation auf eine sichere Übertragung zugreifen. Für die Transportschicht erscheint SSL hingegen als Anwendungsebene: HTTP
FTP
SMTP Usw.
SSL Sockets
Secure Virtual Connection Unsecure TCP/IP Connection
Hardware
Physical Connection
HTTP
FTP
SMTP Usw.
SSL Sockets Hardware
Abbildung 15.1: Verbindung über SSL
Der Verbindungsaufbau Der Verbindungsaufbau läuft in vier Schritten ab: 1. In der so genannten »Hello«-Phase baut der Client eine Verbindung zum Server auf und teilt ihm mit, welche Kryptographie-Algorithmen er unterstützt. 2. Der Server wählt daraus ein Public-Key-, ein Privat-Key- und ein HashVerfahren aus und teilt sie dem Client mit. Gleichzeitig sendet der Server ein Zertifikat, das unter anderem den öffentlichen Schlüssel des Servers enthält. Mit Hilfe des Zertifikats kann der Client überprüfen, ob die Antwort tatsächlich vom gewünschten Server stammt.
223
Sandini Bib 15 Secure-Content
3. Der Client bzw. Browser generiert automatisch einen Sitzungsschlüssel (Session-Key) für einen Datenaustausch per Private-Key-Verfahren. Aus Geschwindigkeitsgründen werden standardmäßig symmetrische Verfahren verwendet (hier: RC4). Der dazu notwendige Schlüsselaustausch wird durch Verschlüsselung mit den in den Zertifikaten enthaltenen öffentlichen Schlüsseln geschützt. Diesen chiffrierten Schlüssel schickt der Client an den Server. 4. In der abschließenden Authentifizierungsphase authentifiziert der Client den Server, indem er ihm eine Reihe von mit dem Sitzungsschlüssel chiffrierten zufälligen Testnachrichten schickt, die der Server nur dann korrekt dechiffrieren und bestätigen kann, wenn es sich um den »echten« Server handelt. In einem optionalen Schritt kann der Server auf vergleichbare Weise den Client authentifizieren. Die Client-Authentifikation funktioniert nur dann, wenn der Client über ein offiziell registriertes Zertifikat verfügt. Damit ist der Initiale Verbindungsaufbau abgeschlossen. Anschließend können die eigentlichen Daten geschützt übertragen werden. Die Verschlüsselung im Einzelnen Die zu übertragenden Daten werden in kleine Blöcke geteilt, die auch noch komprimiert werden können, was die Schnelligkeit und auch die kryptographische Sicherheit weiter erhöht. Die Blocknummer wird hinzugefügt und durch Hash-Funktion eine Prüfsumme angehängt. Abschließend wird mit dem symmetrischen Verfahren, üblicherweise dem schnellen Stromchiffrierer RC4, verschlüsselt. Sollten beim Empfang Ungereimtheiten auftreten (falsche Prüfsummen), wird dies auf eine versuchte Manipulation zurückgeführt, da dem Übertragungsprotokoll TCP/IP vertraut wird. Daraufhin wird eine verschlüsselte Fehlernachricht versandt und die Verbindung abgebrochen.
15.3.1
Andere Verfahren
Grundsätzlich existieren andere Verfahren zur Verschlüsselung, die auch standardisiert sind, z.B. HTTP. Diese Verfahren sind allerdings nicht verbreitet und scheiden daher im WebFarm-Standard für eine allgemeine Verwendung im Rahmen von Applikationsprojekten aus. Sollte die Verschlüsselung, die standardmäßig in Browsern und Servern eingebaut ist, aus wichtigen Gründen nicht ausreichen, was sicherlich nicht oft der Fall ist, sollte eine eigene Applikation mit eigenständiger Verschlüsselung z.B. in Java verwendet werden. Es ist hier unbedingt darauf zu achten, eine getestete Implementation des Verschlüsselungsverfahrens zu verwenden, sprich keine Eigenentwicklung anzustoßen, da die meisten Sicherheitslücken in Verbindungen keine Probleme der Verschlüsselungsverfahren, sondern der Implementation sind.
224
Sandini Bib SSL
Es ist auf jeden Fall zu beachten, dass der verwendete Zufallszahlenalgorithmus für die Qualität des Verfahrens ausschlaggebend ist.
15.3.2
Empfehlung
Da die Verfügbarkeit von Verfahren neben der Sicherheit ein entscheidender Erfolgsfaktor ist, schlagen wir vor, das SSL-Verfahren zur Verschlüsselung einzusetzen. Dieses Verfahren ist der allgemein anerkannte Standard im Bereich der Neuen Medien und ist flexibel und skalierbar auch für zukünftige Anwendungen im Bereich der Kryptographie. Es ist zukünftig darauf zu achten, dass aktuelle Versionen von Servern und Browsern verwendet und ggf. die Zertifikate und Schlüssel der Browser und Server ausgetauscht werden, wenn diese mit größerer Schlüssellänge verfügbar werden. Sollten zusätzliche Verfahren erforderlich werden, sollten Standardbibliotheken, wie z.B. bei RSA Inc. erhältlich, eingesetzt werden, um keine Risiken in der Implementierung einzugehen. Solche Verfahren müssen in plattformunabhängigen Applikationen eingestellt werden, da hier nicht auf die Verfügbarkeit von Standardsoftware vertraut werden kann. Momentan bedeutet das eine Entwicklung eigener Verfahren unter Java. Es ist unbedingt abzuwägen, ob eine Eigenentwicklung tatsächlich erforderlich ist, da sie große Sicherheitsrisiken birgt. Womöglich sollte, wie bereits betont, das Standardverfahren eingesetzt werden.
Abbildung 15.2: Zusammenhang zwischen Security-Level und Authentication-Method
225
Sandini Bib
Sandini Bib
16
HTML-Style
Dieses Dokument zeigt in kurzen Stichpunkten auf, wie guter HTML-Code aussehen sollte. Hierbei wird nicht auf Generatoren Rücksicht genommen. Die im WebFarm-Standard empfohlenen HTML-Generatoren entsprechen in großen Zügen diesen Vorgaben und erzeugen somit HTML, das auch bei der Nachbearbeitung von Anwendungen noch verständlich ist. Der Text ist absichtlich stichpunktartig gehalten, weil er eindeutige und einfache Regeln aufstellen will, die es einem Entwickler einfach ermöglichen, HTML zu schreiben, das durch die im WebFarm-Standard-Content-Management-System enthaltenen Prüfungen nicht zurückgewiesen wird. Diese klaren Stichpunkte sind für den Entwickler bei der Arbeit gedacht und sollen keine Philosophie des Programmierens aufstellen.
16.1 Tags und Attribute Alle Tags und Attribute sollten komplett großgeschrieben werden. Dadurch wird das Navigieren im HTML-Source-Code stark vereinfacht. <TITLE> Testtitel Testtext
Alle Attributwerte, die durch HTML fest vorgegeben sind, sollen komplett in Großbuchstaben geschrieben werden.
Alle String-Attribute sollten in doppelte Anführungszeichen eingeschlossen werden.
Alle HTML-Tags sollten, auch wenn das viele HTML-Browser nicht erfordern, soweit vorhanden, mit ihren entsprechenden Endtags versehen werden. - Das ist der 1. Punkt
- Das ist der 2. Punkt
227
Sandini Bib 16 HTML-Style
Alle selbst definierten Attribute sollten, soweit möglich, komplett kleingeschrieben sein.
Alle Protokollnamen sollten kleingeschrieben sein.
Eine sinnvolle Einrückung des Source-Codes hilft beim Navigieren. Überschrift | Überschrift |
Daten | Daten |
Sonderzeichen sollten auf jeden Fall mit den URI-Encodings dargestellt werden. Sonderzeichen, die nicht so darstellbar sind, sollten nicht verwendet werden. " Ü " Das ist ein großer Umlaut U in doppelten Anführungsstrichen.
Eingefügte Kommentare sollten vom Autor oder Generator gekennzeichnet sein
HTML-Spezifika bestimmter Browser sollten nur, wenn unbedingt notwendig, verwendet werden. Der