Post on 15-May-2015
description
D I P L O M A R B E I TErhebung von Anforderungen an asynchrone Web-Anwendungen
Institut: Hochschule Albstadt-Sigmaringen
Studiengang: Kommunikations- und Softwaretechnik
Unternehmen: Gute Aussicht Kommunikations GmbH
Erstbetreuer: Prof.'in Dr. Ute Matecki
Zweitbetreuer: Prof. Dr. Tobias Häberlein
Autor: Tobias Scheible
Zeitraum: Wintersemester 2008 / 2009
Hochschule Albstadt-Sigmaringen
Jakobstraße 6
DE-72458 Albstadt
http://www.hs-albsig.de
Gute Aussicht Kommunikations GmbH
Schmiechastr. 50
DE-72459 Albstadt
http://www.gute-aussicht.de
Tobias Scheible
Matrikelnummer 71774
tobias@scheible.eu
Zusammenfassung
Die Nutzung des Internets hat in den letzten Jahren stark zugenommen.
Besonders asynchrone Web-Anwendungen werden von immer mehr
Menschen häufig verwendet. Der stetig wachsende Nutzerkreis führt dazu,
dass die Anforderung der Benutzer an die Web-Anwendung verstärkt in den
Fokus treten.
Im Rahmen dieser Diplomarbeit werden die Anforderungen an asynchrone
Web-Anwendungen erhoben. Die Erhebung der Erwartungen der Benutzer an
eine gute Web-Anwendung erfolgt in einem Fragebogen.
Die Antworten der Teilnehmer werden gesammelt, analysiert und daraus
werden die Anforderungen an asynchrone Web-Anwendungen bestimmt. Aus
diesen Anforderungen werden neue praktische Konzepte entwickelt, die in
einer Web-Anwendung eingesetzt werden können.
Um die Ergebnisse dieser Arbeit zu validieren, werden einige Konzepte
exemplarisch in einem Prototypen umgesetzt. Dieser Prototyp demonstriert
eine sichere Anmeldung, sowie eine effiziente Möglichkeit zur Bedienung
einer Benutzeroberfläche.
Abstract
The use of the Internet has rapidly increased within the last years. Especially
asynchronous web applications are being used more often by a growing
number of people. With growing numbers user requirements became more
important.
In this thesis requirements for asynchronous web applications are investigated
using a survey.
Responses are collected and analysed. As a result requirements for
asynchronous web applications are determined. Based on these requirements
new practical concepts are developed which can be used in web applications.
To validate results from this thesis some new concepts are implemented in a
prototype. This prototype shows a secure login and an example of an efficient
user interface.
Stichwörter / Keywords
AES, AJAX, Benutzerfreundlichkeit, CSS, Diffie-Hellman, Encryption,
Geschwindigkeit, HTML, HTTP(S), Interface, JavaScript, MySQL, Oberfläche,
Performance, PHP, Rich Internet Application (RIA), SHA, Security, Sicherheit,
Software as a Service, Usability, Verschlüsselung, Web-Anwendung, Web-
Application, Web-Browser, Web-Server
Danksagung
Zu Beginn dieser Diplomarbeit möchte ich mich bei einigen Personen
bedanken, die direkt oder indirekt zum Entstehen dieser Diplomarbeit bei-
getragen haben. Sie haben mich auf die eine oder andere Weise alle
hervorragend unterstützt.
Zunächst danke ich Frau Prof.'in Dr. Ute Matecki für die Betreuung und die
konstruktiven Gespräche während dieser Arbeit und Herrn Prof. Dr. Tobias
Häberlein für seine freundliche Bereitschaft, bei dieser Arbeit als Zweit-
betreuer zu fungieren.
Des Weiteren möchte ich mich bei Herrn Michael Löffler bedanken, der es
möglich gemacht hat, dass ich diese Arbeit mit Unterstützung der Gute
Aussicht Kommunikations GmbH erstellen konnte.
Mein besonderer Dank geht an Manuela Bräuning, die sich als Lektorin
betätigte und so manche Formulierung auch für Nichtinformatiker
verständlich gemacht hat. Ebenso möchte ich Jan Scheible und Silke
Hagenloch danken, die mir wertvolle Tipps und Anregungen gegeben haben,
um die Aspekte dieser wissenschaftlichen Arbeit besser herauszuarbeiten.
Ein weiterer Dank geht an meine Eltern, die dieser Arbeit den letzten Schliff
gegeben haben.
Im ersten Teil meiner Arbeit war ich außerdem auf die Mitarbeit und das
Engagement vieler weiterer Personen angewiesen, die sich die Zeit genommen
haben, den Fragebogen zu beantworten. Ohne ihre Mitarbeit wäre diese
Diplomarbeit um einige Facetten ärmer.
Abschließend möchte ich mich nochmals bei all denjenigen bedanken, die
hinter mir und meiner Arbeit standen.
Tobias Scheible, Albstadt den 22. Februar 2009
Eidesstattliche Erklärung
Hiermit erkläre ich, dass ich die vorliegende Diplomarbeit selbstständig ver-
fasst und keine anderen als die angegebenen Quellen und erlaubten Hilfsmittel
benutzt habe. Weiter erkläre ich, die Diplomarbeit in gleicher oder ähnlicher
Form keiner anderen Prüfungsbehörde vorgelegt zu haben.
Albstadt, den 22. Februar 2009
Tobias Scheible
Inhaltsverzeichnis
1 Einleitung 1
1.1 Motivation.....................................................................................................................2
1.2 Zielsetzung...................................................................................................................3
1.3 Kooperation..................................................................................................................3
1.4 Aufbau der Arbeit.........................................................................................................4
2 Grundlagen 6
2.1 Das Medium Internet....................................................................................................6
2.1.1 Entwicklungsgeschichte...............................................................................8
2.1.2 TCP/IP-Protokollstack..................................................................................9
2.1.3 HTTP-Kommunikation..................................................................................9
2.2 Web-Techniken...........................................................................................................11
2.2.1 HTML...........................................................................................................11
2.2.2 Cascading Style Sheets..............................................................................12
2.2.3 JavaScript...................................................................................................12
2.2.4 PHP.............................................................................................................13
2.2.5 MySQL.........................................................................................................13
2.3 Abgrenzung der Techniken........................................................................................14
2.4 Web-Anwendungen....................................................................................................14
2.4.1 Application Service Provider......................................................................15
2.4.2 AJAX............................................................................................................15
2.4.3 Rich Internet Application............................................................................16
2.5 Software as a Service.................................................................................................17
2.5.1 Vorteile von SaaS........................................................................................17
2.5.2 Nachteile von SaaS.....................................................................................18
2.5.3 Studien und Prognosen .............................................................................19
3 Analyse 21
3.1 Fragebogen zum Thema Web-Anwendungen ...........................................................21
3.1.1 Aufbau........................................................................................................21
3.1.2 Durchführung.............................................................................................23
3.1.3 Auswertung.................................................................................................23
3.1.4 Fazit.............................................................................................................34
3.2 Anforderungen an Web-Anwendungen......................................................................35
3.2.1 Kompatibilität.............................................................................................35
3.2.2 Benutzerfreundlichkeit...............................................................................36
3.2.3 Geschwindigkeit..........................................................................................38
3.2.4 Sicherheit....................................................................................................39
4 Konzeption 40
4.1 Kompatibilität.............................................................................................................40
4.1.1 Unterstützung durch unterschiedliche Web-Browsern.............................40
4.1.2 Optimale Darstellung bei allen Auflösungen.............................................44
4.1.3 Verwendung kompatibler Schriften...........................................................44
4.2 Benutzerfreundlichkeit..............................................................................................46
4.2.1 Übersichtliche Oberfläche..........................................................................47
4.2.2 Intuitive Navigation.....................................................................................49
4.2.3 Verständliche Hinweise..............................................................................51
4.2.4 Selbsterklärende Funktionalitäten............................................................52
4.2.5 Visuelle Rückmeldung über den aktuellen Zustand..................................53
4.3 Geschwindigkeit.........................................................................................................55
4.3.1 Laden von Web-Anwendungen...................................................................56
4.3.2 Reaktion auf Eingaben................................................................................60
4.3.3 Verarbeitung von Anfragen.........................................................................63
4.4 Sicherheit...................................................................................................................75
4.4.1 Verschlüsselter Austausch von Daten.......................................................75
4.4.2 Sicheres Speichern von Daten...................................................................80
5 Umsetzung 81
5.1 Ladevorgang...............................................................................................................81
5.1.1 Komprimierung der Dateien......................................................................82
5.1.2 Asynchrones Laden von Inhalten...............................................................84
5.2 Anmeldung.................................................................................................................84
5.2.1 Schlüsselaustausch....................................................................................84
5.2.2 Verschlüsselte Übertragung der Daten.....................................................85
5.3 Benutzeroberfläche....................................................................................................87
5.4 Interaktion..................................................................................................................89
6 Zusammenfassung und Ausblick 92
6.1 Zusammenfassung.....................................................................................................92
6.2 Ausblick......................................................................................................................93
A - Fragebogen 95
B - Auswertung der Fragebögen 102
C - Gesammelte Freitext-Antworten 105
D - Datensammlung auf CD 107
Literaturverzeichnis 108
Hilfsmittel 112
1 EinleitungAuf den folgenden Seiten wird auf die Motivation und auf den Rahmen der
Ausarbeitung des Themas eingegangen. Weiterhin wird der Aufbau dieser
Diplomarbeit vorgestellt.
„Nie wieder installieren“, so lautete die Überschrift eines Artikels, der Ende
Oktober 2008 in der Zeitschrift c't zu lesen war [vgl. 1 S.118]. Wie in diesem
Artikel erwähnt, ist zu beobachten, dass für die populärsten Anwendungen,
z.B. Textverarbeitung, bereits mehrere Web-Varianten existieren. Große
IT-Unternehmen wie Microsoft, Google und Apple arbeiten an Web-Lösungen
oder sind damit bereits am Markt vertreten. Somit erscheinen immer neue
Web-Anwendungen, die zunehmend mit lokalen Anwendungen konkurrieren.
Asynchrone Web-Anwendungen wie Google Maps, ein online Kartendienst
von Google Inc., sind Bestandteil des Alltags geworden. Sie werden heute ganz
selbstverständlich genutzt, um sich zum Beispiel sein Urlaubsziel vorab
anzuschauen. Früher wurde hierfür ein Atlas aus dem Schrank geholt.
Viele Internet-Neulinge sehen die Verwendung von Web-Mailern zum
Abholen ihrer E-Mails als selbstverständlich an. Ihnen ist dabei gar nicht
bewusst, dass sie dabei das Prinzip der traditionellen E-Mail-Programme, den
Download der E-Mails auf den lokalen Rechner, umgehen.
Einleitung 1
Nutzung von Web-Anwendungen
„Nie wieder installieren“
Abbildung 1.1 Statistik über verwendete E-Mail-Anwendungen [2]
Verwendung von Web-Mailer
Die Statistik in Abbildung 1.1 zeigt welche Anwendungen zum Lesen von
E-Mails verwendet werden. Dabei befindet sich mit 29% der Web-Mailer von
Yahoo! auf dem ersten Platz [vgl. 2].
Dies sind nur ein paar Beispiele, die den Wandel der Nutzung von lokalen
Anwendungen hin zu Web-Anwendungen verdeutlichen. In einigen Bereichen
wie Aktualität und Datenmengen sind Web-Anwendungen den traditionellen
lokal installierten Anwendungen überlegen.
1.1 Motivation
Laut einer aktuellen Studie der Bitkom [vgl. 3] besitzen 75% der Haushalte in
Deutschland einen Internet-Anschluss. Bei den meisten Bürgern ist somit die
Verwendung des Internets fest in den Alltag integriert. Aber auch für die
Kommunikation von Unternehmen ist das Medium E-Mail nicht mehr
wegzudenken. Außerdem verkaufen immer mehr Unternehmen ihre Produkte
auch im Internet [vgl. 4].
Mit dem Erscheinen des Begriffs Web 2.0 hat sich die Wahrnehmung des
Mediums Internet verändert. Bei Web 2.0 handelt es sich nicht um eine neue
Technik, sondern vielmehr um eine Philosophie.
In der Vergangenheit konnten im Internet nur Medieninhalte verbreitet
werden. Im Laufe der Zeit hat sich jedoch unter anderem durch das Web 2.0
ein Mitmach-Web entwickelt. Jeder Benutzer übernimmt hierbei eine aktive
Rolle, indem er Inhalte selbst erstellen und bearbeiten kann. Als typische
Beispiele für asynchrone Web-Anwendungen seien hier Flickr [5], YouTube [6]
und Delicious [7] genannt. Durch das Web 2.0 sind Web-Anwendungen in
unser tägliches Leben integriert worden, ohne dass dies besonders wahr-
genommen wurde.
Bei einer einfachen Anfrage bei einer Suchmaschine wird bereits eine Web-
Anwendung genutzt. Gerade die schnelle Entwicklung und einfache
Verbreitung von Web-Anwendungen lässt ihre Zahl explosionsartig ansteigen.
Die einfache Steuerung und sofortige Verfügbarkeit stellt einen Paradigmen-
wechsel bei der Benutzung von Software dar.
Einleitung 2
Internet-Anschlüsse
Web 2.0
Mitmach-Web
Wandel in der Nutzung
eingesetzteWeb-Anwendungen
Zusätzlich wird mit der Weiterentwicklung der Techniken und der Bandbreite
der Internetanschlüsse eine immer größere Ähnlichkeit zu lokal installierten
Anwendungen erreicht. Trotzdem müssen spezifische Anforderungen an
asynchrone Web-Anwendungen beachtet werden.
1.2 Zielsetzung
Das Ziel dieser Diplomarbeit ist die Erhebung von Anforderungen an
asynchrone Web-Anwendungen. Um diese Anforderungen aufzustellen, soll
eine Umfrage in Form eines Fragebogens durchgeführt werden. In dem
Fragebogen sollen die Teilnehmer verschiedene Eigenschaften zum Thema
Web-Anwendungen bewerten.
Aus den erhobenen Anforderungen sollen anschließend Konzepte zu deren
Erfüllung entwickelt werden. Abschließend sollen einige Konzepte ausgewählt
werden, um diese exemplarisch mit der Umsetzung eines Prototyps zu
validieren.
1.3 Kooperation
Die Erstellung dieser Diplomarbeit wurde durch die Gute Aussicht
Kommunikations GmbH unterstützt. Der Sitz des Unternehmens ist in
Albstadt im Zollern-Albkreis. Dieses Unternehmen ist primär im Bereich
Marketing, mit Schwerpunkt auf Markenkommunikation, tätig. Dazu gehört
auch der Bereich Web mit der Entwicklung von Web-Seiten und
Web-Anwendungen.
Durch die Entwicklung eines webbasierten Projektverwaltungsprogramms
hatte der Autor bereits während des Praxissemesters die Möglichkeit
Erfahrungen im Bereich Web-Anwendung zu sammeln (siehe Abbildung 1.2).
In der Gute Aussicht Kommunikations GmbH ist die Affinität zum Thema
besonders groß, da bereits seit Längerem mehrere Web-Anwendungen
eingesetzt werden, wie z.B. die Agenturverwaltungs-Software TROI [8] und die
Medienverwaltung Heiler Media Manager [9].
Einleitung 3
moderne Web-Anwendungen
Erhebung von Anforderungen
Ausarbeitung von Konzepten
WerbeagenturGute Aussicht
vorhandene Erfahrungen
1.4 Aufbau der Arbeit
Im nächsten Kapitel dieser Diplomarbeit erfolgt die Erläuterung der
technischen Grundlagen, die von Web-Anwendungen verwendet werden.
Weiterhin wird ein kurzer Einblick in die geschichtliche Entwicklung des
Internets und der Web-Anwendungen gegeben.
Im darauf folgenden Kapitel wird der Aufbau des Fragebogens erläutert, der
zur Erhebung der Meinung der Teilnehmer eingesetzt wurde. Anschließend
werden die Ergebnisse der Umfrage vorgestellt und bewertet. Aus diesen
erarbeiteten Ergebnissen werden dann die Anforderungen an asynchrone
Web-Anwendungen abgeleitet.
Aus den aufgestellten Anforderungen werden im darauf folgenden Kapitel
praktische Konzepte erstellt.
Abschließend werden in der Umsetzung einige Konzepte exemplarisch in
einem Prototypen umgesetzt.
Einleitung 4
Grundlagen
Analyse
Konzeption
Prototypische Umsetzung
Abbildung 1.2 Eigenentwicklung einer webbasierten Projektverwaltung
Die schematische Abbildung 1.3 verdeutlicht den Aufbau dieser Diplomarbeit.
Einleitung 5
Abbildung 1.3 Schematischer Aufbau der Diplomarbeit
2 GrundlagenIn diesem Kapitel werden die technischen Grundlagen dieser Diplomarbeit
beschrieben. Dazu wird zunächst in einem kurzen geschichtlichen Abriss die
Entwicklung des Internets und der Web-Anwendungen sowie der verwendeten
Technologien beschrieben.
2.1 Das Medium Internet
Das Bundesamt für Sicherheit in der Informationstechnik (BSI) beschreibt den
Begriff Internet wie folgt: „Das Wort "Internet" besteht aus zwei Teilen. Der
erste Teil "inter" bedeutet im lateinischen "zwischen" und der zweite Wortteil
"net" steht als Abkürzung für "networking"“ [vgl. 10].
Die Abbildung 2.1 zeigt vier Beispiele für die Anbindung von Heimanwendern
an das Netz der Service Provider. Die Provider können mit beliebig vielen
anderen Providern vernetzt sein.
Grundlagen 6
Abbildung 2.1 Typische Verbindung zum Internet bei Heimanwendern [frei nach 11]
der Begriff Internet
Das Internet ist somit ein globales Netzwerk, das aus vielen einzelnen
Rechnernetzen besteht. Die Verbindung zwischen einzelnen Rechnern besteht
in der Regel nicht auf direktem Wege, sondern läuft über mehrere
Knotenpunkte.
Um einen visuellen Eindruck der Komplexität und Funktionsweise des
Internets zu bekommen, zeigt die folgende Abbildung 2.2 ungefähr 30% des
IP-Bereichs von 192.0.0.1 bis 223.255.255.254.
Die Länge der Verbindung zwischen zwei Knoten stellt die Dauer der
Signallaufzeit dar. Die Farbe zeigt die Länderzugehörigkeit: dunkelblau steht
für .net, .ca, .us; grün für .com, .org; rot für .mil, .gov, .edu; gelb für .jp, .cn, .tw,
Grundlagen 7
Abbildung 2.2 Visualisierung von verschiedenen Routen durch Teile des Internets [11]
Visualisierung des Internets
globales Netzwerk
au, .de; magenta für .uk, .it, .pl,. fr; gold für .br, .kr, .nl und weiß für bisher
nicht genannte Top-Level-Domains.
Die Etablierung der Datenübertragung über das Mobilfunknetz hat dazu
geführt, dass das Internet heute praktisch fast überall verfügbar ist. Außerdem
existieren heutzutage immer mehr internetfähige Endgeräte. Laut BSI gibt es
derzeit in Deutschland circa 42 Millionen Internetnutzer [vgl. 10], dies
entspricht einer prozentualen Abdeckung von 75% aller Haushalte [vgl. 3].
Laut einer Analyse eines Teams chinesischer Wissenschaftler folgt das
Wachstum des Internets einer Gesetzmäßigkeit und verläuft nicht planlos. Die
Beobachtung von wichtigen Kommunikationsknoten hat ergeben, dass sich
die Größe des Internets alle 5,32 Jahre verdoppelt [vgl. 12].
Umgangssprachlich wird der Begriff Internet häufig als Synonym für das World
Wide Web (kurz Web) verwendet, da dies der am meisten genutzte Dienst ist
[vgl. 11]. Weitere Dienste sind z.B. E-Mails (POP3/SMTP), Datenaustausch
(FTP) und Remote-Zugriff (Telnet/SSH). Die Kommunikation erfolgt hierbei
über technisch normierte Internetprotokolle, die durch die Request for
Comments (RFCs) der Internet Engineering Task Force (IETF) definiert sind.
2.1.1 Entwicklungsgeschichte
Das Internet entstand 1969 aus dem vom US-Verteidigungsministerium
entwickelten ARPANET. Es wurde damals für die Vernetzung von
Forschungseinrichtungen genutzt. Durch den Einsatz des TCP/IP-Protokolls
ab dem Jahre 1982 hat sich daraus das Internet entwickelt [vgl. 13 S.35].
Zu Beginn stellten die E-Mail-Dienste die meist genutzte Funktion des jungen
Internets dar. Das Web wurde 1989 von Tim Berners-Lee im CERN bei Genf
entwickelt. Ab 1990 konnte das Internet auch für kommerzielle Zwecke
genutzt werden [vgl. 13 S.36]. Als 1993 der erste grafikfähige Web-Browser
Mosaic veröffentlicht wurde, wuchs das Internet durch das World Wide Web
deutlich an.
Die nachfolgende Abbildung 2.3 zeigt den Web-Browser Mosaic [vgl. 14]. Es
handelt sich dabei um die letzte Version, die im Januar 1997 erschienen ist.
Grundlagen 8
mobile Datenübertragung
gleichmäßiges Wachstum
WWW als Synonym für das Internet
ARPANET
World Wide Web
erster Web-Browser Mosaic
2.1.2 TCP/IP-Protokollstack
Das Transmission Control Protocol/Internet Protocol (TCP/IP) wird durch ein
Referenzmodell definiert. In diesem Modell ist es möglich, dass zwei Rechner
über mehrere Zwischenstationen miteinander kommunizieren. Die
Datenübertragungstechnik und das Übertragungsmedium sind nicht definiert,
damit verschiedene Netztypen miteinander verbunden werden können. Um
die Kommunikationsaufgaben zu untergliedern, wurden mehrere Schichten
definiert.
2.1.3 HTTP-Kommunikation
HTTP (Hypertext Transfer Protocol) ist ein zustandsloses Protokoll, das Daten
über ein Netzwerk überträgt. Es nutzt die Anwendungsschicht des
zuverlässigen Transportprotokolls TCP auf. Die HTTP-Schicht wird durch den
Web-Browser angesprochen. Es ist das meist genutzte Protokoll, um Daten im
Grundlagen 9
Protokollstack TCP/IP
Hypertext Transfer Protocol
Abbildung 2.3 Screenshot des Web-Browsers NCSA Mosaic™ in der Version 3.0 [14]
Web zu übertragen. Es können beliebige Daten ausgetauscht werden, indem im
Header das Feld content-type entsprechend gesetzt wird.
Wird eine Web-Seite in einem Web-Browser aufgerufen, wird ein Header mit
der Ziel-URL an deren Web-Server geschickt. Dieser nimmt den Request
entgegen und bearbeitet ihn [vgl. 15 S.18]. Als Antwort schickt der Web-Server
die Response mit einem Header und dem Content der gewünschten Seiten an
den Web-Browser zurück. Wenn Daten zum Web-Server übermittelt werden,
erfolgt die Übertragung per GET- oder POST-Methode. Bei der GET-Methode
werden die Daten mit in der URL übertragen, bei der POST-Methode befinden
sich die Daten im Header.
2.1.3.1 Verschlüsselte HTTP-Kommunikation
Hypertext Transfer Protocol Secure (HTTPS) ist der Standard für die
verschlüsselte Übertragung von Daten zwischen Web-Browser und Web-
Server. Eine zusätzliche Verschlüsselung der Daten geschieht mittels Secure
Sockets Layer / Transport Layer Security (SSL/TLS). Technisch gesehen wird
eine zusätzliche Schicht zwischen HTTP und TCP definiert [vgl. 16].
Aus diesem Verfahren resultiert, dass der HTTP-Header nicht mehr von
Stationen zwischen Web-Server und Web-Browser gelesen werden kann. Diese
Tatsache führt dazu, dass Proxys zum Chachen oder virtuelle Hosts nicht mehr
verwendet werden können [vgl. 16].
Grundlagen 10
Hypertext Transfer Protocol Secure
Hypertext Transfer Protocol
Das Unternehmen SoftEd Systems [17] veranschaulicht die Funktionsweise
von HTTPS anhand der Abbildung 2.4.
2.2 Web-Techniken
In den nachfolgenden Abschnitten werden einige Techniken vorgestellt, die für
Web-Anwendungen verwendet werden.
2.2.1 HTML
Die Hypertext Markup Language (HTML) ist eine textbasierte Auszeichnungs-
sprache zur Strukturierung von Inhalten in Dokumenten. HTML ist der
Standard-Dokumenten-Typ im Web. Er wird von allen Web-Browsern
dargestellt. HTML enthält neben den vom Web-Browser angezeigten Inhalten
einer Web-Seite zusätzliche Angaben in Form von Meta-Informationen. Diese
umfassen z.B. die Information über die im Text verwendete Sprache, den
Grundlagen 11
Abbildung 2.4 Ablauf einer Verbindung über HTTPS zwischen Web-Browser und Web-Server [17]
Hypertext Markup Language
Autor oder fassen den Inhalt des Textes kurz zusammen [vgl. 15 S.18]. Der
HTML-Standard wird vom World Wide Web Consortium (W3C)
weiterentwickelt. Die aktuelle Version von HTML hat die Versionsnummer
4.01, und die Version 5 befindet sich in der Entwicklung. Am 10. Juni 2008
wurde der zweite Arbeitsentwurf veröffentlicht [vgl. 18].
2.2.2 Cascading Style Sheets
Cascading Style Sheets (CSS) sind eine Ergänzung des HTML-Standards.
SELFHTML [19] beschreibt CSS so: „Es handelt sich dabei um eine Sprache
zur Definition von Formateigenschaften einzelner HTML-Elemente.“ . Die
Gestaltung einer Web-Seite wird dadurch nicht direkt in den HTML-
Elementen vorgenommen, sondern in einem extra Bereich. Der eigentliche
Inhalt wird dadurch von der optischen Gestaltung getrennt. Eine häufig
eingesetzte Funktion bei CSS ist die Möglichkeit, die Definitionen in eine
externe Datei auszulagern und in mehrere HTML-Seiten einzubinden.
2.2.3 JavaScript
JavaScript wird hauptsächlich für die Manipulation der Dokument-Struktur in
Web-Browsern eingesetzt. Sie wird durch SELFHTML wie folgt beschrieben:
„JavaScript ist kein direkter Bestandteil von HTML, sondern eine eigene
Programmiersprache. Diese Sprache wurde jedoch eigens zu dem Zweck
geschaffen, HTML-Autoren ein Werkzeug in die Hand zu geben, mit dessen
Hilfe sich Web-Seiten optimieren lassen.“ [vgl. 20].
Die erste Version dieser Script-Sprache wurde am 18. September 1995
veröffentlicht, sie hieß zu diesem Zeitpunkt noch LiveScript und wurde im
Navigator 2.0 von Netscape verwendet. Der Name JavaScript entstand
nachdem, LiveScript um eine Schnittstelle für den Zugriff auf Java-Applets
erweitert wurde. Dazu ging Netscape eine Kooperation mit Sun Microsystems
ein. Im Juni 1997 wurden die Grundelemente von JavaScript durch die
European Computer Manufacturers Association als ECMA-262 (ECMAScript)
standardisiert [vgl. 21].
Grundlagen 12
Cascading Style Sheets (CSS)
JavaScript
ECMA-262
2.2.4 PHP
PHP ist eine Skript-Sprache mit einer an die Programmiersprache C
angelehnten Syntax. Sie dient hauptsächlich zur Erstellung von dynamischen
Web-Seiten oder Web-Anwendungen. 1995 entwickelte Rasmus Lerdorf die
Skript-Sprache PHP. Es war ursprünglich als Ersatz für eine Sammlung von
Skripten der Programmiersprache Perl gedacht.
Der Name PHP ist ein rekursives Backronym für „PHP: Hypertext
Preprocessor“. Ursprünglich stand die Abkürzung jedoch für „Personal Home
Page Tools“ [vgl. 22].
Der PHP-Code wird auf einem Web-Server verarbeitet (siehe Abbildung 2.5).
Daher wird der Quelltext nicht an den Web-Browser geschickt, sondern von
dem PHP-Interpreter auf dem Web-Server ausgeführt. Die Ausgabe des
PHP-Interpreters wird nach der Verarbeitung an den Web-Browser geschickt.
2.2.5 MySQL
MySQL ist eine Open-Source-Software für ein SQL-Datenbank-System. Sie
wird vor allem in Verbindung mit PHP auf Web-Servern eingesetzt. Genauer
gesagt handelt es sich bei MySQL um ein relationale Datenbank, die für viele
Betriebssysteme und Architekturen verfügbar ist. Das Datenbank-System
erlaubt die Erstellung mehrerer Datenbanken, in denen wiederum eine
Vielzahl von Tabellen zur Speicherung von Daten verwaltet werden können.
Die maximale Größe der Tabellen wird im Prinzip nur durch das
Betriebssystem limitiert [vgl. 23].
Grundlagen 13
PHP: Hypertext Preprocessor
Datenbank-System MySQL
serverseitige Interpretation
2.3 Abgrenzung der Techniken
Auf Grund des zeitlich begrenzten Rahmen dieser Diplomarbeit kann leider
nicht auf das Thema „Sicherheit des Web-Servers, von PHP und MySQL“
eingegangen werden. Außerdem werden keine Techniken behandelt, die eine
Web-Browser-Erweiterung benötigen. Deshalb werden beispielsweise
Java-Applets und Adobe Flash nicht als mögliche Lösungsansätze behandelt.
2.4 Web-Anwendungen
Mit dem Erwerb einer Anwendung, die für die lokale Installation auf dem
Rechner gedacht ist, wird nur eine Lizenz zur Nutzung der Anwendung
erworben und nicht die Anwendung selbst. Die Anwendung wird von einem
Anbieter bereitgestellt. Der Benutzer einer Anwendung kann diese lokal auf
einen dafür vorgesehenen Rechner unter Beachtung der Nutzungslizenz
installieren. Der Käufer muss die Installation und eventuell notwendige
Aktualisierungen der Anwendung selbst vornehmen. Dabei muss er auch den
Rechner bereitstellen, auf dem die Anwendung lokal laufen soll.
Eine Web-Anwendung hingegen wird auf einem Web-Server betrieben. Der
Zugriff auf die Web-Anwendung und die Interaktion mit ihr erfolgen über
einen Web-Browser. Durch den Zugriff über das Web spielt es für den
Benutzer keine Rolle, wo sich der Web-Server mit der Web-Anwendung
befindet. Außerdem ist es unwichtig von welchem Rechner aus mit dem
Web-Browser auf die Anwendung zugegriffen wird. Dadurch wird nur eine
minimale Infrastruktur benötigt. Ferner kümmert sich der Anbieter um die
Bereitstellung der Infrastruktur der Web-Anwendung.
In der Anfangszeit des Webs gab es noch keine Überlegungen in Richtung
Web-Anwendungen. Eine Seite wurde statisch vom Web-Server ausgegeben, so
wie sie dort abgespeichert wurde [vgl. 15 S.19]. Erst mit der Erweiterung des
Web-Servers durch ein Common Gateway Interface (CGI) konnten Anfragen
dynamisch bearbeitet werden. Das heißt, dass der Web-Server die Response
bei jedem Request neu generiert und so auf Daten von einem Web-Browser
reagieren kann. Dies war geschichtlich gesehen der Grundstein für die
Entwicklung von Web-Anwendungen.
Grundlagen 14
lokal installierte Anwendungen
Web-Anwendungen
dynamische Web-Seiten
Rahmen dieser Arbeit
2.4.1 Application Service Provider
Einer der ersten Ansätze, um Anwendungen über das Internet verfügbar zu
machen, ist das Prinzip des Application Service Providers (ASP) [vgl. 24 S.15].
Dabei wurden zwei Varianten angewendet: zum einen die Weiterleitung der
Oberfläche zum Benutzer und zum anderen eine spezielle Client-Variante der
Anwendung.
Bei der erstgenannten Variante wird die Anwendung auf einem Server
ausgeführt und die Oberfläche auf einen Client weitergeleitet. Der Client erhält
eine Anwendung, mit der er die weitergeleitete Oberfläche darstellen kann.
Dies hat den Nachteil, dass dieses Verfahren eine hohe Bandbreite erfordert.
Das wiederum führt zu einer langsamen Reaktionszeiten der Anwendungen.
Weiterhin besteht der Nachteil, dass die Anwendung meistens nicht
gleichzeitig von mehreren Benutzern genutzt werden (keine Mandanten-
fähigkeit).
Bei der zweiten Variante existiert immer eine Server- und eine Client-Version
der Anwendung. Dies hat den Vorteil, dass nur gezielt Daten übertragen
werden müssen und keine Oberflächenelemente. Der Nachteil ist, dass eine
vollständige Installation der Anwendung erforderlich ist. Der Unterschied zu
lokal installierten Anwendungen liegt darin, dass die Daten zentral auf einem
Server und nicht lokal bereitgestellt werden [vgl. 24 S.16].
2.4.2 AJAX
Der Begriff Asynchronous JavaScript and XML (AJAX) wurde maßgeblich von
Jesse James Garrett durch seinen Aufsatz „AJAX: A New Approach to Web
Applications“ geprägt [vgl. 25]. Er hat darin bereits vorhandene Technologien
miteinander verknüpft und damit eine asynchrone Datenübertragung zwischen
einem Web-Browser und einem Web-Server ermöglicht. Sein Konzept macht
es möglich, eine HTTP-Anfrage mit JavaScript innerhalb einer Web-Seite
durchzuführen. Es wird dadurch nicht die komplette Seite, sondern nur ein
kleiner Teil der Seite neu geladen [vgl. 15 S.22]. AJAX kann als Hauptfaktor
für die veränderte Wahrnehmung des Web im Zuge von Web 2.0 gesehen
werden. Eines der ersten populären Beispiele war der online Kartendienst
Grundlagen 15
Application Service Providers (ASP)
weitergeleiteteOberflächen
Client mit Server-Zugriff
Asynchronous JavaScript and XML
Google Maps [vgl. 26]. Hier wurde AJAX für die Aktualisierung des
Kartenmaterials während dem Verschieben des Kartenausschnitts eingesetzt.
Die Abbildung 2.6 zeigt das Modell einer traditionellen Web-Anwendung
(links) im Vergleich mit einer AJAX-Web-Anwendung (rechts).
2.4.3 Rich Internet Application
Der Begriff Rich Internet Application (RIA) bezeichnet eine Web-Anwendung
mit einer intuitiven bedienbaren Benutzeroberfläche. Hierbei werden
Funktionalitäten, die dem Nutzer von lokalen Anwendungen her bekannt
sind, auf die Oberflächen der Web-Anwendungen übertragen. Beispiele hierfür
dazu sind Drag-and-Drop und Kontextmenüs.
Grundlagen 16
Abbildung 2.6 Eine normale Web-Anwendung im Vergleich zu einer AJAX-Web-Anwendung [27]
Rich Internet Application
Die RIA´s unterscheiden sich von herkömmlichen Web-Seiten durch eine
flüssigere Bedienung, da viele Änderungen im Web-Browser ausgeführt
werden. So werden zum Beispiel CSS-Manipulationen mit JavaScript
verwendet, um Elemente ein- und auszublenden.
2.5 Software as a Service
Der Begriff Software as a Service (SaaS) steht für die Realisierung einer
Anwendung als Web-Anwendung. Es handelt sich dabei um ein Geschäfts-
modell, das den Vertrieb und den Support einer Anwendung über das Web
beinhaltet.
SaaS kann als das Nachfolgerkonzept des Application Service Providers
(siehe Abschnitt 2.4.1) gesehen werden, da die Anwendungen bei SaaS speziell
für den Web-Browser entwickelt werden [vgl. 24 S.15]. Unternehmen
verstehen SaaS als eine Alternative zu lokalen Installationen. Die interne
IT-Kapazitäten sowie externe Dienstleistungen lassen sich besser und
effizienter nutzen und erweitern. Kleine und mittelständische Unternehmen
entlasten damit ihre Finanzen [vgl. 28]. Der Begriff SaaS fasst die Bereiche
Vermarktung, Bereitstellung, Hosting, Weiterentwicklung, Aktualisierung
sowie den Support für eine speziell für das Web entwickelte Anwendung
zusammen.
2.5.1 Vorteile von SaaS
Unternehmen ohne eigene IT-Abteilung profitieren von SaaS, indem sie keine
Installation und Wartung der Anwendungen durchführen müssen. Eine
SaaS-Lösung kann auf fast jedem Rechner mit einer Internet-Verbindung und
einem Web-Browser genutzt werden. Für größere Unternehmen mit eigener
IT-Abteilung besteht der Vorteil von SaaS darin, dass sich die IT-Spezialisten
auf das Kerngeschäft konzentrieren können [vgl. 24 S.15].
SaaS bietet den Vorteil, dass es kundenspezifisch skaliert werden kann, da
Module nach Bedarf gebucht werden können. Weiterhin sind die Kosten
niedriger, da mehrere Kunden die gleiche Infrastruktur nutzen. Durch ein
flexibles Abrechnungssystem werden nur die Leistungen bezahlt, die wirklich
genutzt werden. Dadurch wird eine Überlizenzierung vermieden und selten
Grundlagen 17
Unterschied zu Web-Seiten
Software as a Service
Nachfolgerkonzept von ASP
Entlastung für die IT-Abteilung
kundenspezifische Skalierung
genutzte Anwendungen können über ein Pay-per-Use Modell genutzt werden
[vgl. 24 S.15].
Mit SaaS fallen keine anfänglichen Investitionskosten für die sonst benötigten
Lizenzen und Hardware an, stattdessen fallen kontinuierlich Mietgebühren an
[vgl. 24 S.15]. Dieses Modell schont somit die Liquidität eines Unternehmens.
Die Unternehmen werden weiter entlastet, da sich der Anbieter um die
Bereitstellung kümmert. Der Anbieter aktualisiert die Anwendung und sorgt
für die Datensicherung [vgl. 29].
Durch die Nutzung des Web-Browsers ist keine zusätzliche Installation
notwendig und die Anwendung kann sofort eingesetzt werden. Dadurch, dass
Web-Browser zwischenzeitlich auch auf Mobiltelefonen eingesetzt werden,
können SaaS Anwendungen häufig auch mobil genutzt werden [vgl. 29].
Durch den Betrieb in einem externen Rechenzentrum müssen keine neuen
Server aufgestellt werden. Die Clients müssen nur die Leistungen für einen
Web-Browser aufbringen. Diese Vorgehen sorgen für ein umweltbewusstes
Verhalten der Unternehmen. SaaS springt somit auf den aktuellen Trend
„Green-IT“ auf [vgl. 24 S.16].
2.5.2 Nachteile von SaaS
Die Sicherheit ist eines der Hauptthemen, wenn es um Web-Anwendungen
geht [vgl. 30 S.5]. Durch die ständige Präsenz von Meldungen über
Sicherheitslücken in den Medien in Bezug auf Web-Browser und immer
wieder neuen Datenschutzverletzungen, besteht eine große Skepsis gegenüber
Web-Anwendungen.
Einen weiteren kritischen Punkt stellen in diesem recht neuen Markt die
Vertragsgestaltungen dar, da keine Standard-Verträge existieren und noch
wenig Erfahrungen gesammelt werden konnten [vgl. 24 S.18].
Die Verfügbarkeit von Web-Anwendungen ist ein weiteres wichtiges Thema für
SaaS [vgl. 30 S.6]. Auf der Anwender-Seite wird das Risiko verkleinert, da nur
ein Internet-Anschluss und Web-Browser zu Verfügung stehen muss. Die
Verfügbarkeit der Internet-Verbindung zum Anbieter und die Hardware des
Web-Servers erhöhen die Gefahr eines Ausfalls, da mehrere Komponenten
verwendet werden als bei einer lokal installierten Anwendung [vgl. 31 S.4].
Grundlagen 18
niedrigere Investitionskosten
keine Installation notwendig
weniger Energieverbrauch
Sicherheit von Web-Anwendungen
keine langjährige Erfahrung
Verfügbarkeit der Dienstleistung
Die Abbildung 2.7, aus einem Whitepaper von Host Europe GmbH über die
Verfügbarkeit von Web-Applikationen, zeigt eine Tabelle mit den potenziellen
Bedrohungen durch mögliche Vorfälle.
Ein weiterer Nachteil ist, dass die Daten außerhalb des Unternehmens liegen
und damit ein direkter Zugriff nicht möglich ist. Dadurch besteht eine hohe
Abhängigkeit gegenüber des Anbieters. Meldet dieser Insolvenz an, kann dies
zu erheblichen Problemen führen. Weiterhin können Daten nicht einfach in
andere Anwendungen übernommen werden [vgl. 24 S.18].
2.5.3 Studien und Prognosen
Das Unternehmen Experton Group führte die Analyse „Considerations for
SaaS Adoption“ durch, um die Tauglichkeit von SaaS als Alternative zu
lokalen Anwendungen zu analysieren. Das Ergebnis lautet, dass speziell für
kleine und mittelständische Unternehmen mit begrenzten finanziellen und
Grundlagen 19
Abbildung 2.7 Tabelle mit möglichen Vorfällen die die Verfügbarkeit einschränken [31]
externe Lagerung der Daten
mittelständische Unternehmen
personellen Ressourcen SaaS eine gute Möglichkeit bietet, um Kapazitäten
bedarfsgerecht und kostengünstig zu beziehen [vgl. 28].
Laut einer Studie von Saugatuck Technology haben 40% aller Unternehmen in
Deutschland Ende 2008 eine SaaS Lösung im Einsatz. Bis 2010 soll dieser
Anteil auf bis zu 65% steigen [vgl. 32].
Nach Erkenntnissen der Marktforschung von Gartner Inc. haben die Umsätze
mit SaaS im Jahr 2008 weltweit 6,4 Milliarden US-Dollar erreicht. Im
Vergleich zum Jahr 2007 entspricht dies einem Anstieg von 27%. Die
Analysten erwarten in den kommenden vier Jahren mehr als eine Verdopplung
des Marktvolumens auf 15 Milliarden US-Dollar. Die Prognose baut auf zwei
wesentlichen Fakten auf. Die Geschäftsmodelle für SaaS sind mittlerweile so
weit gereift, dass sie überall eingesetzt werden können. Und die anfänglichen
Bedenken der Benutzer hinsichtlich Sicherheit, Reaktionszeiten und
Verfügbarkeit konnten abgebaut werden [vgl. 33].
So erwarten die Analysten von Pierre Audoin Consultants (PAC) für
Deutschland, dass das Geschäft mit SaaS bis 2012 um durchschnittlich 24%
pro Jahr zulegen wird. „Allerdings gehen diese Prognosen von einem noch sehr
niedrigen Niveau aus.“ schreibt die Computerwoche in einem Artikel über
diese Studie [vgl. 34].
Die zitierten Studien und Prognosen zeigen, dass für SaaS für die Zukunft ein
großes Potential gesehen wird.
Grundlagen 20
2010 werden 65% SaaS nutzen
6,4 Milliarden USD Umsatz 2008
24% Wachstum pro Jahr bis 2012
3 Analyse
In diesem Kapitel wird als Erstes der Aufbau des Fragebogens erläutert. Im
Anschluss daran erfolgt die Beschreibung der Umfragedurchführung und die
Darstellung der Ergebnisse. Daraufhin werden aus diesen Ergebnissen die
Anforderungen an Web-Anwendungen abgeleitet.
3.1 Fragebogen zum Thema Web-Anwendungen
Eine gute Methode um herauszufinden, was Benutzer von Web-Anwendungen
erwarten, ist sie direkt zu fragen. Zu diesem Zweck wurde ein Fragebogen
entwickelt (siehe Anhang A), der im folgenden Abschnitt detailliert dargestellt
wird.
3.1.1 Aufbau
Der Fragebogen unterteilt sich in fünf aufeinander folgende Teile (siehe
Abbildung 3.1).
Analyse 21
Durchführung einer Umfrage
fünf verschiedene Teile
Abbildung 3.1 Aufbau des Fragebogens
Im ersten Teil, den allgemeinen Fragen, werden statistische Daten abgefragt.
Dazu wurden die Teilnehmer unter anderem nach Geschlecht und Alter
befragt. Aus diesen Angaben wurde die Verteilung der Umfrage-teilnehmer im
Vergleich zur Gesamtbevölkerung herausgearbeitet.
Mit der Frage nach der Computererfahrung, der verbrachten Zeit am Rechner
und der Zeit, die davon im Internet verbracht wird, soll die Computer- bzw.
Internet-Affinität bestimmt werden.
Im zweiten Teil, den Fragen zur Web-Nutzung, werden allgemeine Fragen zum
Verhalten des Nutzers in Bezug auf das Internet gestellt.
Die Art des Internet-Anschlusses wird erfragt, um die Verbreitung von
Breitbandanschlüssen nachvollziehen zu können. Die Frage nach der Nutzung
von mobilen Endgeräten für den Zugriff auf das Internet als auch die Frage
nach den verwendeten Web-Browsern sind für die Kompatibilität von
Interesse.
Die Frage nach der Nutzung von Web-Anwendungen und der Nutzung
kostenpflichtiger Angebote soll auf das Thema SaaS hinführen. Im nächsten
Teil, den Fragen zu Web-Anwendungen, wird indirekt nach einer Verwendung
zu SaaS gefragt. Hierzu wird erst einmal abgeklärt, ob grundsätzlich
Web-Anwendungen im Unternehmen vorhanden sind. Des Weiteren wird der
Umfrageteilnehmer gefragt, ob er sich vorstellen könnte, Daten im Internet zu
speichern, Anwendungen im Web-Browser zu nutzen und Anwendungen zu
mieten anstatt zu kaufen. Mit den Antworten auf diese Fragen wird das
Potential für die Nutzung von SaaS bei den Umfrageteilnehmern bestimmt.
Der darauf folgende Teil, Fragen zu Eigenschaften von Software, beinhaltet
zwei Freitextfragen, die sich beim Benutzer nach positiv und negativ
empfundenen Eigenschaften von Software erkundigen.
Im letzten Teil, Bewertung von Software-Funktionalitäten, wird der
Umfrageteilnehmer gebeten, verschiedene Funktionalitäten zu bewerten, die in
sechs verschiedene Kategorien eingeteilt sind.
Die einzelnen Fragen des Fragebogens wurden nach einem ersten Testlauf bei
der Gute Aussicht Kommunikations GmbH so formuliert, dass der Begriff
„Web-Anwendung“ nicht direkt verwendet wurde. Beim Testlauf hatte sich
Analyse 22
allgemeine Fragen
Web-Nutzung
Web-Anwendungen
Eigenschaften von Software
Bewertung von Funktionalitäten
gezeigt, dass selbst in einem IT-aktiven Unternehmen nicht jeder Befragte mit
dem Begriff „Web-Anwendung“ etwas anfangen konnte.
3.1.2 Durchführung
Für die Umfrage wurden zwei Varianten des Fragebogens erstellt, da eine
konventionelle und eine Online-Umfrage durchgeführt werden sollten.
Der konventionelle Fragebogen wurde persönlich an Mitarbeiter unter-
schiedlicher Firmen und an Mitarbeiter der Hochschule Albstadt-Sigmaringen
verteilt.
Die Firmen haben unterschiedliche Schwerpunkte und befinden sich in
unterschiedlichen Regionen Süddeutschlands. Zunächst einmal haben die
Mitarbeiter der Gute Aussicht Kommunikations GmbH dieses Vorhaben
unterstützt. Des Weiteren haben einige Mitarbeiter eines mittelständischen
Software- und Systemhauses, Mitarbeiter einer Forschungsabteilung eines
großen Konzerns sowie Mitarbeiter eines international arbeitenden
Industrieunternehmens an der Umfrage teilgenommen.
Die Online-Variante des Fragebogens wurde in Form einer PDF-Datei
realisiert. Er wurde in erster Linie an Studenten des 8. Semesters im
Studiengang Kommunikations- und Softwaretechnik an der Hochschule
Albstadt-Sigmaringen verteilt. Außerdem wurden mit dieser Online-Variante
auch Personen befragt, die nicht persönlich angesprochen werden konnten.
Diese Variante des Fragebogens kann direkt am Rechner mit Adobe Acrobat
Reader ausgefüllt werden. Dazu wurde der Fragebogen in OpenOffice.org als
PDF-Datei exportiert und mit Adobe Acrobat weiter bearbeitet. Die Textfelder
wurden dort in PDF-Eingabefelder umgewandelt und als ausfüllbares
Dokument für Adobe Acrobat Reader exportiert.
3.1.3 Auswertung
Der Fragebogen wurde insgesamt von 58 Personen vollständig beantwortet.
Davon wurden 39 Fragebögen der konventionellen Art (in Papierform)
zurückgegeben und 19 Fragebögen kamen per E-Mail zurück.
Es wurden fast alle Fragebögen (39 von 42) ausgefüllt zurückgegeben, die in
Papierform verteilt wurden. Die hohe Rücklaufquote wurde wahrscheinlich
Analyse 23
PDF-Variante
zwei Varianten des Fragebogens
beteiligte Firmen
58 beantwortete Fragebögen
hohe Rücklaufquote
durch die direkte Ansprache der Umfrageteilnehmer erreicht. Außerdem
erhielten die Umfrageteilnehmer ein kleines Dankeschön in Form eines
Päckchens Gummibärchen, die an den Fragebogen angeheftet waren. Als
zusätzlicher Anreiz wurde den Umfrageteilnehmern angeboten, dass sie, wenn
sie ihre E-Mail Adresse auf dem Fragebogen hinterlassen, eine Kopie der
Auswertung des Fragebogens erhalten.
Die erhobenen Daten wurden in einer Tabelle gesammelt (Anhang B), um sie
statistisch auszuwerten. Für die Auswertung der Antworten der Freitextfragen
aus dem vierten Teil wurden diese in einer Datei gesammelt. Anhang C zeigt
einen Ausschnitt daraus.
In den nächsten fünf Abschnitten wird jeweils ein Teil des Fragebogens
ausgewertet. Es folgt zunächst die Auswertung der allgemeinen Fragen.
3.1.3.1 Allgemeine Fragen
Im ersten Teil des Fragebogens werden allgemeine Daten erhoben, um die
Teilnehmer in Kategorien einzuteilen.
Anteil weiblicher Teilnehmer 34,5% (20)
Anteil männlicher Teilnehmer 65,5% (38)
durchschnittliches Alter 29,6 Jahre
durchschnittliche Computererfahrung 14,5 Jahre
durchschnittliche Zeit am Computer pro Tag 8,1 Stunden
davon im Internet 3,2 Stunden
höchster Abschluss Schule 37,9% (22)
höchster Abschluss Ausbildung 6,9% (4)
höchster Abschluss Studium 55,2% (32)
Tabelle 3.1 Ergebnisse des ersten Teils des Fragebogens
Die Verteilung des Geschlechts spiegelt sich nicht in der Bevölkerungs-
verteilung der Bundesrepublik Deutschland wider. Laut dem Statistischen
Bundesamt Deutschland [vgl. 35] sind 49% der deutschen Bevölkerung
männlich und 51% weiblich (Stand 2007). An der Umfrage haben jedoch
65,5% männliche und 33,5% weibliche Personen teilgenommen (siehe Tabelle
3.1). Außerdem liegt auch das Durchschnittsalter der Umfrageteilnehmer mit
Analyse 24
Auswertung in einer Tabelle
Alter und Geschlecht
allgemeine Fragen
einem Wert von 29,6 Jahren deutlich unter dem deutschen Durchschnittsalter
von 43 Jahren.
Die Computererfahrung ist im Vergleich zum Durchschnittsalter sehr hoch, da
sie ungefähr die Hälfte des Altersdurchschnitts beträgt. Dieser Wert spiegelt
sich im gesellschaftlichen Hintergrund der Teilnehmer wider, da der
Fragebogen an Studenten der Hochschule sowie hauptsächlich an
Unternehmen verteilt wurde, die im Bereich der Softwareentwicklung tätig
sind. Aus der langjährigen Computererfahrung lässt sich auf die Qualität der
Antworten schließen, die sich zumeist auf einem hohen Niveau befinden und
damit die Aussagekraft der Antworten unterstreichen.
Die durchschnittlich verbrachte Zeit am Computer entspricht der gesetzlichen
Regelarbeitszeit. Dieser hohe Wert kommt zustande, da nach der gesamten am
Rechner verbrachten Zeit gefragt wurde. Dies umfasst sowohl den
geschäftlichen als auch den privaten Bereich. Das Ergebnis bestätigt nochmals
die Annahme, dass die Qualität der Antworten auf Grund der Erfahrung und
der am Rechner verbrachten Zeit sehr hoch sind.
Bei der Auswertung hat sich gezeigt, dass die Frage, wie viele Stunden man
davon im Internet verbringt, missverständlich formuliert war. Die Frage wurde
in zwei unterschiedlichen Weisen interpretiert: ein Teil der Befragten ging
davon aus, dass nach der Zeit gefragt wurde, die der Computer online ist, der
andere Teil der Befragten gab an, wie lange ein Programm mit Internet-Zugriff
genutzt wurde. Dies hat sich daran gezeigt, dass die Antworten von genau der
Zeit, die am Computer verbracht wurde, bis zu einem Bruchteil dieser Zeit,
variierten. Auf Grund dieser unterschiedlichen Interpretationen wurde das
Ergebnis dieser Frage nicht weiter beachtet.
Bei der Antwort auf die Frage nach dem höchsten Bildungsabschluss spiegelt
sich der hohe Anteil an Studenten, Praktikanten und Auszubildenden an der
Umfrage wider. Dies zeigt sich in der Anzahl der Umfrageteilnehmer, bei
denen der Schulabschluss der höchste Bildungsabschluss bisher ist. Der Grad
des Bildungsabschlusses wurde ebenfalls in der Umsetzung nicht beachtet, da
für diese Werte kein Kriterium generiert werden konnte. Außerdem sollte eine
Anwendung von möglichst vielen Benutzern bedient werden können,
unabhängig von deren Bildungsstand.
Als Nächstes folgt die Auswertung der Internet-Nutzung im privaten Umfeld.
Analyse 25
Computer-erfahrung
Zeit am Rechner
Zeit im Internet
Bildungs- abschluss
3.1.3.2 Internet-Nutzung
Um die Verfügbarkeit der Internet-Anschlüsse und die Verbreitung der
verschiedenen Web-Browser besser einschätzen zu können, wurden die
Teilnehmer in diesem Abschnitt des Fragebogens zu diesen Punkten befragt.
keinen Anschluss 5,2% (3)
Modem 0,0% (0)
ISDN 3,5% (2)
UMTS/GPRS 8,6% (5)
DSL 84,5% (49)
Kabel / Satellit 3,5% (2)
sonstige 0,0% (0)
nicht gewusst 3,5% (2)
Tabelle 3.2 Ergebnisse des zweiten Teils des Fragebogens (Anschluss Art)
Die Antworten (siehe Tabelle 3.2) bestätigen die in Deutschland generell zu
beobachtende Tendenz, dass immer mehr Haushalte mit einem breitbandigem
Internet-Anschluss ausgestattet sind. Nur 5,2% aller Befragten gaben an, im
privaten Bereich keinen Internet-Anschluss zu besitzen. Auf Grund der
Möglichkeit, mehrere Anschlüsse zu nutzen, waren in der Beantwortung dieser
Frage Mehrfachnennungen möglich. Dies hat dazu geführt, dass eine
Gesamtsumme von über 100% erreicht wurde. Die Verteilung der Anschluss-
arten spiegelt ebenfalls das allgemeine Bild [vgl. 3] wider, dass breitbandige
DSL-Anschlüsse am häufigsten vorkommen. Langsamere Verbindungen wie
ISDN und Modem kommen nur noch geringfügig oder gar nicht mehr vor und
finden dadurch bei Neuentwicklungen keine Berücksichtigung mehr.
Aktuelle Seiten werden für Breitbandanschlüsse entwickelt und können daher
mit einem langsameren Anschluss fast nicht mehr benutzt werden. Die
Startseite des Nachrichten-Portals „heute.de“ des öffentlich rechtlichen
Fernsehsenders ZDF hat zum Beispiel eine Größe von 907KByte. Das
bedeutet, dass das Laden der Web-Seite bei optimaler Ausnutzung einer
ISDN-Verbindung 1 Minute und 53 Sekunden dauert. Bei einem 1000 KBit/s
DSL-Anschluss dauert dieser Ladevorgang hingegen nur 7,3 Sekunden. In
dieser Diplomarbeit wird die Art des Anschlusses nicht explizit beachtet.
Analyse 26
Internet- Nutzung
breitbandige Internetanschlüsse
Ladezeit mit ISDN
Als Nächstes wurde nach den verwendeten Web-Browsern gefragt (siehe
Tabelle 3.3). Auch bei dieser Frage sind Mehrfachnennungen möglich. Dies hat
wiederum dazu geführt, dass auch hier eine Gesamtsumme größer als 100%
entsteht.
Internet Explorer 55,2% (32)
Mozilla Firefox 86,2% (50)
Apple Safari 24,4% (12)
Opera 12,1% (7)
Google Chrome 1,7% (1)
Konqueror 1,7% (1)
Tabelle 3.3 Ergebnisse des zweiten Teils des Fragebogens (Web-Browser)
Einen interessanten Punkt stellt die Häufigkeit der alleinigen Nutzung nur
eines Web-Browsers dar. So wird der Microsoft Internet Explorer von 9,4%
aller Befragten und Mozilla Firefox von 38% aller Befragten als alleiniger
Web-Browser genutzt. Die meisten Befragten nutzen jedoch mehr als einen
Web-Browser. So nutzen insgesamt 55,2% der Befragten unter anderem den
Internet Explorer und sogar 86,2% aller Befragten nutzen ständig oder ab und
zu den Mozilla Firefox. Unter dem Punkt „Sonstige“ wurden die Web-Browser
Opera, Google Chrome und Konqueror genannt.
Mozilla Firefox hat insgesamt gesehen die höchste Nutzungsquote im
Vergleich mit den anderen angegebenen Web-Browsern. Diese Nutzungsquote
ist jedoch nicht hoch genug, um die anderen Web-Browser nicht zu
berücksichtigen. Daher wird in der Umsetzung kein Web-Browser speziell
betrachtet, sondern eine Kompatibilität mit allen gängigen Web-Browsern
angestrebt.
Zugriff mit mobilen Endgeräten 25,9% (15)
Nutzung von Web-Anwendungen 96,6% (56)
kostenpflichtige Inhalte im Web 27,6% (16)
Tabelle 3.4 Ergebnisse des zweiten Teils des Fragebogens (Web-Nutzung)
Gut ein Viertel aller Befragten greift mit einem mobilen Endgerät auf das
Internet zu (siehe Tabelle 3.4). Dieser Trend wird in Zukunft immer weiter an
Analyse 27
Web-Browser
Firefox war bei 86,2% vorhanden
Berücksichtigung aller Web-Browser
Zugriff mit mobilen Endgeräten
Bedeutung gewinnen, wie der Hype um das Apple iPhone zeigt [vgl. 36]. Die
mobilen Web-Browser, die beispielsweise in Mobiltelefonen verwendet
werden, stellen eine Variante der vorhandenen Web-Browser dar. Sie basieren
auf den gleichen Technologien und besitzen im Großen und Ganzen die
gleichen Funktionen. Auf Grund dessen können die Erkenntnisse aus dieser
Umfrage in diesem Punkt leicht auf mobile Web-Browser übertragen werden.
Diese finden in dieser Diplomarbeit keine gesonderte Beachtung.
Fast alle Befragten haben angegeben schon einmal eine Web-Anwendung
genutzt zu haben (siehe Tabelle 3.4). Als Beispiele für Web-Anwendungen
wurden in der Fragestellung Google Maps, ein Webmailer und ein
Routenplaner genannt. Dies bedeutet, dass die Teilnehmer mit dem Thema
Web-Anwendungen vertraut sind, und ihre Antworten für diese Auswertung
als relevant eingestuft werden können.
27,6% Prozent aller Befragten haben bereits ein kostenpflichtiges Angebot im
Internet genutzt (siehe Tabelle 3.4). Als Beispiele wurden hier in der
Fragestellung digitale Zeitungsabonnements, kostenpflichtige Informationen
und schnellere Downloads angegeben. Aus diesem Ergebnis kann daher der
Schluss gezogen werden, dass für rund ein Viertel der Teilnehmer eine
grundlegende Bereitschaft für die Nutzung von SaaS-Diensten existiert, da sie
bereits mindestens einmal für eine Dienstleistung im Web gezahlt haben.
Als Nächstes wird dem Thema SaaS nachgegangen.
3.1.3.3 Web-Anwendungen
Mit den Fragen in diesem Abschnitt wird der mögliche Einsatz von SaaS
ermittelt.
Einsatz von Web-Anwendungen im Unternehmen 75,9% (44)
Dateien online speichern 72,4% (42)
Anwendungen im Web-Browser zu nutzen 65,5% (38)
Anwendung zu mieten anstatt kaufen 55,2% (32)
Tabelle 3.5 Ergebnisse des dritten Teils des Fragebogens
Die Antworten der Teilnehmer haben ergeben, dass in drei von vier
Unternehmen mindestens eine Web-Anwendung im Einsatz ist (siehe Tabelle
Analyse 28
Nutzung von Web-Anwendungen
kostenpflichtige Angebote im Web
Web-Anwendungen
in 75% der Unternehmen
3.5). 10,3% der Befragten sind sich nicht sicher, ob dies auf ihr Unternehmen
zutrifft.
Die Möglichkeit, Daten online zu speichern, fand bei den Teilnehmern eine
breite Zustimmung. Konkret wurden die Teilnehmer nach der Speicherung
und Verwaltung von E-Mails, Dokumenten und Bildern gefragt. Des Weiteren
wurden die Teilnehmer gefragt, ob sie sich vorstellen könnten, Anwendungen
im Web-Browser zu nutzen. Auch in diesem Punkt konnte eine große
Zustimmung beobachtet werden.
Daraus wird der Schluss gezogen, dass eine große Affinität für das Thema
Web-Anwendungen besteht und die Teilnehmer dieses Konzept akzeptieren.
Mehr als die Hälfte der Teilnehmer wären bereit, eine monatliche Gebühr für
die Nutzung einer Web-Anwendung zu bezahlen, anstatt eine traditionelle
Lizenz zu erwerben. Dieses Ergebnis belegt das Potential für SaaS.
Im Fragebogen wurden die Teilnehmer aufgefordert, eine Begründung ihrer
Antwort zu schreiben, falls sie die Frage nicht mit ja beantwortet haben. Es hat
sich gezeigt, dass der Hinweis „Wenn Sie nicht mit „ja“ geantwortet haben,
warum?“ problematisch formuliert war. Es hat dazu geführt, dass einige
Teilnehmer ihre positive Antwort begründeten, die vermutlich das Wort
„nicht“ überlesen haben.
Die Begründungen der Teilnehmer, die diese Formulierung richtig interpretiert
haben, haben gezeigt, dass der Hauptgrund für eine Ablehnung von SaaS die
Unsicherheit in puncto Datenschutzes ist. Insgesamt kann man sagen, dass das
Thema Sicherheit den meisten Befragten am wichtigsten ist.
3.1.3.4 Gewünschte Eigenschaften von Anwendungen
In diesem Teil wurden die Teilnehmer der Umfrage gebeten, zwei Freitext-
fragen zum Thema Eigenschaften von Software zu beantworten. Freitextfragen
begünstigen ehrliche und wenig beeinflusste Aussagen, allerdings wird die
statistische Auswertung erheblich erschwert.
Für die Auswertung wurden alle Antworten gesammelt und verschiedenen
Kategorien zugeordnet. Hierfür wurden die großen Kategorien Benutzer-
freundlichkeit und Geschwindigkeit gebildet.
Analyse 29
Daten im Internet speichern
Nutzung eines Miet-Modells
Datensicherheit im Internet
falsche Interpretation
Eigenschaften von Software
Kategorisierung der Antworten
Auf die erste Frage nach den Eigenschaften „guter“ Software wurden zum
Beispiel auch die Punkte „lange am Markt“ und „Open Source“ genannt. Sie
lassen sich schwer in eine der bisherigen Kategorien einordnen. Aus diesem
Grund wurde eine weitere Kategorie für nur einmalig genannte Punkte
eröffnet. Die Aussage aus dieser Kategorie wird nicht in die Anforderungen
einfließen, da sie eine geringe Aussagekraft besitzt. Die genau Auflistung der
Aussagen befinden sich im Anhang C.
3.1.3.5 Bewertung von Software-Eigenschaften
Im letzten Teil des Fragebogens bewerteten die Teilnehmer einzelne
Eigenschaften von Software. Die Fragen wurden hierzu verschiedenen
Themen-blöcken zugewiesen. Die einzelnen Themenblöcke wurden vom
Autor bei der Ausarbeitung des Fragebogens anhand von Kategorien
zusammen-gestellt, die für die Umsetzung relevant waren. Jeder Themenblock
umfasst hierbei zwischen 3 und 7 Fragen.
Die Fragen konnten durch die Angabe eines Skalenwertes bewertet werden.
Die Skala reichte hierbei in Einerschritten von -2 bis +2. So ergaben sich fünf
unterschiedliche Bewertungsmöglichkeiten. Diese reichten von -2 für „gar
nicht nützlich“ über 0 für „ mittelmäßig nützlich“ bis hin zu +2 für
„außerordentlich nützlich“.
Für die Auswertung wurden die einzelnen Bewertungen addiert und durch die
Gesamtzahl der Teilnehmer geteilt. Ein Beispiel zur Verdeutlichung: die Frage:
„Benutzeranmeldung mit sicheren Passwörtern“ ergab einen Gesamtwert von
78 Punkten, diesen durch die Gesamtzahl der Teilnehmer (58) geteilt, ergibt
einen Wert von 1,3. Auf diese Art berechnete Werte bieten den Vorteil, dass
eine direkte Gegenüberstellung der einzelnen Punkte im Rahmen der Skala
von -2 bis +2 erfolgen kann.
Benutzeranmeldung mit sicheren Passwörtern 1,3 (78)
Automatische Abmeldung nach längerer Zeit bei Inaktivität 0,6 (34)
Verschlüsselte Verbindung über das Netzwerk/Internet 1,5 (89)
Passwörter müssen regelmäßig geändert werden 0 (-2)
Schutz vor Datendiebstahl durch verschlüsselte Datenbank 1,3 (78)
Tabelle 3.6 Ergebnisse des fünften Teils des Fragebogens (1. Themenblock - Sicherheit)
Analyse 30
einzelne Aussagen
Bewertung der Eigenschaften
Skala von -2 bis +2
Auswertung
Die Ergebnisse dieses Themenblocks (siehe Tabelle 3.6) bestätigen das Fazit
aus Kapitel 3.1.3.3 (Web-Anwendungen), dass den Anwendern das Thema
Sicherheit sehr wichtig ist. Allerdings zeigt die niedrige Bewertung der beiden
Punkte „automatische Abmeldung“ und „regelmäßige Änderung der
Passwörter“, dass die Maßnahmen zur Sicherstellung eines hohen
Sicherheitsstandards im Hintergrund arbeiten sollten. Der Nutzer möchte von
einer optimalen Sicherheit profitieren, ohne dass er dafür einen zusätzlichen
Aufwand erbringen muss. Der nächste Themenblock widmet sich dem Thema
„Geschwindigkeit“.
Schneller Start und Verfügbarkeit einer Anwendung 1,6 (95)
Rückmeldung nach Eingaben, dass Daten verarbeitet werden 1,2 (71)
Informationen, warum es zu einer Verzögerung kommt 1,0 (60)
Tabelle 3.7 Ergebnisse des fünften Teils des Fragebogens (2. Themenblock - Geschwindigkeit)
Beim Thema „Geschwindigkeit“ handelt es sich um einen oft thematisierten
Bereich der Informatik, da er subjektiv Einfluss auf die Bewertung von
Anwendungen hat. Die Aussagekraft der Bewertung dieser Frage ist
verständlicherweise nicht sehr hoch, da kein Nutzer Interesse an einer
langsamen Anwendung haben kann (siehe Tabelle 3.7).
Die Funktionalität der Rückmeldung bekam eine hohe Wertung durch die
Teilnehmer. Ein Dialog für diese Funktionalität muss laut der EN ISO
9241-110 [vgl. 37 S.54] selbstbeschreibungsfähig sein. Der nächste Punkt
„Informationen, warum es zu einer Verzögerung kommt“, bekam keine so
hohe Wertung. Dies liegt daran, dass die Benutzer einer Verzögerung
grundsätzlich negativ gegenüber stehen.
Davon ausgehend, dass eine Anwendung so schnell wie möglich reagieren
sollte, bewerten die Teilnehmer der Umfrage die Funktion der Rückmeldung
vergleichsweise gering. Außerdem messen sie der Information, warum es zu
einer Verzögerung kommt, auch nur einen geringen Stellenwert zu.
Der nächste Themenblock widmet sich der Bedienbarkeit von Software.
Analyse 31
Sicherheit
Geschwindigkeit
Rückmeldungen
schnelle Reaktion
Übersichtliche Darstellung der Informationen 1,8 (103)
Ansprechende Gestaltung der Oberfläche der Anwendung 1,1 (66)
Leicht verständliche und übersichtliche Menüstruktur 1,6 (90)
Nicht verwendete Elemente werden ausgeblendet 0 (2)
aufgabenorientierte und intuitive Bedienung 1,4 (82)
Oberfläche umschaltbar zwischen Hilfe- und Expertenmodus 0,3 (18)
Tabelle 3.8 Ergebnisse des fünften Teils des Fragebogens (3. Themenblock - Bedienbarkeit)
Die Bewertung des Punkts „Übersichtliche Darstellung der Informationen“
verdeutlicht diese Aussage. Dieser Aspekt hat im kompletten Fragebogen mit
1,8 Punkten die höchste Bewertung erhalten.
Die beiden Punkte „Nicht verwendete Elemente werden ausgeblendet“ und
„Oberfläche umschaltbar zwischen Hilfe- und Expertenmodus“ haben eine
niedrige Bewertung erhalten. Dies bedeutet, dass für die meisten Benutzer
immer alle Möglichkeiten einer Anwendung ersichtlich sein sollten. Die
Anwendung sollte somit so strukturiert sein, dass alle Funktionalitäten gut
bedienbar sind. Dies spiegelt auch die hohe Bewertung des Punktes „leicht
verständliche und übersichtliche Menüstruktur“ wider.
Die Verbindung zum Punkt Geschwindigkeit ergibt sich dadurch, dass nur
eine logisch und übersichtlich dargestellte Software vom Bediener auch
entsprechend schnell benutzt werden kann.
Alle Punkte aus dem Themenblock Bedienbarkeit können der Kategorie
Benutzerfreundlichkeit zugeordnet werden. Sie werden alle als sehr wichtig
angesehen und werden überdurchschnittlich hoch bewertet.
Der nächste Themenblock geht auf den Punkt Fehlertoleranz ein.
Bestätigung von wichtigen Aktionen wie z.B. Datei löschen 1,4 (83)
Automatische Fehlerkorrektur bei fehlerhafter Eingabe 0,4 (21)
Automatischer Neustart nach einem Fehler -0,5 (-28)
Verständliche und einfache Fehler-Meldungen 1,6 (90)
Tabelle 3.9 Ergebnisse des fünften Teils des Fragebogens (4. Themenblock - Fehlertoleranz)
Die Teilnehmer der Umfrage bewerten die Punkte „verständliche und einfache
Fehler-Meldungen“ und die „Bestätigung von wichtigen Aktionen“ als wichtige
Analyse 32
Bedienbarkeit
selbsterklärende Funktionen
schnelle Bedienung
Benutzer-freundlichkeit
verständliche Fehlermeldungen
Eigenschaften für den Benutzer. Ein Benutzer ist in der Regel mit Fehler-
meldungen unzufrieden, mit denen er nicht direkt etwas anfangen kann. Dies
kann daran liegen, dass sie aus Fehlercodes bestehen oder dass sie
unverständlich formuliert sind. Aus diesem Verständnis heraus können selbst
beschreibende Fehlermeldungen als gut bewertet werden.
Ein weiterer Punkt, der vom Benutzer generell schlecht bewertet wird, ist die
automatische Ausführung von Aktionen, die durch die Anwendung als
fehlerbehebend eingestuft werden. Der Benutzer möchte selbst entscheiden,
welche Änderungen vorgenommen werden sollen, bzw. ob eine bestimmte
Aktion ausgelöst werden soll. Daher sollten Korrekturen oder Ähnliches über
einen Dialog gesteuert und nicht automatisch ausgeführt werden.
Der folgende Themenblock befasst sich mit der Integration verschiedener
Anwendungen.
Möglichkeit zur Anbindung an andere Anwendungen 1,2 (69)
Gleichzeitiger Zugriff auf gemeinsame Daten 1,0 (61)
Optische Anpassung der Anwendung an das System 0,3 (15)
Anpassbarkeit an individuelle Vorlieben 0,7 (40)
Tabelle 3.10 Ergebnisse des fünften Teils des Fragebogens (5. Themenblock - Integration)
Positiv werten die Befragten die Möglichkeit zur Anbindung an andere
Anwendungen und den gleichzeitigen Zugriff auf gemeinsame Daten. Daher
sollten den Benutzern Schnittstellen oder Funktionen für den Export von
Dateien bereitgestellt werden. Der Austausch von Daten und Dateien
zwischen verschiedenen Anwendungen ist eine Grundfunktion moderner
Anwendungen. Ebenso wie der schnelle Austausch von Daten, der durch die
weltweite Verfügbarkeit des Webs vereinfacht wird. Diese Grundan-
forderungen werden durch die Teilnehmer der Umfrage bestätigt.
Der gleichzeitige Zugriff bekam eine hohe Bewertung, wirft allerdings wie
immer bei kollaborativer Arbeitsweise die Frage des Datenschutzes auf.
Welcher Benutzer auf welche Daten zugreifen darf, muss genau definiert
werden.
Die individuelle Anpassung einer Anwendung hat genauso wie die optische
Anpassung der Anwendung an das System einen niedrigen Stellenwert von
Analyse 33
automatische Aktionen
Integration
kollaborative Arbeitsweise
individuelle Anpassung
den Teilnehmern erhalten. Dies liegt daran, dass diese Anpassungen im
Widerspruch zu einer intuitiven Bedienung stehen. Eine Anwendung sollte
schon im Neuzustand gut bedienbar sein und nicht erst angepasst werden
müssen.
Der nächste Themenblock beschäftigt sich mit der Frage nach der
Datenkonsistenz.
Automatisches Speichern während der Bearbeitung 1,2 (69)
Versionsverwaltung oder Einsehen von Bearbeitungsschritten 1,0 (56)
Verfügbarkeit der Rückgängig-Funktion bei allen Eingaben 1,6 (95)
Schutz der Daten vor Veränderung durch eine Sperr-Funktion 1,0 (56)
Möglichkeit zur Archivierung des aktuellen Stands 1,2 (67)
Tabelle 3.11 Ergebnisse des fünften Teils des Fragebogens (6. Themenblock - Datenkonsistenz)
Alle Eigenschaften dieses Themenblocks haben eine mittlere bis hohe
Bewertung durch die Teilnehmer der Umfrage erhalten. Alle beschriebenen
Punkte sind derzeit jedoch hauptsächlich in traditionellen Anwendungen
verfügbar. Bisher werden sie in Web-Anwendungen selten eingesetzt, obwohl
sie vom Benutzer geschätzt würden. Daher sollten gerade Funktionen in
Web-Anwendungen eingesetzt werden, die hauptsächlich von lokalen
Anwendungen verwendet werden. Diese Maßnahme würde die Akzeptanz der
Benutzer gegenüber Web-Anwendungen erhöhen.
3.1.4 Fazit
Der Fragebogen hat Einblicke in das Nutzungsverhalten der Teilnehmer
gegenüber Anwendungen gegeben. Aus den gesammelten Aussagen ließ sich
die Tendenz erkennen, welche Faktoren für die Teilnehmer am wichtigsten
sind. Dabei handelt es sich um die Kategorien Benutzerfreundlichkeit,
Geschwindigkeit und Sicherheit, diese wurden am häufigsten genannt.
Die oft genannte Benutzerfreundlichkeit in 3.1.3.4, besteht aus zwei
Bereichen. Zum einen handelt es sich um die optische Gestaltung und
Strukturierung der Oberfläche und zum anderen um die Interaktion mit dem
Benutzer. Beide Bereiche wurden in der Umfrage durch die Teilnehmer als
relevante Themen eingestuft.
Analyse 34
Datenkonsistenz
Benutzer-freundlichkeit
Fazit der Umfrage
In der Auswertung der Umfrage in 3.1.3.4 hat sich gezeigt, dass eine schnelle
Reaktion und Bearbeitung der Anwendungen für die heutigen Nutzer als
Selbstverständlichkeit angesehen werden. Der Hauptfaktor für die
Geschwindigkeit von Web-Anwendungen besteht in der Kapazität der
Verbindung vom Web-Browser zum Web-Server. Ein weiterer Faktor im
Bereich Geschwindigkeit stellt die Reaktion der Oberfläche auf die Eingabe
eines Benutzers dar.
Im Abschnitt 3.1.3.3 der Auswertung hat sich gezeigt, dass die meisten der
Umfrageteilnehmer den Themen Datenschutz und Sicherheit im Web
skeptisch gegenüber stehen. Gerade die aktuellen Meldungen, wie der Verlust
von 17 Millionen Kundendaten der Telekom AG [vgl. 38], haben die
Teilnehmer für das Thema Sicherheit sensibilisiert.
3.2 Anforderungen an Web-Anwendungen
Aus der Auswertung des Fragebogens werden nun die Anforderungen an
asynchrone Web-Anwendungen abgeleitet. Die Abkürzungen, die hier für die
einzelnen Fragebögen verwendet werden, verweisen auf die gesammelten
Antworten der Freitext-Fragen aus dem vierten Teil des Fragebogens (siehe
3.1.3.4), die sich im Anhang C befinden.
3.2.1 Kompatibilität
Die Auswertung der Internet-Nutzung in 3.1.3.2 hat die Verwendung der
verschiedenen Technologien aufgezeigt, daraus resultieren die nachfolgenden
Anforderungen.
3.2.1.1 Erste Anforderung: Unterstützung von unterschiedlichen Web-Browsern
Die Statistik von WebHits [vgl. 39] erfasst täglich etwa 900.000 Seitenzugriffe
und bescheinigt die unregelmäßige Verteilung der Web-Browser-Anteile. Wie
i n 3.1.3.2 ermittelt, gibt es keine Web-Browser mit einer qualifizierten
Mehrheit. So wird zum Beispiel auch in Anhang C / 2.3.5 gefordert, dass eine
Anwendung auf möglichst vielen Rechnern ausgeführt werden kann.
Analyse 35
Anfoderungen
Datenschutz und Sicherheit
Reaktion und Geschwindigkeit
Kompatibilität
Web-Browser Unterstützung
Daraus resultiert die erste Anforderung, dass eine Web-Anwendung möglichst
viele Web-Browser Versionen unterstützen muss.
3.2.1.2 Zweite Anforderung: Optimale Darstellung bei allen Auflösungen
Aus der Anforderung 3.2.1.1 lässt sich ableiten, dass möglichst viele Endgeräte
unterstützt werden sollten. Dies wird durch die Statistik von WebHits, über die
unterschiedlichen Bildschirmauflösungen, und die Verwendung von mobilen
Endgeräten bestätigt (siehe 3.1.3.2).
Daraus resultiert die zweite Anforderung, dass eine Web-Anwendung so
realisiert werden muss, dass sie mit allen Auflösungen optimal dargestellt
werden kann.
3.2.1.3 Dritte Anforderung: Verwendung kompatibler Schriften
Ein genannter Punkt im Fragebogen ist, dass eine Anwendung „übersichtlich“
(z .B. Anhang C / 2.1.21) sein muss. Dies erreicht man unter anderem mit der
Gestaltung und der Beschriftung. Allerdings sind nur wenige Schriften auf
allen Rechnern vorhanden. Dies zeigt auch die Statistik des Online-Magazins
Webmasterpro [vgl. 40], wo nur 17 Schriften auf mehr als 90% der Rechner
vorhanden sind.
Daraus resultiert die dritte Anforderung, dass eine Schrift gewählt werden
muss, die auf mindestens 90% aller Rechner gleich dargestellt wird.
3.2.2 Benutzerfreundlichkeit
Die verschiedenen Aspekte der Benutzerfreundlichkeit wurden in den
Freitextfragen von 3.1.3.4 mehrfach von den Teilnehmern genannt.
3.2.2.1 Vierte Anforderung: Übersichtliche Oberfläche
Die Optik (Anhang C / 2.1.5) und ein sehr gutes Design (Anhang C / 2.1.23)
spielen für die Benutzer eine wichtige Rolle, dies zeigen die Antworten von
3.1.3.4. Die Teilnehmer beschrieben die „gute Gestaltung der Oberfläche
(Anhang C / 2.1.12) mit ihren Aussagen wie „so wenig graphischen
Schnickschnack wie möglich“ (Anhang C / 2.1.1) und „Reduzierung auf das
Wesentliche“ (Anhang C / 2.1.25).
Analyse 36
Anpassung an die Auflösung
kompatible Schriften
Benutzer-freundlichkeit
übersichtliche Oberfläche
Daraus resultiert die vierte Anforderung, dass Oberflächen übersichtlich
gestaltet werden müssen und auf unnötige Elemente verzichtet werden muss.
3.2.2.2 Fünfte Anforderung: Intuitive Navigation
Die Benutzer haben auf die Fragen nach der Benutzerfreundlichkeit zum
Beispiel geantwortet, dass eine Anwendung gut ist, wenn sie „einfach zu
bedienen ist“ (Anhang C / 2.1.6). Dafür muss das Menü übersichtlich (Anhang
C / 2.1.18) gestaltet sein. Die Teilnehmer beschrieben die „einfache
Bedienung“ (Anhang C / 2.1.13) mit einer „intuitiven Benutzung“ (Anhang C /
2.1.14) und mit einem „logischen Aufbau“ (Anhang C / 2.1.7).
Daraus resultiert die fünfte Anforderung, dass die Navigation leicht erfassbar
und mit allgemein verständlichen Navigations-Punkten aufgebaut werden
muss.
3.2.2.3 Sechste Anforderung: Verständliche Hinweise
Ebenso unerwünscht wie Abstürze sind Fehler während der Ausführung der
Anwendung. Dies kommentierten die Anwender mit „wenn eine Funktion
nicht funktioniert“ (Anhang C / 2.3.6), „keine Bugs“ (Anhang C / 2.3.19) und
„muss fehlerfrei laufen“ (Anhang C / 2.3.20).
Daraus resultiert die sechste Anforderung, dass Fehler durch verständliche
Hinweise abgefangen werden müssen.
3.2.2.4 Siebte Anforderung: Selbsterklärende Funktionalitäten
Ein weiterer Faktor, der die Benutzerfreundlichkeit beeinflusst, ist die
Selbstbeschreibungsfähigkeit der Oberfläche. Dies bedeutet, dass die
Funktionen sich selbst beschreiben und damit erklären (z. B. Anhang C /
2.1.2), außerdem müssen sie „übersichtlich“ (z .B. Anhang C / 2.1.21) sein.
Daraus resultiert die siebte Anforderung, dass Funktionalitäten allgemein
verständlich und eindeutig benannt werden müssen, sowie eine weitere Hilfe
zur Verfügung stehen muss.
Analyse 37
intuitiveNavigation
verständliche Hinweise
selbsterklärende Funktionalitäten
3.2.2.5 Achte Anforderung: Visuelle Rückmeldung über den aktuellenZustand
Die Eigenschaften im fünften Teil des Fragebogens „Rückmeldung nach
Eingaben, dass Daten verarbeitet werden“ erhielt eine hohe Bewertung durch
die Teilnehmer. Diese Aussage wird durch die DIN EN ISO 9241-13 [vgl. 37
S.69] zur Benutzerführung gestützt.
Daraus resultiert die achte Anforderung, dass der Benutzer immer über den
aktuellen Zustand der Anwendung informiert sein muss.
3.2.3 Geschwindigkeit
Die Eigenschaften im zweiten Themenblock (3.1.3.5) zum Thema
Geschwindigkeit wurde von den Teilnehmern positiv bewertet und fand auch
im vierten Teil des Fragebogens (3.1.3.4) große Beachtung.
3.2.3.1 Neunte Anforderung: Laden von Web-Anwendungen
Die „Geschwindigkeit“ (wie z.B. in Anhang C / 2.2.4 erwähnt) wird von dem
Anwender als wichtiger Faktor wahrgenommen. Eine „geringe Ladezeit“ ist
daher essentiell für eine „schnelle“ (Anhang C / 2.2.10) Anwendung.
Daraus resultiert die neunte Anforderung, dass eine Anwendung so schnell wie
möglich geladen werden muss.
3.2.3.2 Zehnte Anforderung: Reaktion auf Eingaben
Eine „schnelle Bedienung“ (Anhang C / 2.2.11) ist ebenfalls ein oft genannter
Punkt. Eine „kurze Antwortzeit“ (Anhang C / 2.2.13) verhindert die „träge
Reaktion der Software“ (Anhang C / 2.2.12).
Daraus resultiert die zehnte Anforderung, dass eine Web-Anwendung sofort
auf eine Eingabe reagieren muss und gleichzeitig den Benutzer über den
aktuellen Status informiert.
3.2.3.3 Elfte Anforderung: Verarbeitung von Anfragen
Resultierend aus der zehnten Anforderung muss auch die Verarbeitung der
Anfragen auf der Web-Server-Seite effizient erfolgen.
Analyse 38
Rückmeldungen
Geschwindigkeit
Ladevorgang von Web-Anwendungen
Reaktion auf Eingaben
Verarbeitung von Anfragen
3.2.4 Sicherheit
Wie wichtig das Thema Sicherheit (erwähnt in Anhang C / 1.1.8 und 1.2.3) für
die Teilnehmer ist, hat die Auswertung in 3.1.3.3 des dritten Teils des
Fragebogens gezeigt.
3.2.4.1 Zwölfte Anforderung: Verschlüsselter Austausch von Daten
Der Schutz der Privatsphäre (z.B. Anhang C / 2.2.4) kann durch eine
verschlüsselte Verbindung verbessert werden. Diese Funktionalitäten wurden
auch im ersten Themenblock des Teils 3.1.3.5 von den Teilnehmern hoch
bewertet.
Daraus resultiert die zwölfte Anforderung, dass vom Benutzer generierte Daten
immer verschlüsselt übertragen werden müssen.
3.2.4.2 Dreizehnte Anforderung: Sicheres Speichern von Daten
Die Funktionalität Daten sicher zu speichern, wurde ebenfalls im ersten
Themenblock (3.1.3.5) abgefragt und hat durch die Teilnehmer eine hohe
Bewertung erfahren. Der Wunsch nach Datenschutz (z.B. Anhang C / 1.1.2)
und Datensicherheit (z.B. Anhang C / 1.1.3) verdeutlicht die Notwendigkeit
eines guten Sicherheitssystems.
Daraus resultiert die dreizehnte Anforderung, dass vom Benutzer generierte
Daten immer verschlüsselt gespeichert werden müssen.
Analyse 39
Sicherheit
verschlüsselteKommunikation
sicheres Speichern von Daten
4 KonzeptionIn diesem Kapitel werden die erarbeiteten Konzepte für die Erfüllung der
Anforderungen aus der Analyse vorgestellt. Dabei werden die Anforderungen
der Kategorien Kompatibilität, Benutzerfreundlichkeit, Geschwindigkeit und
Sicherheit behandelt.
Die Konzeption wird exemplarisch in der Programmiersprache PHP und mit
der Datenbank MySQL auf einem Web-Server durchgeführt. Die gewonnenen
Erkenntnisse lassen sich prinzipiell auch auf andere Programmiersprachen
und Datenbanken übertragen.
4.1 Kompatibilität
Durch die Verwendung eines Web-Browsers können Web-Anwendungen auf
sehr vielen unterschiedlichen Plattformen ausgeführt werden. Dies hat zur
Folge, dass eine asynchrone Web-Anwendung zu den unterschiedlichsten
Web-Browser-Versionen, Auflösungen der Bildschirmauflösungen und
Betriebssystemen kompatibel sein muss. In den nachfolgenden Abschnitten
wird daher dieser Aspekt näher betrachtet.
4.1.1 Unterstützung durch unterschiedliche Web-Browsern
Wie aus der ersten Anforderung hervorgeht (siehe Abschnitt 3.2.1.1), muss
eine Web-Anwendung von möglichst vielen Web-Browser-Typen und
Versionen unterstützt werden. Außerdem sollte eine Web-Anwendung für
möglichst vielen Benutzer zugänglich sein. Daraus folgt, dass sie mit vielen
Plattformen kompatibel sein muss. Das wiederum bedeutet, dass sie von
möglichst vielen Web-Browsern korrekt dargestellt wird. Um eine hohe
Kompatibilität zu erreichen, muss die Web-Anwendung mit 90% aller
verwendeten Web-Browsern kompatibel sein.
In der durchgeführten Umfrage wurden die Teilnehmer zu nach den
verwendeten Web-Browsern befragt (siehe Abschnitt 3.1.3.2). Allerdings kann
auf Grund der relativ kleinen Menge an Umfrageteilnehmer nicht auf ein
repräsentatives Ergebnis geschlossen werden. Daher wird die Statistik von
WebHits [vgl. 39] verwendet. Laut der Statistik verteilen sich die Anteile der
Konzeption 40
Konzeption mit PHP und MySQL
Anforderungen an die Kompatibilität
Unterstützung 90% aller Web-Browser
Verteilung der Web-Browser
Web-Browser wie folgt: Microsoft Internet Explorer 6 (42,7%), Microsoft
Internet Explorer 7 (19,6%), Mozilla Firefox (14,4%), Mozilla Firefox 3
(8,7%), Apple Safari (1,9%), Mozilla Firefox 2 (1,6%) und Apple Safari 3
(1,1%).
Der Ausgleich der Unterschiede zwischen den Web-Browsern wird durch die
Verwendung von JavaScript-GUI Frameworks erreicht. Diese kapseln den
Zugriff auf die HTML-Elemente, sodass die Unterschiede bei Verwendung
verschiedener Web-Browser nicht mehr extra explizit beachtet werden müssen.
Dies bringt allerdings den Nachteil mit sich, dass nur die Funktionen
unterstützt werden, die in den Frameworks realisiert sind. Zusätzlich muss
noch abgewogen werden, welche Web-Browser von welchen Frameworks
unterstützt werden und ob es zu Konflikten kommt, wenn mehrere
Frameworks gleichzeitig genutzt werden.
4.1.1.1 JavaScript GUI Frameworks
Für Web-Anwendungen stehen keine Grafikbibliotheken zum Programmieren
von grafischen Benutzeroberflächen zur Verfügung, wie zum Beispiel in Java.
Dieser Punkt erschwert die Entwicklung, da die verschiedenen Web-Browser
Typen beachtet und zudem alle Elemente selbst erstellt werden müssen. Diese
Lücke in der Entwicklung von Web-Anwendungen kann durch die
Verwendung von JavaScript GUI Frameworks geschlossen werden.
Nachfolgend werden die drei populärsten Frameworks qooxdoo, Yahoo! UI
Library und Dojo Toolkit kurz vorgestellt.
Zuerst wird auch qooxdoo eingegangen: es handelt sich hierbei um ein
Framework für die Entwicklung von grafischen Benutzer-Oberflächen für
Web-Anwendungen. Die Bezeichnung wurde von der Aussage „guckst du“ aus
dem badischen Dialekt abgeleitet. In der bekannten Online-Enzyklopädie
„Wikipedia“ wird das Framework qooxdoo wie folgt beschrieben [41]: „Die
Quelltexte des Projekts sind frei und stehen unter der Eclipse Public License
und der GNU Lesser General Public License. qooxdoo ist ein solches
Rahmenwerk für die Entwicklung von Anwendungen, die der Benutzer über
seinen Web-Browser aufruft und bedient. Es stellt in einer Programmbibliothek
zahlreiche auf der Skriptsprache JavaScript basierende Komponenten zur
Konzeption 41
Ausgleich der Unterschiede
qooxdoo
JavaScript GUI Frameworks
Verfügung, die Aussehen und Bedienung von asynchronen Web-Anwendungen
an klassische Desktop-Anwendungen angleichen.“
Als nächstes wird näher auf die Yahoo! User Interface Library eingegangen, die
im Jahre 2005 von der Yahoo! Inc. entwickelt wurde. Die Entwicklung begann
zunächst für eigene Dienste, bevor sie im Februar 2006 auch für die öffentliche
Nutzung unter der BSD-Lizenz freigegeben wurde. Christian J. Schyma
beschreibt in seiner Diplomarbeit zum Thema „Untersuchung der
Verwendbarkeit und Überführbarkeit von Ajax-Ansätzen in das wingS
Webframework für komfortablere und effizientere User-Interface-
Komponenten“ [42] das Framework von Yahoo wie folgt: „Die Bibliothek
Yahoo! UI Library der Firma Yahoo zeichnet sich vor allem durch ihre
hervorragende Dokumentation sowohl im Quellcode als auch in Beispielen
aus. Pakete unterschiedlicher Funktionalität sind einzeln nutzbar, so dass beim
Laden der Seite nicht auch ungenutzte Funktionen geladen werden müssen,
was Bandbreite spart und importierten Fremdcode gering hält.“
Das nachfolgende Beispiel in Abbildung 4.1 zeigt die Leistungsfähigkeit dieses
Frameworks auf. Es zeigt die Realisierung des Spiels PacMan im Web-Browser.
Konzeption 42
Yahoo! UI Library
Abbildung 4.1 Das Spiel PacMan mit der Yahoo! UI Library realisiert [43]
YUI Beispiel
Abschließend wird das Dojo Toolkit erläutert. Es handelt sich hierbei um eine
freie, modulare JavaScript-Bibliothek, die zur raschen Entwicklung von auf
JavaScript- oder Ajax basierenden Anwendungen und Websites benutzt
werden kann.
Das Dojo Toolkit stellt neben Modulen für die einfache Kommunikation
zwischen Web-Browser und Web-Server auch viele vorgefertigter Widgets zur
Verfügung. Ein Widget ist ein Steuerelement bzw. ein Interaktionselement in
einer grafischen Benutzeroberfläche. Fortgeschrittenen Benutzern bietet es
eine Infrastruktur und eine umfangreiche Sammlung an Funktionen für die
Erstellung professioneller Ajax-Anwendungen [vgl. 44]. Dojo ist seit Version
1.6 fest in das Zend Framework integriert und wird im Rahmen der
Standardausführung mit ausgeliefert. Für das Dojo Toolkit existieren populäre
Erweiterungen, so kann zum Beispiel Google Gears in dieses Toolkit integriert
werden.
Das Dojo Toolkit ist eine freie, modulare JavaScript-Bibliothek, die zur
Entwicklung von JavaScript- oder AJAX-basierten Web-Anwendungen und
Web-Seiten dient. Dabei stellt es nicht nur Module für die einfache
Kommunikation zwischen Web-Browser und Web-Server zur Verfügung,
sondern auch viele vorgefertigte Widgets. Ein Widget ist ein Steuerelement
bzw. ein Interaktionselement in einer grafischen Benutzeroberfläche.
Fortgeschrittenen Entwicklern bietet es eine Infrastruktur und eine
umfangreiche Sammlung an Funktionen für die Erstellung professioneller
AJAX-Anwendungen [vgl. 44]. Dojo ist in das Zend Framework seit der
Version 1.6 fester integriert und wird damit ausgeliefert. Es existieren dafür
populäre Erweiterungen, wie zum Beispiel die Integration von Google Gears
(siehe Abschnitt 4.3.2.3) in Dojo.
Zum jetzigen Zeitpunkt sind alle drei Frameworks durch verschiedene
Communities vertreten.
Das Yahoo! UI Library Framework hat eine große weltweite Community und
eine Web-Seite mit ausführlichen Demos. Durch die Verwendung in einigen
Yahoo! Anwendungen wurde dieses Framework sehr bekannt.
Das Famework qooxdoo wurde von 1&1 gegründet, welches auch in einigen
Diensten von 1&1 zum Einsatz kommt. Durch die Unterstützung von 1&1 hat
sich eine große deutschsprachige Community gebildet.
Konzeption 43
Dojo Toolkit
Integration im Zend Framework
Verbreitung der Frameworks
Über das Dojo Toolkit sind mehrere Bücher erschienen und die Verbreitung
wird durch eine Foundation unterstützt. Die Dojo Foundation ist eine
gemeinnützige Organisation, die die Verbreitung des Toolkits zum Ziel hat.
Mitglieder und Sponsoren von Dojo sind IBM, Sun Microsystems, JotSpot,
SitePen, Renkoo, AOL, TurboAJAX, OpenLaszlo, Nexaweb und BEA Systems.
Momentan ist noch nicht abzusehen, welches Framework sich durchsetzen
wird und die höchste Verbreitung erreichen wird.
4.1.2 Optimale Darstellung bei allen Auflösungen
Wie in der zweiten Anforderung dargestellt (siehe Abschnitt 3.2.1.2), muss eine
Web-Anwendung immer optimal an die Auflösung des Benutzers angepasst
werden. Dieser Aspekt beinhaltet neben der Ausnutzung des im Web-Brower
zur Verfügung stehenden Platzes auch eine mögliche Anpassung der
Schriftgröße. Diese Punkte werden auch in der barrierenfreien Software-
Gestaltung aufgegriffen [vgl. 37 S.97].
Die flexible Darstellung wird durch die Verwendung prozentualer Werte an
Stelle statischer Werte in der Gestaltung erreicht. Dadurch passt sich die Web-
Anwendung immer der Auflösung des Ziel-Rechners an.
4.1.3 Verwendung kompatibler Schriften
Aus der dritten Anforderung geht hervor (siehe Abschnitt 3.2.1.3), dass die
verwendete Schrift auf 90% aller Rechner vorhanden sein muss.
Nach der Statistik von Webmasterpro [vgl . 40], bei der die Zugriffe von
100.000 Web-Seiten ausgewertet wurden, entspricht das den Schriften in
Tabelle 4.1.
Konzeption 44
Anpassung an die Auflösungen
Verbreitung von Schriften
Rang Schriftart Prozentsatz der Verfügbarkeit
1 Courier New 99,50%
2 Arial 99,45%
3 Verdana 99,11%
4 Times New Roman 99,07%
5 Trebuchet MS 98,70%
6 Arial Black 98,68%
7 Impact 98,62%
8 Comic Sans MS 98,54%
9 Georgia 98,35%
10 Tahoma 98,29%
11 Microsoft Sans Serif 96,60%
12 Lucida Console 95,48%
13 Lucida Sans Unicode 95,34%
14 Palatino Linotype 94,09%
15 Franklin Gothic Medium 93,83%
16 Symbol 93,40%
17 Sylfaen 91,58%
Tabelle 4.1 Verbreitung von Schriftarten bei Web-Usern [40]
Alternativ können verschiedene Schriften miteinander kombiniert werden, die
zwar ähnlich aussehen, aber auf unterschiedlichen Betriebssystemen,
vorhanden sind.
In diesem Beispiel (siehe Quellcode 4.1) wird als erste Schrift „Times New
Roman“ verwendet, diese ist unter Microsoft Windows vorhanden. Als zweite
Schrift wird die „Times“ eingebunden, die unter Mac OS X installiert ist.
Konzeption 45
Abbildung 4.2 Übersicht über ähnliche Schriften [45]
ähnlicheSchriften
Anschließend werden die „FreeSerif“ und die „Nimbus Roman No9 L“
eingebunden. Diese beiden Schriften stellen unter Linux das Äquivalent zum
Schrifttyp „Times New Roman“ dar. Falls keine dieser Schriften vorhanden
sein sollte, wird der Web-Browser mit dem Befehl „serif“ angewiesen die
Standard Schrift mit Serifen auf dem System zu benutzen.
Durch dieses Vorgehen kann für alle Betriebssysteme eine korrekte
Schriftauswahl getroffen werden.
4.2 Benutzerfreundlichkeit
Die Benutzerfreundlichkeit ist laut Möhrke „ein Kriterium, das beschreibt, wie
einfach eine Anwendung zu bedienen ist“ [46 S.XVI]. Die Benutzer-
freundlichkeit drückt sich also in der vom Benutzer erlebten Nutzungsqualität
einer Anwendung aus.
Grundsätzlich werden jedoch alle Anwendungen, die an das menschliche
Aufnahmevermögen angepasst sind als benutzerfreundlich angesehen [vgl. 47].
Eine Anwendung wird dann als benutzerfreundlich eingestuft, wenn sie
schnell zu erlernen ist, effizient genutzt werden kann und zudem eine
minimale Möglichkeit Fehler zu machen aufweist.
Die Benutzerfreundlichkeit wird in der Normen-Reihe DIN EN ISO 9241 mit
der Umschreibung „Ergonomische Anforderung für Bürotätigkeiten mit
Bildschirmgeräten“ aufgegriffen [vgl. 37 S.9]. Der Begriff Ergonomie wurde
von W. Jastrzebowski in seinem Artikel „Grundriss der Ergonomie“ von 1857
mit der Beschreibung „Ergonomie ist ein wissenschaftlicher Ansatz, damit wir
aus diesem Leben die besten Früchte bei der geringsten Anstrengung mit der
höchsten Befriedigung für das eigene und für das allgemeine Wohl ziehen.“
geprägt [vgl. 37 S.10]. Die Bezeichnung Software-Ergonomie wird heutzutage
auch oft durch den Anglizismus der Usability beschrieben. In dieser Arbeit
werden diese Themenbereiche unter dem Begriff Benutzerfreundlichkeit
zusammengefasst.
Konzeption 46
Benutzer-freundlichkeit
Software-Ergonomie
<span style="font-family:'Times New Roman', Times, FreeSerif,
'Nimbus Roman No9 L', serif;"></span>
Quellcode 4.1: Definition von ähnlichen Schriftarten
4.2.1 Übersichtliche Oberfläche
Wie aus der vierten Anforderung hervorgeht (siehe Abschnitt 3.2.2.1), muss
eine Oberfläche übersichtlich gestaltet und klar strukturiert sein. Eine
benutzerfreundliche Gestaltung der Oberfläche dem Benutzer hierbei die
Möglichkeit geben sich schnell einen Überblick über die Anwendung zu
verschaffen. Die benutzerfreundliche Strukturierung hingegen gibt der
Anwendung ein logisches Grundgerüst und hat das Ziel dem Benutzer eine
intuitive Bedienung zu ermöglichen. Ein Weg um diese Anforderung zu
erfüllen zeigt sich in der Verwendung von Metaphern.
4.2.1.1 Metaphern
Die Verwendung von Metaphern aus dem echten Leben erlaubt es dem
Benutzer, auf vorhandene altbewährte gedankliche Strategien zurückzugreifen.
Es wird ihm somit erspart, neue Arbeitsweisen zu erlernen und er kann schnell
mit Web-Anwendungen arbeiten [vgl. 37 S.86].
Die am häufigsten verwendete Metapher bei Betriebssystemen ist laut Arndt
der Desktop, der dem Aufbau eines Schreibtisches nachempfunden ist [vgl. 48
S.27].
Eine weitere sehr bekannte Metapher ist die Dateiverwaltung mittels Ordnern
auf dem Rechner. Die Dateien werden, wie im realen Büro, entweder in
Ordnern aufbewahrt bzw. gespeichert oder in den Papierkorb verschoben. Aus
dem Papierkorb können Dokumente im Zweifelsfall wieder heraus geholt, also
wiederhergestellt werden. Erst wenn der Papierkorb geleert wird, sind die
Daten wirklich verloren.
4.2.1.2 Kontrastverhältnis
Die Darstellung von Kontrasten unterscheidet sich zwischen traditionellen
Printmedien und der Darstellung auf einem Monitor deutlich. Bei einem auf
Papier gedruckten Text wird der Kontrast durch den Weißgrad des Papiers und
der Intensität der Schwärze des Textes beeinflusst. Ein Monitor hingegen
arbeitet mit einem additivem Farbmodell und nutzt dadurch den RGB-
Farbraum. In diesem Farbraum wird die Farbe Weiß durch die maximale
Darstellung aller drei Grundfarben erzeugt und die Farbe Schwarz kommt
dadurch zustande, dass keine Farbe dargestellt wird (siehe Abbildung 4.3).
Konzeption 47
übersichtliche Oberfläche
Verwendung von Metaphern
Die Schreibtisch-Metapher
Ablage der Dateien in Ordner
CMYK- und RGB- Farbmodell
Aufgrund der aktiven Hintergrundbeleuchtung der Bildschirme und der
Nutzung dieses Farbmodells ist es für das menschliche Auge im Prinzip
angenehmer, wenn eine helle Schrift auf einem dunklen Hintergrund steht. Ein
Beispiel für diese Art der Darstellung findet man bei Unix-Terminals (siehe
Abbildung 4.4). Es gibt jedoch auch noch viele Beispiele bei denen schwarze
Schrift auf weißem Grund dargestellt wird. Als Beispiel seien hier die meisten
Textverarbeitungsprogramme genannt. Diese Farbverteilung beruht auf der
traditionellen Darstellung von Schrift auf Papier.
Konzeption 48
Abbildung 4.4 Darstellung in einem UNIX-Terminal
Abbildung 4.3 Vergleich zwischen dem RGB- und CMYK-Farbmodell
Darstellung auf einem Monitor
4.2.2 Intuitive Navigation
Wie in der fünften Anforderung dargelegt (siehe Abschnitt 3.2.2.2), muss die
Navigation einer Anwendung leicht erfassbar und intuitiv zu bedienen sein.
Um dies zu erreichen, werden bekannte Strukturen verwendet.
4.2.2.1 Strukturen
Strukturen werden gemäß DIN EN ISO 9241-12 von etablierten Schemen und
bekannten Vorgehensweisen übernommen [vgl. 37 S.25], damit sich die
Benutzer schneller in neuen Anwendungen zurechtfinden.
Ein Beispiel hierfür ist die Ausrichtung von Webseiten. Sie werden genauso
wie Papier im täglichen Gebrauch meist vertikal ausgerichtet, selbst wenn die
Darstellung über den Bildschirmrand hinausgehen würde. Dadurch muss der
Benutzer nur vertikal scrollen und ein für ihn ungewohntes Scrollen in
horizontaler Richtung entfällt.
Ein weiterer Aspekt ergibt sich auch durch den kulturellen Hintergrund der
Benutzer. In der westlichen Welt werden zum Beispiel Texte von links nach
rechts und von oben nach unten gelesen. Dadurch wird die Aufmerksamkeit
zu Beginn immer auf die linke obere und am Schluss auf die rechte untere
Ecke gelenkt.
Um dem Benutzer die Möglichkeit zu geben, sich einen schnellen Überblick
über eine Anwendung zu verschaffen, sollten wichtige Elemente im oberen
linken Bereich positioniert werden, wie z. B. ein Navigationsmenü.
Weiterführende Elemente, wie zum Beispiel eine Funktion zum Blättern oder
verwandte Links, sollten demzufolge am besten unten rechts platziert werden.
Dies kann man auch bei der Struktur vieler Web-Seiten beobachten, bei denen
das Menü entweder oben links oder am linken Rand oben beginnend
verwirklicht wurde.
Bei einer Web-Anwendung kann diese Platzierung aber auch verwendet
werden, um die Aufmerksamkeit auf den Inhalt zu lenken. In dem
nachfolgenden Beispiel (Abbildung 4.5) wurde das Menü auf der rechten Seite
platziert. Außerdem hat das Menü ein niedriges farbliches Kontrastverhältnis,
was dazu führt, dass die Aufmerksamkeit verstärkt auf den Inhalt gelenkt wird.
Der entsprechende Bereich wurde in der Abbildung blau markiert [vgl. 49].
Konzeption 49
intuitive Navigation
bekannte Vorgehensweisen
vertikales Scrollen
Blickrichtung
Positionierung wichtiger Elemente
weiterführende Elemente
Ausrichten am rechten Rand
Dieses Prinzip gilt auch für die Ausrichtung von Interaktions-Elementen in
einem Dialog oder einer Eingabemaske. Schaltflächen zur Bestätigung einer
Aktion, wie zum Beispiel dem Absenden von Daten, sollten rechts unten
positioniert werden, da dies dem menschlichen Lesefluss zu Gute kommt.
Ein Negativ-Beispiel (siehe Abbildung 4.6) für die Platzierung von Elementen
zeigt sich am Beispiel der Eingabemaske der elektronischen Fahrplanauskunft
Baden-Württembergs [50] .
Hier ist die Schaltfläche zum Start einer Suche links unten positioniert, direkt
daneben befindet sich die Schaltfläche für die „Optionen“. Eine Schaltfläche,
um das Formular zurückzusetzen, befindet sich in der rechten unteren Ecke.
Erschwerend kommt hinzu, dass der Benutzer nicht aus der Beschriftung auf
Konzeption 50
Abbildung 4.5 Das Menü befindet sich auf der rechten Seite [49]
Abbildung 4.6 Eingabemaske der Elektronischen Fahrplanauskunft Baden-Württembergs [50]
Positionierung von Schaltflächen
negatives Beispiel
die Funktionalität schließen kann. Die Schaltfläche um eine Suche zu starten,
ist mit dem Begriff „Abschicken“ beschriftet (blau markiert). Hinter der
Schaltfläche mit der Beschriftung „Neue Anfrage“ verbirgt sich die Funktion
das Formular zurückzusetzen (rot markiert). Der Benutzer wird aufgrund der
Position der Schaltflächen fälschlicherweise dazu verleitet, als Erstes die
Schaltfläche „Neue Anfrage“ zu betätigen. Dies führt dazu, dass die bereits
eingegebenen Daten gelöscht werden und auf dem Bildschirm wieder ein
leeres Formular erscheint.
Dieses negative Beispiel verdeutlicht die Notwendigkeit, dass die Funktionen
selbstbeschreibend benannt werden müssen.
4.2.3 Verständliche Hinweise
Aus der sechsten Anforderung (siehe Abschnitt 3.2.2.3) geht hervor, dass
Fehler durch verständliche Hinweise abgefangen werden müssen.
Wie das Beispiel in Abbildung 4.6 verdeutlicht, ist die Beschriftung, ebenso
wie die Formulierung von Hinweisen, ein wichtiger Punkt der Benutzer-
freundlichkeit. Das Beispiel in Abbildung 4.7 verdeutlicht, dass eine aussage-
kräftige Formulierung wichtig ist. Die Abbildung zeigt den Hinweis, der nach
dem Aufruf einer Adobe Indesign Datei erscheint. Nach dem Klicken auf die
Schaltfläche „OK“ wird die Anwendung wieder geschlossen. Der Benutzer
erhält in diesem Hinweis keinerlei Informationen, um welchen Fehler es sich
handelt. Bei einer benutzerfreundlichen Anwendung müssen Hinweise daher
immer für die Benutzer verständlich sein.
Zusätzlich sollten dem Benutzer immer verschiedene Optionen eröffnet
werden, wie er nach einem Hinweis fortfahren kann. Das kann zum Beispiel
die Möglichkeit sein, den letzten Schritt rückgängig zu machen oder die
Aktion mit veränderten Parametern zu wiederholen.
Konzeption 51
Abbildung 4.7 Fehlermeldung des Programms Adobe Illustrator
verständliche Hinweise
aussagekräftige Formulierung
verschiedene Optionen
4.2.4 Selbsterklärende Funktionalitäten
Wie sich aus der siebten Anforderung ergibt (siehe Abschnitt 3.2.2.4), müssen
Funktionen allgemein verständlich und eindeutig benannt werden.
In traditionellen Anwendungen wird das Aussehen der Interaktions-Elemente
durch das Betriebssystem bzw. durch die entsprechenden Frameworks für
grafische Benutzeroberflächen vorgegeben.
In Web-Anwendungen werden häufig selbst gestaltete Schaltflächen, Links
oder Grafiken zur Navigation verwendet. Es kommt deshalb häufig vor, dass
Navigationselemente von Web-Anwendungen die Erwartungen der Benutzer
nicht erfüllen. Dies liegt daran, dass keine Richtlinien für eine einheitliche
Gestaltung existieren. Diese Erwartungskonformität findet sich bereits in der
Norm DIN EN ISO 9241-10 [37 S.52] zur Softwareergonomie unter dem
Punkt Dialoggestaltung.
Das Web basiert ursprünglich auf der Verwendung von Textlinks zur
Verlinkung von Dokumenten. Heutzutage werden jedoch oft verlinkte
Grafiken zur Navigation eingesetzt. Hier besteht die Problematik darin, dass
der Benutzer nicht erkennen kann, welche Funktion durch ihre Betätigung
ausgelöst wird. Dieser Nachteil kann nur durch den Bekanntheitsgrad
mancher Grafiken ausgeglichen werden. Ein Beispiel dazu ist die
Einkaufswagen-Grafiken für den Warenkorb in einem Online-Shop.
Eine optimale Schaltfläche besteht demzufolge aus einer Kombination von
Grafik und Textlink. Außerdem muss die allgemein übliche Farbsymbolik
durch Farbcodes beachtet werden. Als Beispiel seien hier die Farbe Rot für
Stopp, bzw. Abbruch und die Farbe Grün für Bestätigungen genannt. Der
Benutzer kennt diesen Farbcodes aus seinem Alltag von Ampelanlagen. Diese
farbliche Kennzeichnung sowie die Kombination aus Grafik und Text
erleichtern dem Benutzer die Unterscheidung der einzelnen Optionen.
Konzeption 52
Verlinkung
Abbildung 4.8 Schaltflächen mit Grafik, Farbcode und Beschriftung
selbsterklärende Funktionalitäten
Interaktions-Elemente
Gestaltung von Schaltflächen
Erwartungs-konformität
Das Beispiel (siehe Abbildung 4.9) zeigt einen Entwurf des Autors für drei
Schaltflächen mit verschiedenen Funktionalitäten, die den erläuterten
Prinzipien folgen. In der ersten Zeile sind die Schaltflächen in ihrem
Originalzustand zu sehen, in der zweiten Zeile wird die Veränderung dieser
Schaltflächen durch eine Berührung mit dem Maus-Cursor illustriert.
4.2.5 Visuelle Rückmeldung über den aktuellen Zustand
Wie in der achten Anforderung ersichtlich (siehe Abschnitt 3.2.2.5), muss der
Benutzer immer über den aktuellen Zustand der Anwendung informiert sein.
In der Informatik wird die Interaktion zwischen Mensch und Rechner als
einseitige Handlung gesehen, da es sich hierbei um eine rückkopplungsarme
Aktivität handelt. Es handelt sich trotzdem um einen Kommunikationsprozess,
da der Rechner in diesem Zusammenhang als Kommunikationspartner und
nicht als Übertragungsmedium verstanden wird [vgl. 51].
Bei Web-Anwendungen wird die Aktion des Benutzers und die darauf folgende
Reaktion der Web-Seite als Interaktion verstanden. Mit dem Einsatz von
AJAX-Technik ergeben sich neue Möglichkeiten für die Interaktion mit dem
Benutzer, da während der gesamten Anfrage eine Kommunikation möglich ist
[vgl. 52 S.9]. Aufbauend auf dieser Technik werden im Folgenden einige
Lösungsansätze vorgestellt.
4.2.5.1 Visualisierung von Aktionen
Der Benutzer ist es gewohnt, dass Aktionen auf einer Web-Seite für ihn visuell
erkennbar ist. Wird jedoch die AJAX-Technik auf einer Web-Seite eingesetzt,
führt das dazu, dass die Rückmeldung des Web-Browsers nicht mehr den
Erwartungen der Benutzer entspricht. Eine AJAX-Aktion, wie das Anklicken
eines Links oder das Bestätigen einer Schaltfläche, ist hier nicht mehr durch
einen Ladevorgang erkennbar.
Im Vergleich dazu ergibt sich bei einem normalen Request (ohne Ajax) der
folgende Prozess: Beim Aufruf einer Seite wird die Antwort verarbeitet und der
Web-Browser stellt die Seite dar. Hierzu wird zuerst die URL geladen. Im
Anschluss daran werden der Titel als erstes Element der Web-Seite und danach
die externen Objekte wie Bilder und Scripte geladen. Während diesem
schrittweisen Aufbau der Seite wird der Benutzer durch einen Fortschritts-
Konzeption 53
visuelle Rückmeldung
Kommunikation mit Rechnern
Möglichkeiten mit AJAX
Visualisierung von Aktionen
Ladevorgang im Web-Browser
Schaltflächen mit Icon, Farbe & Text
balken über den Fortschritt des Ladevorgangs informiert. Durch dieses
Verhalten der Web-Browser kann der Benutzer feststellen, ob die angeforderte
Seite geladen wird. Hierbei wird durch den Benutzer vor allem die Änderung
der URL wahrgenommen [vgl. 52 S.6].
Aktionen, die mit AJAX-Mechanismen realisiert werden, erfordern weder
einen kompletten Neuaufbau der Seite, noch wird ein Fortschrittsbalken
angezeigt. Daraus folgt, dass der Benutzer keine automatische Rückmeldung
erfährt und diese gesondert implementiert werden muss.
Dadurch wird das Problem aufgeworfen, dass die eigene Implementierung
unter Umständen nicht der Erwartung des Benutzers entspricht und damit den
Aspekt der Erwartungskonformität nicht erfüllt. Diese Problematik tritt bei
allen AJAX-Lösungen auf. Deshalb hat sich ein Standard für die Visualisierung
von AJAX-Anfragen etabliert. Sobald eine AJAX-Anfrage ausgeführt wird,
erscheint eine zyklische Warteanimation im Zielbereich, bis der Inhalt geladen
ist. Die folgende Abbildung 4.9 zeigt einige Variationen dieser Warteanimation.
Sie bestehen zumeist aus einem im Kreis laufenden Symbol, können aber auch
durch einen sich ständig neu aufbauenden Ladebalken realisiert sein.
4.2.5.2 Visualisierung von Eingaben
Eine oft genutzte AJAX-Funktionalität ist der im Hintergrund automatisch
parallel beginnende Suchprozess während der Eingabe durch den Benutzer.
Bei diesem Prozess taucht die Problematik auf, dass der Benutzer nicht weiß,
wann seine Eingabe abgesendet wurde bzw. ob sie bereits verarbeitet wurde.
Um dem Benutzer eine aktive Rückmeldung zu geben, kann diese Aktion
visualisiert werden. Dies ist zum Beispiel durch die Einfärbung des
Formularfeldes möglich, indem die Eingabe getätigt wurde. Dazu kann man
entweder den Hintergrund oder den Rand mit einer Farbe einfärben, sobald
die Anfrage an den Web-Server geschickt wurde. Um zu verdeutlichen, wann
die Anfrage durch den Web-Server bearbeitet wurde, wird eine zweite Farbe
Konzeption 54
Abbildung 4.9 AJAX-Animationen für Ladevorgänge von AJAXload [53]
keine Rückmeldungen
AJAX-Lösungen
Visualisierung von Eingaben
verwendet. Sobald die Aktion abgeschlossen ist, wird die ursprüngliche Farbe
wieder hergestellt.
In der folgenden Abbildung 4.10 wird ein Eingabefeld vor und nach einer
Eingabe gezeigt. Der Rahmen wird nach der Eingabe orange eingefärbt, sodass
dem Benutzer visuell rückgemeldet wird, dass eine Aktion durchgeführt wird.
Sobald die Anfrage durch den Web-Server bearbeitet wurde, färbt sich der
Rand des Formularfeldes grün und wird danach in seinen Ausgangszustand
zurückversetzt.
4.2.5.3 Visualisierung des Ladevorgangs
Der Zielbereich, in dem Inhalte asynchron nachgeladen werden, wird
markiert. Damit weiß der Benutzer, welcher Teil der Oberfläche sich verändern
wird. Wenn es die technischen Gegebenheiten erlauben, wird zusätzlich der
Fortschritt prozentual in Form eines Ladebalkens dargestellt. Bei
komplizierten Anfragen kann dieser Vorgang in mehrere Schritte unterteilt
werden. Der Benutzer kann somit abschätzen, wie weit der Vorgang
fortgeschritten ist und selbst entscheiden, ob er die Bearbeitung abwartet oder
die Anfrage abbricht.
4.3 Geschwindigkeit
Die Optimierung der Geschwindigkeit ist eines der am meisten diskutierten
Themen der Software-Entwicklung [vgl. 54 S.542]. Eine Anwendung sollte
einerseits möglichst schnell ausgeführt werden, auf der anderen Seite aber
modular aufgebaut und wartungsfreundlich geschrieben sein, was wiederum zu
Einbußen in der Geschwindigkeit führt. Der Kommentar „Premature
Konzeption 55
Eingabefelder
Abbildung 4.10 Beispiel eines Eingabefeldes, dass sich nach der Eingabe verändert
Visualisierung des Ladevorgangs
Geschwindigkeit
optimization is the root of all evil.“ von Donal E. Knuth, einem der Pioniere
der modernen Programmierung, beschreibt diese Problematik [vgl. 55 S.268].
Dieser Abschnitt wird in drei Unterbereiche gegliedert: im den ersten beiden
Teilen wird der Empfang und die Verarbeitung der Daten im Web-Browser
behandelt. Der letzte Teil beschäftigt sich mit der Ausführung der Web-
Anwendung auf einem Web-Server.
4.3.1 Laden von Web-Anwendungen
Wie in der neunten Anforderung dargestellt (siehe Abschnitt 3.2.3.1), muss
eine Web-Anwendung so schnell wie möglich starten.
Der maßgebliche Einflussfaktor in Bezug auf die erzielte Übertragungs-
geschwindigkeit bei Web-Seiten ist die Größe der HTML-Quellcodes. Zum
einen dauert die Übertragung umso länger, je größer des HTML-Quellcode ist
und zum anderen dauert es umso länger, bis die Seite durch den Web-Browser
interpretiert wird.
4.3.1.1 Größe des HTML-Quellcodes
Die Abbildung 4.11 illustriert beispielhaft den Ladevorgang einer Web-Seite.
Hierbei wird angezeigt, in welcher Reihenfolge die einzelnen Elemente geladen
werden und wie viel Zeit sie jeweils benötigen.
In der Abbildung 4.11 fällt der Abstand zwischen dem Ladevorgang des
zweiten und dritten Elements ins Auge. Der Abstand zeigt die Dauer der
Interpretation, da der Web-Browser den geladenen HTML-Quellcode
Konzeption 56
Abbildung 4.11 Ladevorgang der Web-Seiten von http://www.stern.de (erstellt mit Firebug]
Laden von Web-Anwendungen
Größe des HTML-Quellcodes
Reduzierung der HTML-Elemente
analysiert, um zu entscheiden, in welcher Reihenfolge die weiteren Elementen
geladen werden. Um eine höhere Ladegeschwindigkeit zu erzielen, sollte
deshalb die Anzahl der HTML-Elemente reduziert werden. Es lässt sich jedoch
keine Empfehlung aussprechen, auf wie viele Elemente die Seite reduziert
werden soll, da dies von der Geschwindigkeit des Web-Browsers und der Art
der verwendeten Elemente abhängt.
Eine weitere Maßnahme besteht darin, nicht benötigte Zeichen vor der
Auslieferung des HTML-Quellcodes zu löschen. Dabei handelt es sich
beispielsweise um nicht angezeigte Leerzeichen, Tabulatoren, Absätze und
Kommentare. Der Löschvorgang kann entweder manuell oder mit Hilfe von
Tools erfolgen. Eine weitere Methode basiert auf der Verwendung der
Ausgabepufferung in PHP.
Abschließend lässt sich feststellen, dass es ratsam ist, eine fertige Web-Seite
daraufhin zu untersuchen, wie groß die Verzögerungen sind.
4.3.1.2 Verwendung von Frames
Die Verwendung von Frames verursacht eine Verzögerung im Ladevorgang.
Die folgende Abbildung zeigt beispielhaft den Ladevorgang einer Seite, die
Frames einsetzt.
Bei der Verwendung von Frames kommt es zu einer Verzögerung, da zuerst die
Hauptseite mit dem Frame-Set geladen werden muss und erst danach die
restlichen Frames geladen werden (siehe Abbildung 4.12). Enthält jedoch die
Hauptseite große CSS- und JavaScript-Dateien, so wird das Laden der Frames
zusätzlich verzögert.
Konzeption 57
Abbildung 4.12 Verwendung von Frames auf der Seite der Hochschule Albstadt-Sigmaringen
Größe des HTML-Quellcodes
Überprüfung der fertigen Seite
Verzögerungen durch Frames
Verzögerungen durch Frames
4.3.1.3 Komprimierte Übertragung
Eine schnell realisierbare Methode zur Reduzierung der Dateigröße liegt in der
Nutzung einer Komprimierung für die Übertragung. Diese Komprimierung
wird zum Beispiel durch die Verwendung des gzip-Algorithmus realisiert.
Ein Web-Browser, der die Komprimierung unterstützt, schickt mit jedem
Request das Header Feld accept-encoding mit dem Wert gzip an den
Web-Server. Ist diese Option auf dem Web-Server verfügbar, so wird der
auszuliefernde HTML-Quellcode komprimiert. Die folgenden Abbildungen
4.13 und 4.14 verdeutlichen den Größenunterschied zwischen einer Standard-
übertragung und einer komprimierten Übertragung.
In der Abbildung 4.13 wird die Startseite von Stern.de mit eingeschalteter
Komprimierung geladen. Der HTML-Quellcode hat hierbei eine Größe von 28
KByte.
In der Abbildung 4.14 wird der HTML-Quellcode ohne Komprimierung
geladen. Er umfasst dann 126 KByte. Es zeigt sich somit, dass durch eine
Komprimierung die Größe hier um 64,7% reduziert werden kann.
Konzeption 58
Abbildung 4.14 Aufruf der Web-Seite von http://www.stern.de ohne gzip-Komprimierung
Abbildung 4.13 Aufruf der Web-Seite von http://www.stern.de mit gzip-Komprimierung
Reduzierung der Dateigröße
64,7% der Größe reduziert
4.3.1.4 CSS und JavaScript
Moderne Web-Seiten bestehen zu einem großen Teil aus CSS- und
JavaScript-Dateien. Diese können genauso wie HTML-Dateien bei der
Übertragung komprimiert werden.
Außerdem können diese Dateien zusätzlich verkleinert werden, indem die
Formatierung in Bezug auf die Größe optimiert wird. Am Beispiel einer
CSS-Datei von Heise.de [56] werden verschiedene Web-Tools miteinander
verglichen, die eine Optimierung der Formatierung vornehmen. In den
Vergleich wird auch noch die gzip-Komprimierung mit aufgenommen.
Original-Datei 20 KB
Tool 1 (http://compressor.ebiene.de) 17 KB
Tool 2 ( http://compressor.ebiene.de) 15 KB
Tool 3 (http://refresh-sf.com/yui/) 15 KB
Tool 4 (http://www.codebeautifier.com) 14 KB
Tool 5 (http://dean.edwards.name/packer/) 8 KB
Original-Datei + gzip 5 KB
Tool 5 + gzip 4 KB
Tabelle 4.2 Vergleich der verschiedenen Tools für die Komprimierung von CSS-Dateien
Das Ergebnis (siehe Tabelle 4.2) zeigt, dass die maximale Reduzierung der
Größe durch eine Optimierung in diesem Beispiel 60% beträgt. Zusammen mit
der gzip-Komprimierung wird ein Reduktion von 80% erreicht.
Die gleichen Verfahren können auch mit JavaScript-Dateien verwendet
werden. Arthur Blake stellt auf seiner Web-Seite [57] eine Übersicht über die
gängigsten Methoden bereit und zeigt die Komprimierungs-Raten der
gängigsten JavaScript-Frameworks.
Konzeption 59
Komprimierung
Optimierung der Dateien
80% der Größe reduziert
Im Vergleich der verschiedenen Optimierungstools (siehe Abbildung 4.15)
erzielt die Kompression der Yahoo! User Interface (YUI) Library Version 2.5.1
das beste Ergebnis. Die JavaScript-Datei wurde dabei um 93,3% verkleinert
(von 3.598.772 Byte auf 243.750 Byte) [vgl. 58].
Es ist nur schwer möglich, JavaScript im Web-Browser zu optimieren, da sich
die JavaScript-Engines in den verschiedenen Web-Browsern stark
unterscheiden. Die Web-Browser-Hersteller, wie zum Beispiel Mozilla [vgl.
59], arbeiten kontinuierlich an der Verbesserung der Leistung von JavaScript.
Um JavaScript flexibel zu entwickeln, werden für die einzelnen Teile der
Web-Anwendung verschiedene Dateien erstellt. Dies führt zu einer
Beeinträchtigung der Geschwindigkeit, da der Web-Browser die Dateien
stufenweise lädt und interpretiert. Um einen Geschwindigkeitsverlust zu
vermeiden, können alle JavaScript-Dateien eingelesen und in einer zentralen
PHP-Datei zusammengefasst werden. Damit der Web-Browser diese virtuelle
JavaScript-Datei richtig verarbeiten kann, muss im HTTP-Header der Content-
Type auf text/javascript gesetzt werden. Das Setzen eines HTTP-Headers
ist nötig, da der Standard Content-Type von PHP text/html ist.
4.3.2 Reaktion auf Eingaben
Wie aus der zehnten Anforderung hervor geht (siehe Abschnitt 3.2.3.2), muss
eine Web-Anwendung sofort auf eine Eingabe reagieren und gleichzeitig den
Benutzer über den aktuellen Status informieren.
Konzeption 60
Abbildung 4.15 Ausschnitt aus der Tabelle zur Komprimierung der JavaScript-Datei YUI 2.5.1 [58]
93,3% der Größe reduziert
clientseitige Optimierung
JavaScript-Dateien zusammenfassen
sofort auf eine Eingabe reagieren
4.3.2.1 Manipulation der Oberfläche mit JavaScript
Die Reaktion der Oberfläche kann beschleunigt werden, indem Inhalte
versteckt geladen werden, bevor sie benötigt werden. Mittels AJAX werden
Elemente der Oberfläche im Hintergrund geladen, ohne dass der Benutzer
davon etwas mitbekommt. Die geladenen Elemente werden in DIV-Container
gespeichert, die per CSS versteckt werden.
Bei Bedarf werden diese DIV-Container dann eingeblendet. Dies geschieht
durch die Manipulation der CSS-Eigenschaften mit JavaScript. Diese
Funktionalität wird in der Informatik Preload genannt.
4.3.2.2 Einsatz von AJAX
Durch den Einsatz von AJAX wird die Geschwindigkeit erhöht, indem nicht
die komplette Seite, sondern nur ein kleiner Teil der Seite geladen wird. Da es
sich bei diesem Teil nur um einen Bruchteil der gesamten Seite und damit der
gesamten benötigten Daten handelt, kann dieser schneller geladen werden.
4.3.2.3 Lokale Speicherung mit Google Gears
Der größte Nachteil von Web-Anwendungen ist, dass sie nur mit einer
Internet-Verbindung zur Verfügung stehen. Google gleicht dies durch die Web-
Browser-Erweiterung „Gears“ aus.
Gears stellt im Web-Browser eine SQL-Datenbank bereit, die gleichzeitig als
Offline-Speicher und als Möglichkeit zur Beschleunigung von Web-
Anwendungen Verwendung findet [vgl. 60].
Konzeption 61
Abbildung 4.16 Schema der Database API der Browser-Erweiterung Gears von Google Inc. [60]
Preload
Ein- und Ausblenden
asynchronesLaden
Offline-Verfügbarkeit
Beschleunigung
Die Abbildung 4.16 zeigt das Schema von Gears. Die Daten werden im
Offline-Modus in der Datenbank zwischengespeichert. Sobald eine
Verbindung zum Internet besteht, werden diese Daten mit dem Web-Server
synchronisiert.
Die Erweiterung bietet allerdings noch weitere Funktionen, wie zum Beispiel
das Einrichten eines Icons auf dem Desktop für die Offline-Anwendung sowie
die Ausführung von JavaScript im Hintergrund ohne Blockierung des
Web-Browsers [vgl. 61].
Auf Grund der Tatsache, dass für Gears eine Web-Browser-Erweiterung
notwendig ist, wird diese Möglichkeit in der Umsetzung nicht weiter beachtet.
4.3.2.4 Nutzung von Ressourcen der Clients mit „Google Native Client“
Ein weiterer Nachteil ist, dass Web-Anwendungen nur auf die Leistungen des
Web-Browsers zurückgreifen können. Um diesen Nachteil zu kompensieren,
hat Google eine Web-Browser-Erweiterung mit dem Namen Native Client
entwickelt. Google will Web-Anwendungen damit auf die volle Rechenleistung
des Prozessors zugreifen lassen. Durch das Ausführen von nativem Code
direkt auf dem Prozessor, soll dies leistungsfähigere Web-Anwendungen
ermöglichen die unabhängig von Web-Browser und Betriebssystem arbeiten
[vgl. 62].
Das Computer Magazin PC Welt beschreibt den Vorteil des Native Client wie
folgt: „Eine Web-Anwendung wie beispielsweise eine Foto-Sharing-Website
reagiert damit genauso schnell wie eine Desktop-Anwendung, wenn man zum
Beispiel ein Bild bearbeiten will: Bei der bisherigen Lösung, die in der Regel
auf Javascript basiert, müssen alle Änderungen am Bild erst auf den Web-
Server übertragen und dort ausgeführt werden und die Ergebnisse werden
dann wieder auf dem Client des Benutzers angezeigt. Beim Google Native
Client würden laut Google dagegen alle Änderungen am Bild zunächst auf
dem Rechner des Benutzers berechnet und dann erst das fertige Ergebnis auf
den Web-Server übertragen. Das bedeutet eine erhebliche Zeitersparnis.“ [63].
„Im Kern besteht Native Client aus einer Laufzeitumgebung, einem Browser-
Plugin und einer Reihe von GCC-basierten Kompilierungswerkzeugen. Diese
Kombination ermöglicht Anwendungen, die zwar im Browser laufen, aber mit
Konzeption 62
Speicherung in einer Datenbank
Ausführung im Hintergrund
native Ausführung von Codes
volle Leistung des Rechners
Laufzeitumgebung
nativen Code-Modulen arbeiten“, fasst WinFuture die Funktionalität
zusammen [64].
Der Google Native Client benötigt allerdings auch eine Web-Browser-
Erweiterung und wird deshalb in der Umsetzung ebenfalls nicht beachtet.
4.3.3 Verarbeitung von Anfragen
Wie in der elften Anforderung dargestellt (siehe Abschnitt 3.2.3.3), muss die
Verarbeitung der Anfragen auf der Web-Server-Seite effizient erfolgen. Wichtig
dafür ist eine hohe Ausführungsgeschwindigkeit und ein schneller
Datenbankzugriff.
Exemplarisch wird in dieser Arbeit die Verarbeitung mit PHP und die
Speicherung in MySQL betrachtet. Es werden vergleichbare Funktions-
varianten untersucht, um die effizienteste Methode in Bezug auf
Geschwindigkeit herauszufinden. Viele der nachfolgenden Punkte lassen sich
aber auch auf andere Systeme übertragen, da sie allgemeingültig sind.
Um die verschiedenen Funktionen vergleichen zu können, wird die Laufzeit
mit einer PHP-Funktion gemessen (siehe Quellcode 4.2).
Je nach Test wird eine unterschiedliche Anzahl an Durchläufen verwendet, um
einen Wert von circa einer Sekunde zu erhalten. Es handelt sich um bei der
Anzahl von Durchläufen um Unterschiede im Zehnerpotenzbereich. Der
Autor hat sich für diesen Wert entschieden, um eine gute Lesbarkeit und
Vergleichbarkeit zu gewährleisten.
4.3.3.1 Verarbeitung mit PHP
U m d i e Ausführungsgeschwindigkeit von PHP zu untersuchen, werden
verschiedene Vorgehensweisen verglichen, welche zum gleichen Ergebnis
führen. Die Tests wurden unter CentOS 5 mit einem Intel(R) Core(TM)2 Duo
Konzeption 63
effiziente Verarbeitung
PHP und MySQL
Test-System
Messung der Laufzeit
function getmicrotime()
{
list($msek, $sek) = explode(" ",microtime());
return ((float)$msek + (float)$sek);
}
Quellcode 4.2: Funktion zum Messen der Zeit
Anzahl der Test-Durchläufe
E6750 (2.66GHz) Prozessor unter der PHP Version 2.5.6 durchgeführt, die mit
FastCGI in einen Apache 2 eingebunden ist.
Logische Formeln
Bei diesem Test werden ein logischer Operator (Variante 1) und ein bitweiser
Operator (Variante 2) in Bezug auf ihre Ausführungsgeschwindigkeit
verglichen (siehe Tabelle 4.3).
Zeit Quellcode
Variante 1 0,63s if($test == "hallo" && $zahl != ""){}
Variante 2 0,57s if($test == "hallo" & $zahl != ""){}
Tabelle 4.3 Vergleich eines logischen und eines bitweisen Operators - 10.000.000 Durchläufe
Die erste Variante mit einem logischen Operator prüft Aussagen auf ihren
Wahrheitsgehalt (wahr/falsch) ab. Die zweite Variante mit einem bitweisen
Operator vergleicht immer nur zwei Bits miteinander und ist somit schneller.
Der Unterschied beträgt bei 10.000.000 Durchläufen allerdings nur 0,06
Sekunden. Auf Grund des geringen Unterschieds der Ergebnisse der
Auswertung der Operatoren im puncto Geschwindigkeit, hängt die Wahl des
Operators nur von der gewünschten Semantik des Quellcodes ab.
Ausgaben
In diesem Test werden verschiedene Ausgabe-Methoden gegenübergestellt.
Konzeption 64
Operatoren
Ausgabe mit PHP
0,06 Sekunden Unterschied
Zeit Quellcode
Variante 1 0,40s printf("Dies ist ein Test fuer die Ausgabe der
Variable %s und der Variable %s",
$variable1,$variable1);
Variante 2 0,32s print'Dies ist ein Test fuer die Ausgabe der
Variable '.$variable1.' und der Variable '.
$variable2;
Variante 3 0,55s echo"Dies ist ein Test fuer die Ausgabe der
Variable $variable1 und der Variable $variable2";
Variante 4 0,26s echo"Dies ist ein Test fuer die Ausgabe der
Variable ".$variable1." und der Variable ".
$variable2;
Variante 5 0,26s echo'Dies ist ein Test fuer die Ausgabe der
Variable '.$variable1.' und der Variable '.
$variable2;
Tabelle 4.4 Vergleich von fünf Varianten für die Ausgabe in PHP - 1.000 Durchläufe
Die Ergebnisse in der Tabelle 4.4 zeigen keine großen Unterschiede. Allerdings
gab es bei dieser Messung sehr starke Schwankungen bei den einzelnen
Varianten. Die gemessenen Zeiten lagen bei der jeweiligen Variante zum Teil
bei Werten zwischen 0,004 und 1 Sekunde.
Diese Schwankungen lassen sich unter anderem durch den Ausgabepuffer von
PHP erklären. Daher fehlt diesen Werten die Aussagekraft. Der Test wurde
jedoch trotzdem durchgeführt, da die Geschwindigkeit der Ausgabe ein häufig
diskutiertes Thema ist.
Array-Zugriff
Bei diesem Test werden drei verschiedene Varianten verglichen, um
sequenziell auf die Werte eines Arrays zuzugreifen. Hierzu wurde ein Array mit
10 Strings 1.000.000 mal durchgelaufen (siehe Tabelle 4.5).
Zeit Quellcode
Variante 1 2,61s for($i=0;$i<count($array);$i++){}
Variante 2 0,89s $cnt_array = count($array);
for($i=0;$i<$cnt_array;$i++){}
Variante 3 0,83s foreach($array as $item){}
Tabelle 4.5 Vergleich von drei Varianten, um einen Array zu durchlaufen - 1.000.000 Durchläufe
Konzeption 65
Schwankungen in der Messung
Durchlaufen von Arrays
Die erste Variante ist deutlich langsamer als die beiden anderen, da bei jedem
Durchgang die Größe des Arrays erneut berechnet werden muss. Zwischen der
zweiten und dritten Variante gibt es nur einen kleinen Unterschied. Da es sich
bei der dritten Variante um eine speziell für die Verwendung von Arrays
verwendete Funktion handelt, ist diese zu bevorzugen.
Ausführungsgeschwindigkeit
In diesem Test werden die Varianten des Array-Tests auf unterschiedlicher
Hardware mit unterschiedlichen PHP-Versionen wiederholt. Dieser Test wird
durchgeführt, um zu analysieren, welche Auswirkung die CPU und die
verwendete PHP-Version auf die Ausführungsgeschwindigkeit haben.
Variante 1 Variante 2 Variante 3
CentOS 5
C2 Duo 2,66 GHz
PHP 5.2.6
2,61s 0,89s 0,83s
Mac OS X 10.5.6
C2 Duo 2 GHz
PHP 4.4.9
13,61s 9,94s 5,81s
Mac OS X 10.5.6
C2 Duo 2 GHz
PHP 5.2.6
9,25s 3,18s 2,48s
Mac OS X 10.5.5
PPC G4 768 MHz
PHP 4.4.9
85,69s 56,64s 33,94s
Mac OS X 10.5.5
PPC G4 768 MHz
PHP 5.2.6
57,10s 21,91s 16,19s
Tabelle 4.6 Vergleich von PHP-Versionen und CPUs - 1.000.000 Durchläufe
Die Tabelle 4.6 veranschaulicht den Unterschied in puncto Geschwindigkeit
bei der Verwendung von unterschiedlichen Rechnern und PHP-Versionen. Die
Ergebnisse in der ersten Zeile stammen vom gleichen Rechner wie alle
bisherigen Testergebnisse. Dieser Rechner läuft mit CentOS und ist für die
Ausführung von PHP optimiert. Er führt die Beispiele mit Abstand am
schnellsten aus. Außerdem sind bei diesem Rechner die Unterschiede
zwischen den einzelnen Varianten am geringsten. Es zeigt sich also, dass die
Konzeption 66
FOREACH()
Hardware und PHP-Versionen
61,3% Unterschied
CPU einen großen Einfluss auf die Geschwindigkeit des Zugriffs auf einen
Array hat.
Die Ergebnisse der zweiten und dritten Zeile wurden auf einem iMac
gemessen. Die Ergebnisse der letzten beiden Zeilen wurden auf einem
PowerBook ermittelt. Der Unterschied zwischen den PHP-Versionen zeigt sich
am deutlichsten beim PowerBook. Dort war die PHP-Version 5.2.6 um 61,3%
schneller als die PHP-Version 4.4.9. Insgesamt kann man also sagen, dass die
Geschwindigkeit der Anwendung sowohl von der CPU als auch von der
verwendeten PHP-Version abhängig ist.
Fazit
Aufgrund der Ergebnisse aus dem Test zu logischen Formeln, Ausgaben und
Array-Zugriffen kann das Fazit gezogen werden, dass sich eine Optimierung
der Ausführungsgeschwindigkeit während der eigentlichen Programmierung
nicht lohnt. Der Aufwand hierfür würde sich aufgrund der geringen
Unterschiede in den Testergebnissen nicht rechnen. Die größten Unterschiede
entstehen durch die Umsetzung in die Maschinensprache mittels
PHP-Interpreter. Je weniger Schritte benötigt werden, um einen Befehl
darzustellen, desto schneller werden sie abgearbeitet [54 S.542] und desto
schneller ist die Anwendung. Die effizienteste Methode zur Optimierung der
Ausführungs-geschwindigkeit besteht demnach darin, den Ablauf einer
fertigen Anwendung mit einem Profiler zu untersuchen. Auf diese Art werden
gezielt Flaschenhälse aufgespürt, die dann behoben werden können.
4.3.3.2 Speicherung in MySQL
Ein Grundsatz der Entwickler von MySQL ist, dass nur neue Funktion
hinzugefügt werden, die keinen negativen Einfluss auf die Geschwindigkeit der
Anwendung haben [65 S.19]. Dadurch ist MySQL nach der Installation eine
sehr leistungsfähige und performante Datenbank. Eine Verringerung der
Geschwindigkeit kommt entweder durch fehlerhafte MySQL-Server-
Einstellungen, falsch aufgebaute Datenbanken bzw. Tabellen oder schlecht
konzipierte Abfragen zustande. Im Folgenden wird auf diese Faktoren genauer
eingegangen.
Konzeption 67
Untersuchung mit einem Profiler
MySQL- Performance
MySQL-Server-Einstellungen
Ein Geschwindigkeitsvorteil kann durch die Abstimmung des MySQL-Servers
auf die Zielplattform und durch eine Optimierung der Speicherverwaltung
erreicht werden. Das Compilieren des MySQL-Servers auf der Zielplattform
kann die Leistung gegenüber der Verwendung von vorcompilierten Binaries
um bis zu 30% steigern. Dies wird durch einen für den Prozessor optimierten
Compiler und durch das Entfernen von nicht benötigten Funktionen und
Zeichensätzen erreicht [vgl. 65 S. 248].
Die vier wichtigsten Parameter für die Speicherverwaltung in der
Konfigurations-Datei my.cnf s i n d key_buffer_size, table_cache,
read_buffer_size u n d sort_buffer [ v g l . 66 S. 133]. Der Parameter
key_buffer_size bestimmt die Größe des verwendeten Arbeitsspeichers, in
dem die Indizes gespeichert werden. Der Parameter table_cache beschreibt
die maximale Anzahl gleichzeitig geöffneter Tabellen. Mit dem Parameter
read_buffer_size wird die Größe des Speichers festgelegt, der für die
Verarbeitung kompletter Tabellen-Scans benötigt wird. Mit sort_buffer wird
die Größe für den Speicher eingestellt, der für das Sortieren von Tabellen
verwendet wird [vgl. 65 S.249]. MySQL liefert bereits von sich aus
verschiedene Varianten der Konfiguration mit, welche für unterschiedliche
Arbeitsspeichergrößen ausgelegt sind. Allerdings müssen diese mitgelieferten
Varianten, um eine optimale Leistung zu erreichen, an die jeweilige
Anwendung angepasst werden.
Tabellen
Der Aufbau der Datenbanken beziehungsweise der Tabellen hat einen
erheblichen Einfluss auf die Geschwindigkeit der gesamten Anwendung.
Kommt es zu einer verringerten Geschwindigkeit, so kann das mit der
Zwischenspeicherkapazität des Caches zu tun haben.
Um eine möglichst große Anzahl von Tabellen im Cache zwischenspeichern zu
können, muss für jede Spalte der kleinstmögliche Datentyp gewählt werden.
Durch die Wahl des kleinstmöglichen Datentyps werden zudem auch Abfragen
beschleunigt, da weniger Daten übertragen werden müssen.
Des Weiteren nimmt die Länge der Spalten Einfluss auf die Geschwindigkeit.
MySQL ist darauf optimiert, Spalten, die eine feste Länge haben, schneller zu
Konzeption 68
Optimierung der Speicherverwaltung
Parameter- Einstellungen
Aufbau der Tabellen
kleinstmöglichster Datentyp
Länge der Spalten
durchsuchen als Spalten mit flexibler Länge. Spalten mit variabler Länge
enthalten Text- und Binärdaten und müssen deshalb bei jedem Durchlauf
beachtet werden.
Außerdem beeinflussen Indizes die Geschwindigkeit der Anwendung. Bei
Indizes handelt es sich um Spalten, die als Schlüssel für die Auswahl eines
Datensatzes benutzt werden. Sie werden im Arbeitsspeicher zwischen-
gespeichert, um die Anzahl der Zugriffe auf die Festplatte zu reduzieren.
Unnötige Indizes sollten deaktiviert werden, um Speicherplatz zu sparen.
Werden in einer MySQL-Tabelle Datensätze gelöscht, so kommt es zu der
Entstehung von Lücken innerhalb der Dateien von MySQL. Bei zunehmender
Zahl dieser Lücken muss mit einem Geschwindigkeitsverlust gerechnet
werden. Deshalb gibt es einen Befehl, um Tabellen zu optimieren. Dieser
Befehl lautet OPTIMIZE TABLE und führt dazu, dass die Tabelle neu aufgebaut
wird. Dieser Prozess ähnelt dem Defragmentieren einer Festplatte und führt zu
einer Geschwindigkeitszunahme.
Abfragen
Eine grundlegende Regel der Informatik ist, dass nur die notwendigsten Daten
ausgelesen werden sollten. Dies gilt auch für MySQL. Grundsätzlich gilt
nämlich, dass eine Anfrage umso schneller ausgeführt wird, je weniger Daten
zu übertragen sind.
Wie auch in PHP existieren in MySQL für manche Funktionalitäten mehrere
Lösungswege. Im folgenden Abschnitt werden einige verschiedenen
Lösungsvarianten miteinander verglichen. Zunächst wird ein Test zum
Vergleich der verschiedenen Insert-Methoden durchgeführt, die dazu dienen
Datensätze einzutragen (siehe Tabelle 4.7).
Konzeption 69
Indizes optimal definieren
Defragmentierungder Tabellen
nur notwendige Daten ausgelesen
mehrere Lösungswege
Zeit Quellcode
Variante 1 0,39s mysql_query("INSERT INTO insert_tests SET test1=1,
test2=2, test3=3, test4=4, test5=5, test6=6");
Variante 2 0,33s mysql_query("INSERT INTO insert_tests VALUES ('',
1, 2, 3, 4, 5, 6)");
Variante 3 0,35s mysql_query("INSERT INTO insert_tests
(test1,test2,test3,test4,test5,test6) VALUES
(1,2,3,4,5,6)");
Tabelle 4.7 Vergleich von drei verschiedenen Insert-Methoden - 10.000 Durchläufe
Die Tabelle 4.7 lässt erkennen, dass es sich bei der zweiten Variante um die
schnellste Lösung handelt. Dies liegt daran, dass bei diesem Lösungsansatz
nur die Variablen gesetzt werden und auf die Übertragung der Spaltennamen
verzichtet werden kann. Bei dieser Lösungsvariante werden demzufolge die
wenigsten Daten übertragen.
Allerdings sind die Unterschiede zwischen den einzelnen Varianten so gering,
dass sie erst bei 10.000 Durchläufen wirklich gemessen werden können. Auf
Grund dieser minimalen Unterschiede entscheidet man sich oft für die
Variante, die am besten lesbar ist. In diesem Beispiel trifft dies auf die erste
Variante zu.
Im folgenden Test wird untersucht, mit welcher Variante am schnellsten auf
die Daten einer Tabelle zugegriffen werden kann. Die erste Variante gibt als
Ergebnis ein Array mit numerischem Index zurück, die zweite Variante
hingegen gibt ein Array mit assoziativem Index zurück. Dieser assoziative
Index verwendet als Bezeichnung den Spaltennamen. Bei der dritten Variante
handelt es sich um eine Kombination der ersten beiden Varianten. Die letzte
Variante gibt schließlich ein Objekt zurück, auf das mit den Spaltennamen
zugegriffen werden kann. Die Ergebnisse werden in der folgenden Tabelle 4.8
veranschaulicht.
Konzeption 70
schnelles Speichern
fast kein Unterschied
schnelles Auslesen
Zeit Quellcode
Variante 1 0,43s $einlesen = mysql_query("SELECT
text1,text2,text3,text4 FROM select_tests");
while($item = mysql_fetch_row($einlesen)) {}
Variante 2 0,43s $einlesen = mysql_query("SELECT
text1,text2,text3,text4 FROM select_tests");
while($item = mysql_fetch_assoc($einlesen)) {}
Variante 3 0,44s $einlesen = mysql_query("SELECT
text1,text2,text3,text4 FROM select_tests");
while($item = mysql_fetch_array($einlesen)) {}
Variante 4 0,44s $einlesen = mysql_query("SELECT
text1,text2,text3,text4 FROM select_tests");
while($item = mysql_fetch_object($einlesen)) {}
Tabelle 4.8 Vergleich von vier verschiedenen Zugriffsmethoden - 10.000 Durchläufe
Bei diesem Test lassen sich in Bezug auf die zur Ausführung benötigten Zeit
selbst nach 10.000 Durchläufen kaum Unterschiede zwischen den einzelnen
Varianten erkennen. Aufgrund der quasi identischen Ergebnisse erhalten alle
Varianten bei der Verwendung den gleichen Stellenwert.
Im jetzt folgenden Test wird die Verwendung von Prioritäten an MyIsam-
Tabellen untersucht. Eine MyIsam-Tabelle sperrt den lesenden Zugriff auf eine
Zeile, solange ein schreibender Zugriff mit den Befehlen SET, UPDATE oder
DELETE ausgeführt wird. Im Allgemeinen kann davon ausgegangen werden,
dass die Geschwindigkeit, mit der ein lesender Zugriff ausgeführt wird, die
Geschwindigkeit der Ausgabe maßgeblich beeinflusst. Demzufolge sollte ein
lesender Zugriff priorisiert behandelt werden.
Die erste Variante wird zur Ermittlung eines Referenzwertes genutzt. Hierzu
wird ohne Steuerung der Priorität ein lesender Zugriff direkt nach einem
schreibenden Zugriff ausgeführt. In der zweiten Variante wird zuerst der
lesende Zugriff mit hoher Priorität (HIGH_PRIORITY) ausgeführt und danach
der schreibende Zugriff mit niedriger Priorität (LOW_PRIORITY).
Als Letztes wird in der dritten Variante der Schreibzugriff durch den Befehl
DELAYED solange zurückgestellt, bis MySQL keine andere Aufgabe mehr
abzuarbeiten hat.
Konzeption 71
quasi identische Ergebnisse
Priorisierung
LOW_PRIORITY & HIGH_PRIORITY
DELAYED
Zeit Quellcode
Variante 1 0,78s $test1=mysql_fetch_assoc(mysql_query("SELECT test
FROM priority_tests WHERE id='1'"));
mysql_query("UPDATE priority_tests SET test='2',
test2='hallo', test3='blubber' WHERE id=1");
Variante 2 0,88s $test1=mysql_fetch_assoc(mysql_query("SELECT
HIGH_PRIORITY * FROM priority_tests2 WHERE id='1'
"));
mysql_query("UPDATE LOW_PRIORITY priority_tests SET
test='2', test2='hallo', test3='blubber' WHERE
id=1");
Variante 3 0,37s $test1=mysql_fetch_assoc(mysql_query("SELECT
HIGH_PRIORITY * FROM priority_tests2 WHERE
id='1'"));
mysql_query("UPDATE DELAYED priority_tests SET
test='2', test2='hallo', test3='blubber' WHERE
id=1");
Tabelle 4.9 Test der Priorisierung in MySQL - 6 Blöcke á 1.000 Durchläufe
In der Ergebnistabelle 4.9 lässt sich erkennen, dass es sich bei der dritten
Variante um die schnellste Methode handelt. Sie ist 52,6% schneller als die
Referenz. Jedoch hat diese Methode auch einen erheblichen Nachteil, denn sie
verzögert unter hoher Last den Schreibvorgang unkontrolliert. Bei einem
Systemabsturz gehen die zwischengespeicherten Daten verloren, da sie sich bis
zu diesem Zeitpunkt nur im Arbeitsspeicher befinden. In Puncto
Geschwindigkeit erzielt die zweite Variante das schlechteste Ergebnis. Dies
liegt an der Priorisierung, die einen Overhead erzeugt und damit die
Geschwindigkeit der Anfrage insgesamt reduziert. Der Overhead entsteht
durch die Zwischenspeicherung und Neuanordnung der Anfragen.
Beim nächsten Test (siehe Tabelle 4.10) geht es um einen Vergleich zwischen
gepufferten und ungepufferten Anfragen. Zur Durchführung dieses Tests wird
eine Tabelle mit 148.634 Zeilen ausgelesen, die die Längen- und Breiten-Grade
fast aller Städte der Erde enthält. Um eine Datenverarbeitung zu simulieren,
erfolgt eine Entfernungsberechnung zwischen Albstadt und den Städten, die in
der Tabelle enthaltenen sind.
Konzeption 72
52,6% schneller
MySQL-Pufferung
Zeit Zeit bis zurersten
Bearbeitung
Quellcode
Variante 1 1,07s 0,316s $einlesen = mysql_query("SELECT
latitude,longitude FROM geo_cities");
while($item = mysql_fetch_assoc($einlesen))
{
// Berechnung zur Entfernung
}
Variante 2 0,81s 0,002s $einlesen = mysql_unbuffered_query("SELECT
latitude,longitude FROM geo_cities");
while($item = mysql_fetch_assoc($einlesen))
{
// Berechnung zur Entfernung
}
Tabelle 4.10 Vergleich von gepufferten und ungepufferten Abfragen in MySQL - 10.000 Durchläufe
In der ersten Variante wird eine normale Abfrage gestellt. MySQL speichert
das Ergebnis so lange, bis die Abfrage komplett abgearbeitet wird und liefert
sie dann an PHP aus. In der zweiten Variante wird dies mit der Funktion
mysql_unbuffered_query() unterbunden.
Die Ergebnistabelle veranschaulicht, dass die ungepufferte zweite Variante die
Anfrage schneller abarbeitet. Um dieses Verhalten erklären zu können, wurde
bei beiden Varianten die Zeit bis zur ersten Rückgabe als weiterer Messwert
erfasst.
Die erste Variante lieferte erst nach 0,316 Sekunden einen Wert zurück. Im
Vergleich dazu lieferte die zweite Variante bereits nach 0,002 Sekunden einen
ersten Wert zurück.
Als letzter Test erfolgt ein Geschwindigkeitsvergleich zwischen einer in PHP
und einer in MySQL ausgeführten Rechenoperation.
Konzeption 73
mysql_unbuffered_query()
ungepufferte Variante
erster Wert nach 0,002 Sekunden
Rechenoperationen
Zeit Quellcode
Variante 1 0,51s $item = mysql_fetch_assoc(mysql_query("SELECT
sum(latitude) as summe FROM geo_cities"));
Variante 2 4,31s $einlesen = mysql_unbuffered_query("SELECT latitude
FROM geo_cities");
while($item = mysql_fetch_assoc($einlesen)) {
$summe+=$item[latitude];
}
Tabelle 4.11 Vergleich von Rechenoperationen in MySQL und PHP - 10.000 Durchläufe
Das Ergebnis in der Tabelle 4.11 zeigt, dass die Rechenoperation in MySQL
um 88,2% schneller ausgeführt wurde als in PHP. Dies liegt daran, dass in der
zweiten Variante die Daten zunächst an PHP übergeben werden müssen,
bevor PHP mit der Rechenoperation beginnen kann. Dieser umständlichere
Prozess führt zu einem enormen Geschwindigkeitsverlust.
Die deutlichen Ergebnisse in puncto Geschwindigkeit sprechen dafür, wenn
möglich immer MySQL-Funktionen zu nutzen. Das setzt selbstverständlich
voraus, dass MySQL die benötigten Funktionen bereitstellt.
Fazit
Pauschal lässt sich für MySQL keine eindeutige Empfehlung aussprechen, da
es immer auf die Umgebung und die verwendeten Daten ankommt. Daher gilt
für MySQL die gleiche Empfehlung wie für PHP, dass während der
Ausführung die Web-Anwendung analysiert werden sollte und so
Verzögerungen gefunden werden können. Wenn in MySQL zwei verschiedene
Varianten einer Abfrage existieren, lassen sie sich mit der Funktion
BENCHMARK() vergleichen. Diese Funktion führt zum Test eine Anfrage
mehrmals hintereinander aus und ermittelt daraus die durchschnittliche
Laufzeit. Um gezielt langsame Abfragen aufzuspüren, kann in der
Konfigurationsdatei der Befehl log-slow-queries aktiviert werden. Es wird
dann, sobald eine Anfrage das definierte Zeitlimit überschritten hat, ein
Eintrag in einer Protokoll-Datei erstellt.
Wie auch in PHP gilt in MySQL, dass sich eine Optimierung während der
Entwicklung nicht lohnt, da sich Optimierungspunkte, wie beispielsweise ein
Flaschenhals meist erst im Betrieb zeigen.
Konzeption 74
MySQL 88,2% schneller
Vergleiche mit BENCHMARK()
Flaschenhälse
4.4 Sicherheit
Unternehmen sind sich bewusst, dass Web-Anwendungen ein Sicherheitsrisiko
darstellen können. Außerdem ist zu beachten, dass für die Benutzer die
Sicherheit ein wichtiger Punkt ist, der darüber entscheidet, ob sie der
Web-Anwendung vertrauen [vgl. 67]. Allerdings ist eine absolute Sicherheit
niemals wirklich möglich, da jede Absicherung mit genügend Wissen und Zeit
umgangen werden kann. Daher spricht man von relativer Sicherheit, die darin
besteht, dass einem Angreifer das Erreichen seines Ziels möglichst schwer
gemacht wird. Der Aufwand soll durch diese Maßnahme den Wert des
möglichen Nutzens übersteigen [vgl. 68 S.4].
Die Verfügbarkeit von Web-Anwendungen wird somit gleichzeitig zu ihrem
Vor- und Nachteil. Das Problem besteht darin, dass auch nicht autorisierte
Personen möglicherweise auf die Daten und Anwendungen zugreifen können,
da diese im Prinzip weltweit für jeden verfügbar sind. Es besteht daher eine
erhöhte Gefahr von Angriffen auf Daten im Netz, da diese auf Grund
technischer Hilfsmittel relativ leicht zu realisieren sind und die Gefahr, dabei
entdeckt zu werden, sehr gering ist. Der hohe Anonymitätsgrad senkt dabei die
Hemmschwelle für die Verletzung von Gesetzen.
Durch die einfache Nutzung von Web-Anwendungen werden diese auch von
Benutzern eingesetzt, die keine fundierten Kenntnisse im Software-Bereich
besitzen. Dadurch kann es dazu kommen, dass sich diese Benutzer nicht
angemessen vor einem Angriff schützen. Deshalb muss die Anwendung dafür
sorgen, dass der Benutzer auf mögliche Gefahrenquellen aufmerksam gemacht
wird und alle nötigen Funktionen für die Absicherung bereitgestellt werden.
Um den Zugriff von unbefugten Dritten auf die Daten zu verhindern, kann
zum Beispiel eine Verschlüsselung der Daten bereits bei der Kommunikation
zwischen Web-Browser und Web-Server sowie bei der Speicherung relevanter
Daten erfolgen.
4.4.1 Verschlüsselter Austausch von Daten
Wie aus der zwölften Anforderung hervorgeht (siehe Abschnitt 3.2.4.1),
müssen vom Benutzer generierte Daten immer verschlüsselt übertragen
werden.
Konzeption 75
relative Sicherheit
Angriffe auf Web-Anwendungen
Benutzer mit wenig Erfahrung
Verschlüsselung
verschlüsselte Kommunikation
4.4.1.1 Hash-Algorithmen
Der Hash-Wert einer Datei kann mit dem Fingerabdruck des Menschen
verglichen werden, da er eine nahezu eindeutige Kennzeichnung eines
Datensatzes erstellt.
Um Daten sicher zu vergleichen, die sowohl im Web-Browser als auch auf dem
Web-Server vorhanden sind, wird ein Hash-Wert auf der Web-Browser-Seite
generiert. Dieser wird zum Web-Server übertragen und dort mit dem
serverseitig generierten Hash-Wert verglichen. Stimmen diesen beiden
Hash-Werte überein, so sind die eingegebenen Daten mit einer sehr hohen
Wahrscheinlichkeit identisch. Es kann nicht zu 100% garantiert werden, da
jede Hash-Funktion durch die Länge des Hash-Werts eingeschränkt ist.
Dadurch gibt es nur eine begrenzte Anzahl an möglichen Werten.
Der am häufigsten eingesetzte Hash-Algorithmus ist MD5. Dieser gilt
allerdings seit 2004 nicht mehr als sicher, da es in diesem Jahr einem Team
chinesischer Wissenschaftler gelungen ist, die erste Kollision in der
vollständigen MD5-Funktion zu generieren. Auf einem IBM-P690-Cluster
benötigte der erste Angriff etwa eine Stunde, weitere Kollisionen ließen sich
innerhalb von fünf Minuten finden [vgl. 69].
Ein andere Variante, um einen Hash-Wert zu knacken, ist die Verwendung von
Datenbanken mit gespeicherten Hash-Werten. Die Abbildung 4.17 zeigt zwei
Screenshots des Online-Dienstes von HASHCRACK.COM [70]. Dort kann
man ein beliebiges Wort eingeben und erhält dann den entsprechenden
Hash-Wert dafür. Diese Anfragen werden in der Datenbank gespeichert,
Konzeption 76
Hash-Wert
Hash-Kollision
MD5 und SHA265
Abbildung 4.17 Generierung von Hash-Werten über ein Online-Portal [70]
Datenbanken mit Hash-Werten
wodurch auch Hash-Werte eingegeben werden können, um das entsprechende
Wort im Klartext zu bekommen.
Um einen sicheren Hash-Algorithmus zu verwenden wird daher der
SHA256-Algorithmus benutzt. Er kann mit dem verwendeten Verfahren und
256 Bit momentan als sicher angesehen werden [vgl. 71]. Allerdings ist
abzusehen, das mit der steigenden Leistung der Rechner auch für SHA265
solche Datenbanken entstehen werden.
Eine Variante, um die Hash-Werte sicherer zu machen, ist die Verwendung von
Salted Hashes. Dabei wird für die Generierung des Hash-Wertes eine
zusätzliche feste Zeichenkette mitverwendet.
4.4.1.2 Schlüsselaustausch
Bei der Verschlüsselung von Daten gibt es derzeit zwei unterschiedliche
Technologien: zum einen die asymmetrische und zum anderen die
symmetrische Verschlüsselung. Bei der symmetrischen Verschlüsselung besteht
der Nachteil im sicheren Austausch des Schlüssels. Beim Standardvorgehen
wird im Web-Browser ein Schlüssel erzeugt, der dann per SSL zum
Web-Server übertragen wird. Alle weiteren Daten, die der Web-Server an den
Web-Browser überträgt, werden mit diesem Schlüssel verschlüsselt [72 S.98].
Um die Sicherheit weiter zu erhöhen und um das Abfangen der Daten durch
Dritte zu erschweren, wird für den Fall, dass kein SSL vorhanden ist, der
Schlüsselaustausch mit einem Schlüsselaustausch-Algorithmus erzeugt. Für
dieses Vorgehen eignet sich das Diffie-Hellman-Schlüsselaustausch-Protokoll.
Damit erzeugen zwei Kommunikationspartner einen geheimen Schlüssel, der
nicht von anderen abgehört werden kann [vgl. 73]. Dieses Verfahren wird
anhand eines Beispiels von Wikipedia [vgl. 73] in der Abbildung 4.18 erklärt.
Konzeption 77
Diffie-Hellman
Austausch des Schlüssels
SHA265
Salted Hashes
In diesem Beispiel von Wikipedia [vgl. 73] ist Alice der Web-Server und Bob
der Web-Browser.
1. Alice und Bob einigen sich auf p = 13 und g = 2.
2. Alice wählt die Zufallszahl a = 5. Bob wählt die Zufallszahl b = 7.
3. Alice berechnet A = 25mod 13 = 6 und sendet dieses Ergebnis an Bob.
4. Bob berechnet B = 27mod 13 = 11 und sendet dieses Ergebnis an Alice.
5. Alice berechnet K = 115mod 13 = 7.
6. Bob berechnet K = 67mod 13 = 7.
7. Beide erhalten das gleiche Ergebnis K = 7.
Ein eventuell vorhandener Lauscher könnte zwar die Zahlen 13 (p), 2 (g), 6
(A) und 11 (B) mithören, das eigentliche gemeinsame Geheimnis von Alice
und Bob K = 7 bleibt ihm aber verborgen. In einer realen Anwendung werden
größere Zahlen verwendet, damit das Erraten der Zahl durch Ausprobieren
erschwert wird.
Dieser Algorithmus ist anfällig gegen einen Man-in-the-Middle-Angriff.
Hierbei befindet sich zwischen den Kommunikationspartnern ein Angreifer,
der den eingesetzten Diffie-Hellman-Algorithmus kennt. Er simuliert die
jeweilige Gegenstelle und generiert mit beiden Kommunikationspartnern einen
Konzeption 78
Abbildung 4.18 Schematische Darstellung des Diffie-Hellman-Schlüsselaustausch Protokolls [73]
Man-in-the-Middle-Angriff
Schlüssel. Dieser kann dann später verwendet werden, um eine synchrone
Verschlüsselung zu entschlüsseln und neu verschlüsselt weiterzuleiten.
Dadurch wäre es für einen Angreifer möglich, die Kommunikation abzuhören,
ohne dass die Kommunikationspartner davon Kenntnis erhalten.
Um dies zu verhindern, können digitale Signaturen oder Message
Authentication Codes (MAC) verwendet werden.
Für eine digitale Signatur wird ein Schlüsselpaar verwendet, das aus einem
privaten und öffentlichen Schlüssel besteht. Der private Schlüssel wird für die
Berechnung eines Werts der zu übertragenden Daten verwendet. Mit dem
öffentlichen Schlüssel kann jeder überprüfen, ob der Wert für die Daten
korrekt ist [vgl. 74].
Der Message Authentication Code (MAC) funktioniert ähnlich wie eine
Hash-Funktion. Zusätzlich wird aber ein geheimer Schlüssel verwendet, der
mit dem erzeugten Hash-Wert verrechnet wird. Dadurch kann sichergestellt
werden, dass der Hash-Wert nicht von einem Angreifer generiert wurde [vgl.
75].
Auf Wikipedia [75] wird der Unterschied zwischen den beiden Verfahren so
beschrieben: „MACs unterscheiden sich von digitalen Signaturen darin, dass
die Erstellung und Verifikation des MACs mit demselben Schlüssel geschieht.
Das bedeutet, dass der Sender und der Empfänger vorher einen geheimen
Schlüssel ausgetauscht haben müssen. Aus diesem Grunde eignen sich MACs
lediglich für symmetrische Verschlüsselungsverfahren.“.
4.4.1.3 Verschlüsselung
Um potentiellen Angreifern das Abfangen der Daten zu erschweren, werden
diese verschlüsselt übertragen. Die einfachste Variante ist die Verwendung von
SSL für die Übertragung. Dieses Verfahren basiert auf einer asymmetrischen
Verschlüsselung mit einem öffentlichen und einem privaten Schlüssel. Die
Daten im Web-Browser werden mit dem öffentlichen Schlüssel verschlüsselt
und so an den Web-Server geschickt. Sie können nur auf dem Web-Server mit
dem privaten Schlüssel wieder entschlüsselt werden. Allerdings werden alle
Daten, die vom Web-Server an den Web-Browser geschickt werden, so
verschlüsselt, dass sie mit dem öffentlichen Schlüssel wieder entschlüsselt
Konzeption 79
digitale Signaturen
Message Authentication Code
HyperText Transfer Protocol Secure
werden können. Das hat zur Folge, dass jeder, der die gesamte Kommuni-
kation abgehört hat, diese Daten entschlüsseln kann [72 S.251].
Um das zu verhindern, werden die Daten separat auf dem Web-Server mit
einer symmetrischen Verschlüsselung verschlüsselt. Um die Sicherheit weiter
zu erhöhen, werden die Daten auch auf der Web-Browser-Seite verschlüsselt,
sodass keine Kommunikation unverschlüsselt stattfindet.
Als Algorithmus wird der Advanced Encryption Standard (AES) verwendet, da
das Verfahren als sicher gilt [vgl. 71] . AES ist ein symmetrisches
Verschlüsselungsverfahren. Es wurde von Joan Daemen und Vincent Rijmen
entwickelt und vom amerikanischen National Institute of Standards and
Technology (NIST) standardisiert. AES arbeitet mit einer festen Blockgröße
von 128 Bit. Der Schlüssel kann 128 Bit (AES-128), 192 Bit (AES-192) oder
256 Bit (AES-256) lang sein [vgl. 76].
Um die Geschwindigkeitsverzögerung so gering wie möglich zu halten, werden
nur Daten und keine Gestaltungselemente wie Grafiken oder HTML
verschlüsselt.
4.4.2 Sicheres Speichern von Daten
Wie in der dreizehnten Anforderung dargestellt (siehe Abschnitt 3.2.4.2),
müssen die vom Benutzer generierten Daten immer verschlüsselt gespeichert
werden.
Um eine weitere Sicherheitsstufe zu erreichen, werden die Daten verschlüsselt
abgespeichert. MySQL stellt entsprechende Funktionen bereit, um Daten
verschlüsselt in einer Datenbank zu speichern. Für die Verschlüsselung steht
die Funktion AES_ENCRYPT('demo','$mysql_pwd') und für die Entschlüs-
selung die Funktion AES_DECRYPT(username,'$mysql_pwd')bereit. Der
Schlüssel wird direkt im PHP-Quellcode gespeichert. Um diesen zu schützen,
muss zusätzlich eine Verschlüsselung des PHP-Quellcodes eingesetzt werden
[77].
Konzeption 80
nur Daten werden verschlüsselt
Advanced Encryption Standard
symmetrische Verschlüsselung
MySQL- Verschlüsselung
sicheres Speichern
5 UmsetzungIn diesem Kapitel werden einige Anforderungen, die im Kapitel 3.2 aufgestellt
und im Kapitel 4 ausgearbeitet wurden, exemplarisch in einem Prototyp
umgesetzt. Auf Grund des zeitlichen Rahmens der Diplomarbeit wurden nicht
alle Anforderungen umgesetzt.
Der Prototyp (siehe Abbildung 5.1) demonstriert eine sichere Anmeldung und
zeigt ein Beispiel für eine Benutzeroberfläche, die eine effiziente Bedienung
ermöglicht. Bei der Anmeldung werden die Daten verschlüsselt übertragen und
danach wird sofort die Benutzeroberfläche angezeigt. Als Beispiel-
Funktionalität wurde eine Aufgabenverwaltung implementiert. Wird eine neue
Aufgabe angelegt, wird diese sofort angezeigt und im Hintergrund auf dem
Web-Server gesichert.
5.1 Ladevorgang
Im nachfolgenden Abschnitt wird der Ladevorgang des Prototyps erläutert.
Das Ziel war, dass der Prototyp möglichst schnell geladen wird (siehe neunte
Anforderung 3.2.3.1). Diese Anforderung wurde mit der Komprimierung der
Daten und der Verringerung der Anzahl der HTML-Requests erfüllt (siehe
Abschnitt 4.3.1).
Umsetzung 81
exemplarische Umsetzung
schneller Ladevorgang
Abbildung 5.1 Login und Oberfläche des Prototyps
5.1.1 Komprimierung der Dateien
Die Komprimierung von Dateien wird aktiviert, um die Größe der Dateien, die
durch den Web-Browser zu ladenden sind zu reduzieren. Die Daten der
HTML-Seiten, CSS- und JavaScript-Dateien werden mit dem gzip-Algorithmus
komprimiert. Dazu wurde eine Funktion in PHP realisiert, die überprüft, ob
der Web-Browser diese Art der Komprimierung unterstützt. Ob die
Komprimierung durch den Web-Browser unterstützt wird, kann über die
Umgebungsvariable HTTP_ACCEPT_ENCODING mit der Funktion getenv()
abgefragt werden. Beinhaltet die Variable die Zeichenkette gzip, wird die
Ausgabepufferung mit dem Parameter ob_gzhandler gestartet. Die oben
beschriebenen Funktionalitäten werden in der Funktion my_obstart()
zusammengefasst (siehe Quellcode 5.1).
Um die Kompression auch für CSS- und JavaScript-Dateien zu nutzen, müssen
diese entweder in einer PHP-Datei ausgegeben werden oder in eine externe
Datei eingelesen werden (siehe Abschnitt 4.3.1.4). Die zweite Variante bietet
zudem den Vorteil, dass gleichzeitig mehrere Dateien eingelesen werden
können und damit die Anzahl der Requests reduziert wird. Bei diesem
Verfahren werden mehrere Dateien in einer virtuellen Datei zusammengefasst,
die dann komprimiert an den Web-Browser übertragen wird.
Damit der Web-Browser hierbei die Datei richtig interpretiert, wird das
Header-Feld content-type gesetzt (siehe Abschnitt 4.3.1.4). Gleichzeitig wird
die Funktion für die Komprimierung aufgerufen. Danach wird die
entsprechende Datei mit der Funktion file_get_contents() ausgelesen und
anschließend eingebunden.
Umsetzung 82
gzip- Komprimierung
Verringerung der Requests
Header-Feld
function my_obstart() {
$encode = getenv("HTTP_ACCEPT_ENCODING");
if(ereg("gzip",$encode)) {
ob_start("ob_gzhandler");
} else {
ob_start();
}
}
Quellcode 5.1: Überprüfung ob die gzip-Komprimierung unterstützt wird
Um eine weitere Reduzierung der Dateigrößen zu erreichen, werden
Kommentare, unnötige Absätze und unnötige Leerzeichen in den Dateien mit
der Funktion preg_replace() entfernt (siehe Quellcode 5.2).
Die Funktion zum Entfernen der Leerzeichen musste jedoch bei CSS-Dateien
deaktiviert werden, da es aufgrund der Kurzschreibweise von CSS-
Eigenschaften zu Schwierigkeiten kommen kann und eine Kompatibilität
nicht gewährleistet ist. Als Beispiel sei hier die Definition eines Rahmens
aufgeführt. In der Kurzschreibweise lautet sie „border: 1px solid black;“.
Durch die Entfernung der Leerzeichen wird diese Anweisung jedoch verändert
und wird zu „border:1pxsolidblack;“. Diese Variante kann nicht mehr vom
Web-Browser interpretiert werden.
Die virtuelle CSS-Datei wird im <head>-Bereich der HTML-Seite geladen und
ist dadurch für die Darstellung sofort verfügbar. Das führt dazu, dass Elemente,
die geladen sind, sofort angezeigt werden.
Die JavaScript-Dateien wurden in zwei Teile aufgeteilt. Der erste Teil wird am
Ende der Seite eingebunden und beinhaltet die Scripte für den Login. Durch
die Einbindung am Seitenende wird diese JavaScript-Datei vor den restlichen
Scripten geladen und initialisiert den Login.
Außerhalb des <body>-Bereichs werden alle anderen Scripte in eine virtuelle
JavaScript-Datei eingebunden und geladen.
Umsetzung 83
nicht benötigte Zeichen
CSS-Datei
JavaScript-Dateien
include('../../../prog/functions.inc.php');
header("Content-type: text/css");
my_obstart();
// main.css
$str_output = file_get_contents('main.css');
$str_output = preg_replace('#//.*#', "", $str_output);
$str_output = preg_replace('#\n|\n\r|\r|\t#', "", $str_output);
//$str_output = str_replace(' ','',$str_output);
echo $str_output;
Quellcode 5.2: Entfernung der nicht benötigten Zeichen
5.1.2 Asynchrones Laden von Inhalten
Nachdem alle Daten der ersten Seite geladen wurde, wird die Verschlüsselung
initialisiert. Dieser Vorgang wird im nächsten Abschnitt (siehe Abschnitt 5.2)
beschrieben. Nach der Initialisierung werden die graphischen Elemente der
Oberfläche versteckt geladen.
Per AJAX wird dazu das Grundgerüst der Benutzeroberfläche geladen und in
einem versteckten DIV-Element gespeichert (siehe Abschnitt 4.3.2.1).
5.2 Anmeldung
Nach dem Aufruf des Login beginnt die Initialisierung der Verschlüsselung für
die sichere Datenübertragung. Als Erstes wird ein asynchroner Schlüssel-
austausch gestartet, damit der Web-Browser und der Web-Server einen
sicheren Schlüssel für die weitere Verschlüsselung besitzen.
Das JavaScript, das den Login initialisiert, ist in einer PHP-Datei (siehe
Abschnitt 4.3.1.4) eingebettet. Diese Datei lädt als virtuelle JavaScript-Datei
die benötigten Scripte für den Diffie-Hellman-Algorithmus (siehe Abschnitt
4.4.1.2) und den AES-Algorithmus (siehe Abschnitt 4.4.1.3).
5.2.1 Schlüsselaustausch
Der erste Teil des Diffie-Hellman-Algorithmuses wird in PHP ausgeführt. Der
berechnete Wert A wird als Variable in die JavaScript-Datei geschrieben.
Zusätzlich wird der Wert A in der Datenbank mit der Session gespeichert, um
später darauf zugreifen zu können.
Nachdem der Web-Browser die JavaScript-Datei geladen hat, wird der Diffie-
Hellman-Algorithmus im Web-Browser ausgeführt. Dazu wird als Erstes der
Wert B errechnet und mit dem von PHP generierten Wert A verglichen.
Daraufhin steht der Schlüssel S im Web-Browser zu Verfügung.
Der verwendete Algorithmus erzeugt einen 256Bit Schlüssel. Da allerdings
andere Implementierungen auch unterschiedliche Schlüssellänge erzeugen
können, wird grundsätzlich ein neuer Schlüssel erzeugt. Um die Sicherheit
weiter zu erhöhen wird eine Zeichenkette mit zufälligen Zeichen generiert.
Diese Zeichenkette wird mit AES und unter Verwendung des Schlüssels S
Umsetzung 84
Preload
Initialisierung der Verschlüsselung
Schlüsselaustausch
Diffie-Hellman-Algorithmus
verwendete Algorithmen
neuer Schlüssel
verschlüsselt. Nun wird per AJAX sowohl der Wert B als auch die
verschlüsselte Zeichenkette an den Web-Server übertragen.
Sobald der Web-Server diese Daten erhalten hat, wird dort ebenfalls der
Schlüssel S errechnet und somit die Zeichenkette entschlüsselt. Zusätzlich
wird im Anschluss eine neue Zeichenkette auf dem Web-Server generiert. Der
Web-Server setzt nun die empfangene und die selbst generierte Zeichenkette
zu einem neuen Schlüssel zusammen. Dieser neue Schlüssel wird für die
weitere Verschlüsselung verwendet. Dieser neue Schlüssel wird wiederum in
der MySQL-Datenbank mit der Session-ID gespeichert. Die generierten Werte
des Diffie-Hellman-Algorithmuses werden aus der Datenbank gelöscht, in der
sie zwischengespeichert waren.
Die auf dem Web-Server neu generierte Zeichenkette wird nun ein letztes Mal
mit dem alten Schlüssel S verschlüsselt und in ein unsichtbares Eingabefeld
geschrieben. Dieser Vorgang ist notwendig, damit der Web-Browser ebenfalls
in den Besitz des neuen Schlüssels kommt. Zusätzlich zum unsichtbaren
Eingabefeld wird die Schaltfläche zum Anmelden mit an den Web-Browser
geschickt.
Der Web-Browser empfängt die AJAX-Response und entschlüsselt den Inhalt
des versteckten Feldes mit dem alten Schlüssel S. Im Anschluss daran setzt
auch der Web-Browser die beiden Zeichenketten zusammen und erhält auf
diesem Wege ebenfalls den neuen Schlüssel.
5.2.2 Verschlüsselte Übertragung der Daten
Nachdem der Benutzer den Benutzernamen und das Passwort eingegeben und
das Formular abgesendet hat, werden diese Daten verschlüsselt. Per JavaScript
werden die Eingaben ausgelesen und mit AES unter Verwendung des
Schlüssels aus Abschnitt 5.2.1 verschlüsselt (siehe Quellcode 5.3).
Umsetzung 85
zufällige Zeichenkette
neuer Schlüssel
Daten verschlüsseln
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
var username_crypt = AESEncryptCtr(username, key, 256);
var password_crypt = AESEncryptCtr(password, key, 256);
Quellcode 5.3: Auslesen der verschlüsselten der Daten für die Anmeldung im Web-Browser
Mittels AJAX werden die beiden Zeichenketten an den Web-Server geschickt.
Dieser entschlüsselt als Erstes die beiden Zeichenketten, um sie mit den Daten
in der verschlüsselten MySQL-Datenbank abzugleichen. Diese Methode wird
im nächsten Abschnitt 5.2.2.1 ausführlicher erläutert.
Nach der Überprüfung des Benutzernamens und des Passwortes durch den
Web-Server, wird eine verschlüsselte Antwort an den Web-Browser zurück
geschickt. Diese beinhaltet die Information, ob der Benutzername und das
Passwort korrekt sind. Sind die Daten korrekt, wird der Login ausgeblendet
und an dieser Stelle die eigentliche Benutzeroberfläche eingeblendet.
5.2.2.1 Sicheres Speichern von Daten
Nach dem Konzept in Abschnitt 4.4.2 werden die Daten der Benutzer
verschlüsselt in einer Datenbank gespeichert. Dazu stellt MySQL eine
Funktion bereit, um die Daten einer Tabelle mittels AES zu verschlüsseln. Das
Beispiel (siehe Quellcode 5.4) zeigt die Abfrage für die Überprüfung des
Benutzernamens und Passwortes. Als Passwort dient hier eine fest codierte
Zeichenkette, die in einer PHP-Datei abgelegt ist.
Umsetzung 86
MySQL- Verschlüsselung
Überprüfung
mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE
username = AES_ENCRYPT('$username','$mysql_pwd') AND password =
AES_ENCRYPT('$password','$mysql_pwd')"));
Quellcode 5.4: MySQL-Abfrage unter Verwendung von AES_ENCRYPT
AES_ENCRYPTAES_DECRYPT
5.3 Benutzeroberfläche
D i e i n 4.2.1 aufgestellten Konzepte zur optimalen Gestaltung einer
Benutzeroberfläche wurden in diesem Prototyp umgesetzt. Der Login ist, wie
in der folgenden Abbildung 5.2 zu sehen, übersichtlich und zweckmäßig
gestaltet.
Der übersichtliche Gesamteindruck ergibt sich dadurch, dass nur wenige
Farben verwendet wurden. Dabei orientiert sich die Farbgebung an den
Aussagen aus Kapitel 4.2.1.2.
Die Überschrift eines Bereichs wird in der Farbe Orange dargestellt. Sie ist auf
einem dunkelgrauen Hintergrund abgebildet. Dieser dunkelgraue Balken dient
immer als Platzhalter für die jeweilige Überschrift. An diesen Bereich schließt
sich jeweils ein Bereich mit einem grauen Hintergrund an. Jeder Bereich wird
somit durch eine typische Farbgebung abgegrenzt.
Diese typische Farbgebung erleichtert dem Benutzer die Unterscheidung
zwischen Inhaltselementen und aktiven Elementen. Enthält ein Bereich eine
Auswahlmöglichkeit in Form einer Schaltfläche, so wird dieser auf einem
hellgrauen Balken am unteren Ende des aktiven Elements angebracht.
Umsetzung 87
Login
Farbschema
Die Schaltflächen wurden gemäß der in Abschnitt 4.2.4 beschriebenen
Anforderungen in Bezug auf die Gestaltung realisiert. Bei jeder Schaltfläche
befindet sich im linken Bereich ein Symbol, dessen Hintergrundfarbe sich
ändert, wenn der Benutzer die Maus über diesen Bereich führt. Außerdem
verwandelt sich der Cursor von einem Pfeil in einen Zeiger (Handsymbol).
Diese Cursorform ist dem Benutzer von Hyperlinks geläufig. Die Beschriftung
wird mit einem hohen Kontrast zum Hintergrund rechts neben dem Icon
dargestellt. Die Größe lässt sich mit der Größe von Standard- Schaltflächen
aus HTML vergleichen. Bei Standard-Schaltflächen besteht jedoch die
Problematik, dass sie abhängig vom Betriebssystem unterschiedlich dargestellt
werden. Wohingegen die Schaltflächen des Prototyps auf jedem Betriebssystem
gleich aussehen.
Nach erfolgreichem Abschluss des Logins gelangt man zur Darstellung der
eigentlichen Benutzeroberfläche (siehe Abbildung 5.3).
Hier befindet sich das Hauptmenü in einem dunkelgrauen Balken am oberen
Rand. Die Größe der Schaltflächen wurde so angepasst, dass sie leicht
auswählbar sind. Hierzu wurde die Höhe der Schaltfläche so gewählt, dass sie
Umsetzung 88
Schaltflächen
Hauptmenü
dreimal so hoch wie die Beschriftung ist. Die Beschriftung an sich ist jedoch
mittig zentriert.
Wird durch den Klick einer Schaltfläche eine Kategorie ausgewählt, so färbt
sich die Schaltfläche orange und die Beschriftung wird schwarz. Durch dieses
Verhalten der Schaltflächen ist es einfach zu sehen, welche Kategorie aktiv ist.
In der Kategorie „Startseite“ befindet sich auf der linken Seite der Bereich
Aufgaben und auf der rechten Seite der Bereich Termine. Der Bereich
Aufgaben befasst sich mit der Verwaltung von Aufgaben und wird durch vier
Reiter in die einzelnen Teilbereiche gegliedert. Der Benutzer erkennt anhand
der Farbkodierung, welche Bereiche aktiv und welche inaktiv sind. Inaktive
Reiter werden hier mit einem hellgrauen Hintergrund dargestellt, aktive Reiter
hingegen haben die gleiche Farbe wie der Inhalt (in diesem Falle die Farbe
weiß). Durch den Farbunterschied ist auch hier sofort ersichtlich, welcher
Reiter aktiv ist.
5.4 Interaktion
Die Benutzeroberfläche wurde so konzipiert, dass sie möglichst schnell auf
eine durch den Benutzer ausgelöste Aktion reagiert.
Die HTML-Daten, die zur Darstellung der Kategorien benötigt werden, sind
bereits durch das asynchrone Laden (siehe Abschnitt 4.3.2.2) vorhanden.
Klickt ein Benutzer nun auf eine Schaltfläche im Hauptmenü, wird per
JavaScript die vorhandene Kategorie ausgeblendet und stattdessen die
ausgewählte Kategorie eingeblendet. Dies geschieht über die Manipulation der
CSS-Eigenschaften mit JavaScript (siehe Quellcode 5.5).
Umsetzung 89
Kategorien
Reaktion der Benutzeroberfläche
function navigation(target){
for (var i = 0; i < nav_structure.length; ++i){
if(nav_structure[i]==target){
document.getElementById(nav_structure[i]+
"_content").style.display = 'block';
}
else{
document.getElementById(nav_structure[i]+
"_content").style.display = 'none';
}
}
}
Quellcode 5.5: Ein- und ausblenden per JavaScript
Preload
Mit Hilfe dieser Technik kann sehr schnell zwischen den einzelnen Kategorien
gewechselt werden, wodurch die typischen Verzögerungen bei Ladevorgänge
entfallen (siehe Abschnitt 4.3.2.1).
Diese Technik wird auch bei den Reitern im Bereich der Aufgabenverwaltung
verwendet. Sobald der Benutzer einen Reiter auswählt wird der Inhalt des
Registers ohne Verzögerung angezeigt (siehe Abbildung 5.4).
Aus der zehnten Anforderung ergibt sich, dass eine Web-Anwendung sofort
auf eine Eingabe reagieren muss und dem Benutzer eine Rückmeldung geben
sollte (siehe Abschnitt 3.2.3.2). Als Beispiel für die Erfüllung dieser
Anforderungen dient die Funktionalität zum Hinzufügen einer neuen Aufgabe.
Werden unter dem Menüpunkt „neue Aufgabe“ die Felder ausgefüllt und wird
danach die Schaltfläche „Aufgaben hinzufügen“ als Bestätigung ausgewählt, so
wechselt die Anzeige zum ersten Reiter und stellt die Aufgabe sofort dar (siehe
Abbildung 5.5).
Umsetzung 90
Preload
sofortige Reaktion
Abbildung 5.4 Hinzufügen einer neuen Aufgabe
Diese Funktionalität wird durch das Hinzufügen der HTML-Daten der neuen
Aufgabe per JavaScript realisiert. Dazu werden die Textfelder (siehe Abbildung
5.4) ausgelesen und am Ende an die vorhandenen Aufgaben angefügt.
Dadurch reagiert die Eingabe sofort. Zusätzlich werden die eingegebenen
Daten mit AES verschlüsselt und per AJAX an den Web-Server geschickt und
dort gespeichert. Nach einem erfolgreichen Speicherprozess erscheint am
Ende des Bereichs ein entsprechender Hinweis, um den Benutzer zu
informieren, dass die Daten gespeichert sind.
Umsetzung 91
asynchronesSpeichern
Abbildung 5.5 Darstellung der neuen Aufgabe
6 Zusammenfassung und AusblickIn diesem Kapitel wird die Arbeit zusammengefasst und ein Fazit gezogen.
Abschließend wird ein Ausblick auf weitere Entwicklungen gegeben.
6.1 Zusammenfassung
Ziel dieser Arbeit war es, durch eine Befragung von Benutzern Anforderungen
an asynchrone Web-Anwendungen zu erheben.
In der Informatik werden bekannte Vorgehensweisen und vorhandene
Strategien häufig auf neue Entwicklungen und Systeme übertragen. Dadurch
werden jedoch selten alle neuen Funktionalitäten nutzbar und dies führt dazu,
dass Benutzer diese Systeme zunächst nicht akzeptieren. Diese Problematik
tritt auch beim Einsatz von AJAX in Web-Anwendungen auf.
Die Benutzer wurden in einem Fragebogen zu ihren Erwartungen gegenüber
einer guten Web-Anwendung befragt. Die Antworten der Teilnehmer wurden
ausgewertet und daraus dreizehn zentrale Anforderungen bestimmt.
Anschließend wurden aus diesen Anforderungen praktische Konzepte
entwickelt und aus diesen Erkenntnissen ein Prototyp erarbeitet. Dieser
Prototyp demonstriert eine sichere Anmeldung sowie ein Konzept für eine
schnelle und effiziente Bedienung der Oberfläche.
Der Prototyp erfüllt einige speziell ausgewählte Anforderungen, jedoch war die
Umsetzung mit einem großen Eigenentwicklungsaufwand verbunden. Zur
Verringerung dieses Aufwandes wäre es von Vorteil, wenn die Arbeit von
einem Framework unterstützt werden würde. Damit eine schnelle und robuste
Entwicklung von Web-Anwendungen gewährleistet werden kann, müssten die
einzelnen Konzepte aus Kapitel 4 in einem Framework gekapselt werden.
Dieses zu entwickelnde Framework sollte Aufgaben, wie zum Beispiel die
Optimierung der JavaScript-Dateien, die Komprimierung und den Ausgleich
der Web-Browser-Unterschiede automatisch übernehmen. Diese Idee könnte
in einer weiteren Arbeit verfolgt werden.
Die Auswertung des Fragebogens hat gezeigt, welche nicht-funktionalen
Anforderungen dem Benutzer besonders wichtig sind. Dabei wurden Aspekte,
Zusammenfassung und Ausblick 92
neue Funktionalitäten
Durchführung
nicht-funktionalen Anforderungen
Zielsetzung
Notwendigkeit von Frameworks
die den Punkten Geschwindigkeit, Sicherheit und Benutzerfreundlichkeit
zugeordnet werden können, am häufigsten genannt.
Gerade mit einem hohen Grad an Benutzerfreundlichkeit kann sich eine
Web-Anwendung von konkurrierenden Web-Anwendungen abheben, die eine
ähnliche Funktionalität bieten. Diese nicht-funktionalen Anforderungen sind
oft für den Erfolg einer Web-Anwendung verantwortlich und sollten daher
immer beachtet werden.
Die Statistiken, die im Abschnitt 2.5.3 behandelt wurden, zeigen dabei das
Potential von Web-Anwendungen. In vielen Bereichen existieren bereits heute
Web-Anwendungen und es zeichnet sich ab, dass es in Zukunft auch für
hochspezialisierte Bereiche Lösungen geben wird. Daher lohnt es sich, vor der
Neuentwicklung einer Anwendung, zu evaluieren, ob eine webbasierte
Umsetzung in Betracht gezogen werden kann oder bevorzugt werden sollte.
Zusammen mit dem SaaS-Konzept eröffnet dies auch kleinen Unternehmen
die Möglichkeit, eigene Web-Anwendungen zu entwickeln. Ferner wird durch
die Erschließung neuer Absatzmärkte über die Webdistribution die Anzahl der
verfügbaren Lösungen in den nächsten Jahren noch weiter steigen.
6.2 Ausblick
Diese Diplomarbeit ist auf das Potential von Web-Anwendungen detailliert
eingegangen, die Techniken wie AJAX verwenden. Für die Benutzer und
Entwickler gibt es jedoch nicht nur Vorteile, sondern auch einige Nachteile,
die im Vergleich zu lokal installierten Anwendungen zu beobachten sind.
Auf Grund der Komplexität des Themas und der gewählten Zielsetzung bei
dieser Diplomarbeit besteht die Möglichkeit, einige der nur kurz an-
gesprochenen Ideen in weiteren Arbeiten genauer zu untersuchen.
Es könnte sich zum Beispiel eine Arbeit mit der Sicherheit von Servern
auseinandersetzen. Hierzu müssen beispielsweise die Bereiche Web-Server,
PHP und MySQL ausführlich untersucht werden, um so eine sichere Basis für
asynchrone Web-Anwendungen zu schaffen.
Ein anderes Beispiel bezieht sich auf die Nutzung von Web-Browser-
Erweiterungen wie Java-Applets und Adobe Flash, die dazu genutzt werden
Zusammenfassung und Ausblick 93
abheben von der Konkurrenz
Lösungen mit Web-Anwendungen
neue Funktionalitäten
asynchrone Web-Anwendungen
Web-Browser- Weiterentwicklung
Sicherheit
könnten, asynchrone Web-Anwendungen durch neue Funktionalitäten zu
erweitern.
Zusätzlich werden durch die Weiterentwicklung der Web-Browser und ihrer
Erweiterungen neue Funktionalitäten entstehen. Wie zum Beispiel die geplante
Erweiterung von Google Gears, um Benutzer lokal zu benachrichtigten [vgl.
61]. Diese müssen dann bei der Neu- oder Weiterentwicklung von
Web-Anwendungen beachtet werden.
Der Autor hat bereits während dieser Diplomarbeit begonnen, die
gewonnenen Erkenntnisse in laufende Projekte und neue Entwicklungen mit
einzubeziehen. Nach Abschluss dieser Arbeit erfolgt zunächst die
Überarbeitung der vorhandenen Projektverwaltung (siehe Abschnitt 1.3) in der
Gute Aussicht Kommunikations GmbH.
Zusammenfassung und Ausblick 94
Folgeprojekt
A - Fragebogen
Auf den folgenden Seiten ist der eingesetzte Fragebogen dargestellt. Die
folgende Abbildung verdeutlicht nochmals den Aufbau des Fragebogens. Der
Aufbau, sowie die Auswertung sind in Kapitel 3 detailliert beschrieben.
A - Fragebogen 95
Abbildung 6.1 Aufbau des Fragebogens
Markenkommunikation 972 m ü. NN
Fragebogen zum Thema „Was macht eine gute Software aus?“
Sehr geehrte/r Teilnehmer/innen,
mit diesem Fragebogen unterstützen Sie meine Diplomarbeit, die ich an der Hochschule
Albstadt-Sigmaringen im Studiengang Kommunikations- und Softwaretechnik schreibe.
Bei meiner Diplomarbeit geht es um die Erhebung von spezifischen Anforderungen von
Internet-Anwendungen oder einfacher ausgedrückt: Ich möchte herausfinden, welche
Eigenschaften eine Internet-Anwendung haben muss, um vom Benutzer als „gut“ bezeichnet
zu werden. Internet-Anwendungen sind zum Beispiel Routenplaner, Webmailer oder Wikis.
Die Ergebnisse der Befragung werden anonymisiert ausgewertet. Sollten Sie weitere Fragen
zum Fragebogen oder Probleme beim Ausfüllen haben, wenden Sie sich bitte an mich.
Ich bedanke mich im Voraus ganz herzlich für Ihre Unterstützung.
Mit freundlichen Grüßen
Tobias Scheible
Bitte füllen Sie den Fragebogen bis zum 19. November 2008 aus und geben Sie ihn an die Person zurück, von der Sie ihn erhalten haben oder schicken Sie ihn:
- per Fax an 0 74 31.93 63-30
- per E-Mail an scheible@gute-aussicht.de
- per Post an Gute Aussicht Kommunikations GmbHTobias ScheibleSchmiechastr. 5072458 Albstadt
Wenn Sie Interesse an der Auswertung haben, sende ich Ihnen gerne eine Kopie per E-Mail zu.
E-Mail Adresse:
Gute AussichtKommunikations GmbHSchmiechastraße 5072458 Albstadt
+ 49.74 31.93 63-21Fax +49.74 31.93 63-30scheible@gute-aussicht.dewww.gute-aussicht.de
Amtsgericht Stuttgart, HRB Nr. 401118Ust-Id-Nr. DE 196 98 36 47Geschäftsführer Michael LöfflerSteuer-Nr. 5300400704
Sparkasse Zollernalb, BLZ 65351260Kontonummer 66122678IBAN DE40 6535 1260 0066 1226 78BIC-Code SOLADE1BAL
Umfrage: „Was macht eine gute Software aus?“
1. Allgemeine Fragen
Die Antworten dienen zur statistischen Auswertung.
männlich weiblich Alter:
1.1 Wie viele Jahre Computererfahrung haben Sie?
1.2 Wie viele Stunden am Tag verbringen Sie durchschnittlich
(privat und geschäftlich zusammen) am Computer?
1.3 Wie viele Stunden davon verbringen Sie im Internet?
1.4 Welchen Abschluss (Schule/Ausbildung/Hochschule) haben Sie?
1.5 Welche Position haben Sie in Ihrem Unternehmen?
- weiter auf der nächsten Seite -
Tobias Scheible (scheible@gute-aussicht.de) Seite 1 von 5
Umfrage: „Was macht eine gute Software aus?“
2. Internet-Nutzung
Bitte kreuzen Sie die für Sie zutreffenden Antworten an.
2.1 Welchen Internetanschluss benutzen Sie privat?
keinen Anschluss Modem ISDN
UMTS/GPRS DSL Kabel / Satellit
Sonstige:
weiß ich nicht
2.2 Greifen Sie mit mobilen Endgeräten (Handy, Smartphone oder PDA) auf das Internet zu?
ja nein
2.3 Welche Internet-Browser benutzen Sie?
Internet Explorer Mozilla Firefox Apple Safari
Sonstige:
2.4 Nutzen Sie persönlich Internet-Anwendungen (Google Maps, Webmailer, Routenplaner, etc.) ?
ja nein
2.5 Haben Sie schon einmal einen kostenpflichtigen Dienst (digitale Zeitungs-Abonnements, kostenpflichtige Informationen, schnellere Downloads, etc.) im Internet genutzt?
ja nein
- weiter auf der nächsten Seite -
Tobias Scheible (scheible@gute-aussicht.de) Seite 2 von 5
Umfrage: „Was macht eine gute Software aus?“
3. Internet-Anwendungen
Bitte kreuzen Sie die für Sie zutreffenden Antworten an.
3.1 Werden in Ihrem Unternehmen Internet-Anwendungen (Webforen, Webblogs, Wiki-Systeme, etc.) eingesetzt?
ja nein weiß ich nicht
3.2 Können Sie sich vorstellen, Informationen und Dateien (E-Mails, Dokumente, Bilder, etc.) im Internet zu speichern und zu verwalten?
ja nein weiß ich nicht
Wenn Sie nicht mit „ja“ geantwortet haben, warum?
3.3 Können Sie sich vorstellen, Anwendungen (Office, Verwaltungs-Programme, Kalender, etc.) über einen Internet-Browser zu benutzen?
ja nein weiß ich nicht
Wenn Sie nicht mit „ja“ geantwortet haben, warum?
3.4 Können Sie sich vorstellen, anstatt eine Lizenz für eine Software zu kaufen, eine monatliche Gebühr für eine Internet-Anwendung zu bezahlen (Miet-Lizenz)?
ja nein weiß ich nicht
Wenn Sie nicht mit „ja“ geantwortet haben, warum?
- weiter auf der nächsten Seite -
Tobias Scheible (scheible@gute-aussicht.de) Seite 3 von 5
Umfrage: „Was macht eine gute Software aus?“
4. Eigenschaften von Software
Bitte erläutern Sie Ihre Gedanken zu den folgenden Fragestellungen (aus Anwendersicht).
4.1 Was macht für Sie persönlich eine gute Software aus?
4.2 Nennen Sie Beispiele, was Sie an Software stört (häufige Fehler, fehlende Funktionen, etc.).
- weiter auf der nächsten Seite -
Tobias Scheible (scheible@gute-aussicht.de) Seite 4 von 5
Umfrage: „Was macht eine gute Software aus?“
5. Bewertung von Software-Eigenschaften
Bewerten Sie bitte die einzelnen Eigenschaften nach ihrer Nützlichkeit (aus Anwendersicht).(-2 = gar nicht nützlich | -1 kaum nützlich | 0 = mittelmäßig nützlich | +1 = ziemlich nützlich | +2 = außerordentlich nützlich)
Sicherheit
> Benutzeranmeldung mit sicheren Passwörtern
> automatische Abmeldung nach längerer Zeit bei Inaktivität
> verschlüsselte Verbindungen über das Netzwerk/Internet
> Passwörter müssen regelmäßig geändert werden
> Schutz vor Datendiebstahl durch verschlüsselte Datenbanken
Geschwindigkeit
> schneller Start und Verfügbarkeit einer Anwendung
> Rückmeldung nach einer Eingabe, dass Daten verarbeitet werden
> Informationen, warum es zu einer Verzögerung kommt
Bedienbarkeit
> übersichtliche Darstellung der Informationen
> ansprechende Gestaltung der Oberfläche der Anwendung
> leicht verständliche und übersichtliche Menüstruktur zur Navigation
> nicht verwendete Elemente werden ausgeblendet
> aufgabenorientierte und intuitive Bedienung
> Oberfläche umschaltbar zwischen Hilfemodus und Expertenmodus
Fehlertoleranz
> Bestätigung von wichtigen Aktionen wie z. B. Löschen einer Datei
> automatische Fehlerkorrektur bei fehlerhaften Eingaben
> automatischer Neustart nach einem Fehler
> verständliche und einfache Fehler-Meldungen
Integrationsfähigkeit
> Möglichkeiten zur Anbindung an andere Anwendungen (Schnittstellen)
> gleichzeitiger Zugriff auf gemeinsame Daten (kollaborativ)
> optische Anpassung der Anwendung an das System
> Anpassbarkeit an individuelle Vorlieben
Datenkonsistenz
> automatisches Speichern im Hintergrund während der Bearbeitung
> Versionsverwaltung oder Einsehen von Bearbeitungsschritten
> Verfügbarkeit der Rückgängig-Funktion bei allen Eingaben
> Schutz der Daten vor Veränderung durch eine „Sperr“-Funktion
> Möglichkeit zur Archivierung des aktuellen Stands
Vielen Dank für Ihre Unterstützung!
Tobias Scheible (scheible@gute-aussicht.de) Seite 5 von 5
-2 -1 0 +1 +2
B - Auswertung der Fragebögen
Auf den folgenden zwei Seiten wird die Tabelle für die Auswertung der
Fragebögen dargestellt.
B - Auswertung der Fragebögen 102
Au
sw
ert
un
g d
er
Fra
ge
bö
ge
n
Se
ite
1
Bla
tt/A
ntw
ort
1,0
11
,02
1,0
31
,04
1,0
51
,06
1,0
71
,08
1,0
92
,01
2,0
22
,03
2,0
42
,05
2,0
62
,07
2,0
82
,09
2,1
02
,11
2,1
22
,13
2,1
42
,15
2,1
62
,17
2,1
83
,01
3,0
23
,03
3,0
43
,05
SA
H
Fra
ge
bo
ge
n 1
12
31
01
01
,51
11
11
11
11
Fra
ge
bo
ge
n 2
12
68
51
11
11
11
11
1
Fra
ge
bo
ge
n 3
12
51
41
07
11
11
11
11
Fra
ge
bo
ge
n 4
13
82
04
0,5
11
11
11
11
1
Fra
ge
bo
ge
n 5
13
17
10
1,5
11
11
11
11
Fra
ge
bo
ge
n 6
12
31
05
31
11
11
11
11
Fra
ge
bo
ge
n 7
12
56
10
41
11
11
11
1
Fra
ge
bo
ge
n 8
13
42
01
01
,51
11
11
11
11
Fra
ge
bo
ge
n 9
13
08
61
11
11
11
11
1
Fra
ge
bo
ge
n 1
01
24
12
99
,51
11
11
11
1
Fra
ge
bo
ge
n 1
11
35
10
10
51
11
11
11
1
Fra
ge
bo
ge
n 1
21
26
16
12
12
11
11
11
11
Fra
ge
bo
ge
n 1
31
20
81
23
11
11
11
11
1
Fra
ge
bo
ge
n 1
41
24
14
10
81
11
11
11
11
Fra
ge
bo
ge
n 1
51
27
17
30
,51
11
11
11
1
Fra
ge
bo
ge
n 1
61
29
15
84
11
11
11
11
Fra
ge
bo
ge
n 1
71
32
16
72
11
11
11
11
1
Fra
ge
bo
ge
n 1
81
28
13
81
,51
11
11
11
11
Fra
ge
bo
ge
n 1
91
55
30
81
11
11
11
11
1
Fra
ge
bo
ge
n 2
01
26
15
83
11
11
11
Op
era
11
11
Fra
ge
bo
ge
n 2
11
27
15
10
10
11
11
11
11
11
Fra
ge
bo
ge
n 2
21
27
10
81
11
11
11
11
1
Fra
ge
bo
ge
n 2
31
32
13
60
,51
11
11
11
1
Fra
ge
bo
ge
n 2
41
26
14
14
13
11
Wa
n1
11
1O
pe
ra,
Ko
nq
ue
ror
11
11
Fra
ge
bo
ge
n 2
51
40
20
50
,51
11
11
11
11
1
Fra
ge
bo
ge
n 2
61
27
12
71
11
11
11
1
Fra
ge
bo
ge
n 2
71
26
87
0,5
11
11
11
11
1
Fra
ge
bo
ge
n 2
81
31
12
91
11
11
11
11
Fra
ge
bo
ge
n 2
91
28
13
10
2,5
11
11
11
11
1
Fra
ge
bo
ge
n 3
01
29
12
81
,51
11
Op
era
11
11
Fra
ge
bo
ge
n 3
11
37
20
10
11
11
11
Op
era
, C
hro
me1
11
1
Fra
ge
bo
ge
n 3
21
37
25
93
,51
11
11
11
11
Fra
ge
bo
ge
n 3
31
27
14
93
11
11
11
11
1
Fra
ge
bo
ge
n 3
41
23
15
21
,51
11
11
11
1
Fra
ge
bo
ge
n 3
51
24
11
43
,51
11
11
11
1
Fra
ge
bo
ge
n 3
61
24
20
12
91
11
11
11
11
1
Fra
ge
bo
ge
n 3
71
24
10
10
21
11
11
Op
era
11
11
Fra
ge
bo
ge
n 3
81
56
12
21
11
11
11
11
Fra
ge
bo
ge
n 3
91
29
19
10
21
11
11
Op
era
11
1
Fra
ge
bo
ge
n 4
01
25
19
13
11
11
11
11
1
Fra
ge
bo
ge
n 4
11
25
15
52
11
11
11
11
11
1
Fra
ge
bo
ge
n 4
21
24
15
10
51
11
11
11
1
Fra
ge
bo
ge
n 4
31
55
16
10
,51
11
11
11
1
Fra
ge
bo
ge
n 4
41
24
12
52
11
11
11
11
1
Fra
ge
bo
ge
n 4
51
21
10
51
11
1O
pe
ra1
11
1
Fra
ge
bo
ge
n 4
61
23
10
76
11
11
11
1
Fra
ge
bo
ge
n 4
71
24
12
52
11
11
11
11
1
Fra
ge
bo
ge
n 4
81
44
28
61
11
11
11
11
11
Fra
ge
bo
ge
n 4
91
40
25
71
,51
11
11
11
11
Fra
ge
bo
ge
n 5
01
28
14
16
61
11
11
11
11
Fra
ge
bo
ge
n 5
11
23
17
10
2,5
11
11
11
11
Fra
ge
bo
ge
n 5
21
20
66
61
11
11
11
1
Fra
ge
bo
ge
n 5
31
25
81
02
11
11
11
11
1
Fra
ge
bo
ge
n 5
41
38
20
92
11
11
11
11
Fra
ge
bo
ge
n 5
51
33
25
10
31
11
11
11
11
11
Su
mm
e3
52
01
62
77
96
44
21
72
22
42
93
02
54
62
02
14
41
31
47
12
05
32
16
39
41
86
39
13
Pro
ze
nt
63
,64
36
,36
29
,58
14
,47
8,0
36
3,1
27
40
7,2
73
52
,73
5,4
55
03
,63
69
,09
18
3,6
43
,63
60
3,6
36
25
,45
74
,55
56
,36
85
,45
21
,82
09
6,3
63
,63
62
9,0
97
0,9
17
4,5
51
4,5
51
0,9
17
0,9
12
3,6
4
Au
sw
ert
un
g d
er
Fra
ge
bö
ge
n
Se
ite
2
3,0
63
,07
3,0
83
,09
3,1
03
,11
3,1
25
,01
5,0
25
,03
5,0
45
,05
5,0
65
,07
5,0
85
,09
5,1
05
,11
5,1
25
,13
5,1
45
,15
5,1
65
,17
5,1
85
,19
5,2
05
,21
5,2
25
,23
5,2
45
,25
5,2
65
,27
11
21
20
12
12
22
21
22
21
12
22
12
21
22
2
11
01
21
12
10
1-1
20
10
10
-12
21
01
21
11
2
11
10
1-1
22
20
2-1
1-1
2-1
21
12
11
-1-1
21
22
1
11
12
22
02
21
02
22
-22
22
10
22
20
00
-12
22
11
21
12
22
01
22
22
21
22
02
22
20
11
22
2
11
10
2-2
12
22
22
21
20
20
02
01
10
21
22
2
11
21
20
02
01
2-1
2-2
20
21
-11
22
-21
01
22
0
11
22
22
22
22
22
22
21
20
02
11
-11
21
22
2
11
20
20
22
22
22
22
20
21
02
11
12
12
20
1
11
21
22
21
11
21
20
20
20
-22
11
22
21
22
2
11
11
0-1
-2-2
-12
-2-1
22
22
20
2-2
-20
22
22
20
2-1
2
11
11
11
12
11
11
-1-1
02
21
-12
11
22
21
12
2
11
10
1-1
12
11
22
10
10
21
00
11
10
21
01
1
11
10
2-1
12
11
20
1-2
0-1
0-1
-21
01
-11
12
20
0
11
0-1
2-2
22
22
21
22
2-1
21
-12
01
00
20
20
1
11
11
20
21
21
20
2-1
1-1
21
-22
21
01
01
21
1
11
21
11
11
22
22
20
20
20
02
00
00
11
1-1
-1
11
-2-2
0-2
02
22
22
2-1
01
20
02
10
10
11
21
0
11
1-1
2-1
12
21
21
2-1
20
11
02
01
01
10
21
0
11
22
20
22
20
22
1-1
1-1
22
-22
22
01
01
10
2
11
0-1
2-2
22
22
22
20
2-2
01
-11
22
01
0-1
20
-1
11
21
20
22
22
21
20
21
20
-12
10
-11
11
21
2
11
22
20
21
10
20
2-1
20
20
-20
11
00
11
10
1
11
22
20
21
2-1
10
2-1
20
0-1
-22
10
-20
01
2-1
1
11
-2-1
-2-1
-2-2
-1-1
-2-2
-20
-2-1
-2-2
0-2
-1-1
-1-1
-1-1
-2-2
-1
11
12
12
21
01
22
22
11
21
10
22
11
11
22
12
11
21
2-2
22
12
1-1
20
11
21
12
01
01
11
21
1
11
21
21
02
10
22
20
21
20
-22
0-1
00
01
10
0
11
00
10
22
21
22
2-1
21
11
01
12
10
12
21
0
11
22
21
12
11
22
21
22
20
02
22
22
22
22
2
11
21
2-2
02
21
21
21
1-2
1-1
-22
11
-1-1
21
20
2
11
20
2-1
22
22
22
2-2
20
20
02
21
01
21
22
2
11
21
20
21
22
21
12
20
10
-11
11
-10
00
21
0
11
22
22
21
10
21
21
1-1
21
02
21
11
21
21
0
11
21
20
22
22
22
2-1
2-1
20
-12
10
-11
12
20
2
11
21
20
12
10
22
11
12
21
-12
21
10
11
21
2
11
11
01
02
01
22
20
10
10
-22
11
12
00
11
1
11
0-2
20
22
22
22
2-2
22
20
02
22
22
22
22
2
11
11
02
11
21
22
11
12
22
11
22
21
12
22
22
11
11
10
22
21
10
00
0-1
1-2
-2
22
-1-1
00
22
2
11
11
1-1
22
-21
20
10
1-1
1-1
01
11
1-1
11
11
0
11
22
21
22
22
22
22
22
21
12
22
22
22
21
2
11
21
10
22
21
22
22
20
21
22
00
00
01
21
2
11
22
20
22
10
21
20
11
22
22
11
10
22
22
2
11
10
21
22
01
22
2-1
11
0-1
01
11
21
21
10
0
11
12
10
02
11
10
00
00
01
00
10
10
01
01
01
11
22
20
22
10
21
20
11
22
22
11
10
22
22
2
11
20
21
22
20
20
22
20
02
-22
22
-11
22
01
2
11
22
21
21
22
21
2-2
10
20
-21
1-1
01
21
21
1
11
2-1
2-1
12
21
21
10
10
12
10
11
12
11
22
1
11
10
10
12
12
21
11
21
10
01
11
01
11
11
1
11
22
22
21
11
22
22
22
20
02
22
02
22
22
2
11
0-2
20
22
12
22
2-1
00
11
02
12
2-1
20
22
2
11
22
2-1
11
22
22
1-1
21
10
-12
22
11
22
21
1
11
0-1
21
20
11
22
11
2-1
11
-21
22
01
10
20
-1
43
51
48
30
17
87
33
48
61
78
91
69
59
99
64
87
57
81
78
12
2-2
48
76
66
12
03
76
75
49
15
36
4
7,2
73
63
,64
25
,45
14
,55
54
,55
30
,91
14
,55
C - Gesammelte Freitext-Antworten
Für diese Auswertung wurden 20% (12 Stück) der Fragebögen zufällig
ausgewählt.
C 1. Teil 3 des Fragebogen
C 1.1. Antworten auf 3.2
C 1.1.1 je privater die Daten, desto weniger | C 1.1.2 Datenschutz | C 1.1.3
Datensicherheit | C 1.1.4 Zugriffshoheit | C 1.1.5 Unabhängigkeit | C 1.1.6
hätte Angst, dass etwas verloren geht | C 1.1.7 wenn die Netzverbindung mal
nicht gut sein sollte | C 1.1.8 Sicherheit | C 1.1.9 Befürchtung um
Vertraulichkeit
C 1.2. Antworten auf 3.3
C 1.2.1 aus Prinzip | C 1.2.2 nein, weil kein Vertrauen in Anbieter | C 1.2.3
Sicherheit | C 2.2.4 Privatsphäre | C 2.2.5 kommt auf Datenschutzregeln und
Server-Standort an | C 1.2.6 Performance | C 1.2.7 Datensicherheit
C 1.3. Antworten auf 3.4
C 1.3.1 Nur wenn ich eine einzelne Software mieten kann und nicht ein ganze
Paket nehmen muss | C 1.3.2 Ich will nur einmal zahlen und das Produkt
besitzen | C 1.3.3 Finanzkontrolle | C 1.3.4 Wird auf Dauer meist teurer als
eine gekaufte Lizenz
C 2. Teil 4 des Fragebogen
C 2.1. Benutzerfreundlichkeit
C 2.1.1 so wenig graphischen Schnickschnack wie möglich | C 2.1.2
selbsterklärend | C2.1.3 zu kompliziert in der Anwendung | C 2.1.4
unkompliziert | C 2.1.5 Optik | C 2.1.6 einfach zu bedienen | C 2.1.7 logischer
Aufbau | C 2.1.8 bedienungsfreundlich | C 2.1.9 Nutzerfreundlichkeit | C 2.1.10
C - Gesammelte Freitext-Antworten 105
Design | C 2.1.11 benutzerfreundlich | C 2.1.12 gute Gestaltung der Oberfläche
| C 2.1.13 einfache Bedienung | C 2.1.14 intuitive Benutzung | C 2.1.15
schlechte Benutzerführung | C 2.1.16 gute Bedienbarkeit | C 2.1.17 muss
bedienerfreundlich sein | C 2.1.18 übersichtlich | C 2.1.19 umständliche,
komplizierte Anwendungen | C 2.1.20 einfach | C 2.1.21 übersichtlich | C
2.1.22 Übersichtlichkeit | C 2.1.23 sehr gutes Design | C 2.1.24 Einfachheit | C
2.1.25 Reduzierung auf das Wesentliche | C 2.1.26 einfach | C 2.1.27 zu
komplex
C 2.2. Geschwindigkeit
C 2.2.1 schnell | C 2.2.2 einfach | C 2.2.3 wenn die Software anfängt langsam
zu werden | C 2.2.4 Geschwindigkeit | C 2.2.5 geringe Ladezeit | C 2.2.6 lange
Ladevorgänge | C 2.2.7 Geschwindigkeit | C 2.2.8 soll reibungslos laufen | C
2.2.9 schnell | C 2.2.10 schnell | C 2.2.11 schnelle Bedienung | C 2.2.12 träge
Reaktion der Software | C 2.2.13 kurze Antwortzeiten | C 2.2.14 schnelle
Bearbeitung
C 2.3. Sonstiges
C 2.3.1 verfügbar | C 2.3.2 lange Zeit am Markt | C 2.3.3 Systemabsturz | C
2.3.4 nur Teillösungen möglich | C 2.3.5 nicht an jedem Rechner verfügbar | C
2.3.6 wenn eine Funktion nicht funktioniert | C 2.3.7 inkompatibel mit anderer
Software | C 2.3.8 versteckte Funktionen | C 2.3.9 sinnvolle Funktionen | C
2.3.10 Einstellungen bis ins Detail | C 2.3.11 viele Möglichkeiten | C 2.3.12
Absturz des Programms | C 2.3.13 Einsprachigkeit | C 2.3.14 Programmabsturz
| C 2.3.15 umfangreiche Funktionen | C 2.3.16 keine Bugs | C 2.3.17 Open
Source |C 2.3.18 fehlende Funktionen | C 2.3.19 Bugs | C 2.3.20 muss fehlerfrei
laufen | C 2.3.21 vielseitige Anwendungsmöglichkeiten | C 2.3.22
Sicherungsdatei bei Absturz | C 2.3.23 keine individuelle Anpassung | C 2.3.24
individuelle Tools zu integrieren | C 2.3.25 Erklärung der einzelnen
Instrumente
C - Gesammelte Freitext-Antworten 106
D – Datensammlung auf CD
Auf der CD befinden sich die Daten, die in dieser Diplomarbeit verwendet
wurden.
Name Format Beschreibung
auswertung.pdf Adobe PDF Auswertung des Fragebogen im PDF-Format
auswertung.xls Microsoft Excel Auswertung des Fragebogen im Excel-Format
da_scheible.pdf Adobe PDF Diplomarbeit im im PDF-Format
entwicklung Ordner gesammelte Daten während der Entwicklung
fragebogen1.pdf Adobe PDF Papierform des Fragebogen
fragebogen2.pdf Adobe PDF Online-Variante des Fragebogen
freitextfragen.pdf Adobe PDF
prototype Ordner Daten des Prototyp
Tabelle 6.1 Übersicht der CD
D – Datensammlung auf CD 107
Literaturverzeichnis
[1] Computer-Fachzeitschrift c't, 23/2008
[2] Top 10 email clients used by consumer recipients, 09.02.2009,
http://fingerprintapp.com/email-client-stats
[3] Drei von vier deutschen Haushalten haben Internetzugang , 10.01.2009,
http://www.bitkom.org/55997_56246.aspx
[4] EU-Statistik: Zwei Drittel der Unternehmen haben eigene Website, 09.02.2009,
http://www.heise.de/newsticker/EU-Statistik-Zwei-Drittel-der-Unternehmen-
haben-eigene-Website--/meldung/120250
[5] Flickr, 12.02.2009, http://www.flickr.com
[6] Youtube, 12.02.2009, http://www.youtube.com
[7] Delicious, 12.02.2009, http://www.delicious.com
[8] Troi - Agentursoftware, Projektmanagement, Mac und PC, 12.02.2009, http://
www.troi.de
[9] Heiler Software - Produkte (Heiler Media Manager), 12.02.2009,
http://www.heiler.de/germany/produkte/Heiler_Media_Manager.php?
navid=23
[10] Das Internet, 10.01.2009, http://www.bsi-fuer-buerger.de/internet/index.htm
[12] http://www.computerwoche.de/knowledge_center/web/1884470/,
19.01.2009, http://www.computerwoche.de/knowledge_center/web/1884470/
[13] Lars Eilebrecht, Nikolaus Rath, Thomas Rohde: Apach Webserver, mitp-
Verlag 2003
[14] NCSA Image Archive, 23.01.2009, http://www.ncsa.uiuc.edu/News/Images/
[15] Cristian Darie, Bogdan Brinzarea, Filip Chereches-Tosa, Mihai Bucica: AJAX
und PHP, Carl Hanser Verlag Verlag 2007,
[17] Wie funktioniert HTTPS?, 02.02.2009,
http://www.softed.de/fachthema/https.aspx
[18] W3C Publishes HTML 5 Draft, Future of Web Content, 04.02.2009,
http://www.w3.org/2008/02/html5-pressrelease
[19] Sinn und Zweck von Stylesheets, 04.02.2009,
http://de.selfhtml.org/css/intro.htm
[20] JavaScript und HTML, 04.02.2009, http://de.selfhtml.org/javascript/intro.htm
[24] OBJEKTspektrum, 5/2008
Literaturverzeichnis 108
[25] Ajax: A New Approach to Web Applications, 20.01.2009,
http://www.adaptivepath.com/ideas/essays/archives/000385.php
[26] Google maps, 13.01.2008, http://maps.google.de
[28] Skalierbare IT zu überschaubaren Kosten, 19.01.2009,
http://www.computerwoche.de/subnet/oracle/1883944/
[30] NTT Communications, Whitepaper: Software-as-aService, 2007
[31] Host Europe, Whitepaper: Die Verfügbarkeit von Web-Applikationen, 2008
[32] SaaS erobert die Unternehmen, 10.01.2009, http://www.computerwoche.de/
subnet/t-systems/1881183/
[33] Studie: Markt für Software as a Service wächst um 27 Prozent, 04.02.2009,
http://www.heise.de/newsticker/Studie-Markt-fuer-Software-as-a-Service-
waechst-um-27-Prozent--/meldung/118038
[34] Krise kurbelt den SaaS-Markt an, 04.02.2009, http://www.computerwoche.de/
knowledge_center/it_services/1880158/
[35] Bevölkerungsstand, 11.01.2009, http://www.destatis.de/jetspeed/portal/
cms/Sites/destatis/Internet/DE/Navigation/Statistiken/Bevoelkerung/
Bevoelkerungsstand/Bevoelkerungsstand.psml
[36] iPhone-Hype - Multitouch-Screens vor Durchbruch, 11.01.2009,
http://www.computerwoche.de/knowledge_center/mobile_wireless/1871709/
[37] Rudolf, Christiane: Handbuch Software-Ergonomie, Unfallkasse Post und
Telekom Verlag 2006
[38] Alter Raub, neuer Skandal: 17 Millionen Telekom-Nummern entwendet,
04.02.2009, http://www.heise.de/security/Alter-Raub-neuer-Skandal-17-
Millionen-Telekom-Nummern-entwendet--/news/meldung/116913
[39] WebHits Statsitik, 28.01.2009, http://www.webhits.de/deutsch/index.shtml?/
deutsch/webstats.html
[40] Verbreitung von Schriften im Web - Übersicht, 10.02.2009,
http://www.webmasterpro.de/coding/article/css-verbreitung-von-schriften-im-
webdesign-tabelle.html
[42] Schyma, Christian, Untersuchung der Verwendbarkeit und Überführbarkeit
von Ajax-Ansätzen in das wingS Webframework für komfortablere und
effizientere User-Interface-Komponenten, Hochschule Albstadt-Sigmaringen
[43] PacMan, 11.02.2009, http://www.digitalinsane.com/api/yahoo/pacman/
[44] Das Dojo-Toolkit, 02.02.2009,
http://t3n.yeebase.com/magazin/ausgaben/artikel/das-dojo-toolkit/
Literaturverzeichnis 109
[45] Schriftalternativen, 11.02.2009, http://www.kutilek.de/fleiss/diplom-web-
schriften
[46] Nielsen, Jakob; Loranger, Hoa: Web Usability, Addion-Wesley Verlag 2006
[48] Arndt, Henrik: Integrierte Informationsarchitektur, Springer-Verlag Berlin
2006
[49] Jumpchart - Simple Website Planning and Wireframing, 16.12.2008,
http://www.jumpchart.com
[50] Elektronische Fahrplanauskunft Baden-Württemberg, 28.11.2008,
http://www.efa-bw.de
[52] Eisensehr, Frank, AJAX in den Onlinerubrikmärkten auf sueddeutsche.de ,
2008
[53] AJAX Ladeanimationen, 18.01.2009, http://www.ajaxload.info
[54] Möhrke, Carsten: Besser PHP programmieren, Galileo Press GmbH Verlag
2004, 1. korrigierter Nachdruck
[55] ACM Journal Computing Surveys, Vol. 6, No. 4/1974
[56] Studie: Markt für Software as a Service wächst um 27 Prozent, 15.12.2008,
http://www.heise.de/newsticker/Studie-Markt-fuer-Software-as-a-Service-
waechst-um-27-Prozent--/meldung/118038
[57] CompressorRater , 14.01.2009, http://compressorrater.thruhere.net/
[58] Compares various popular JavaScript compression utilities, 02.02.2009, http://
www.compressorrater.thruhere.net
[59] Firefox 3.1: TraceMonkey beschleunigt Javascript erheblich , 14.01.2009,
http://www.golem.de/0808/61928.html
[60] Gears - Google Inc., 10.02.2009, http://code.google.com/intl/de-
DE/apis/gears/api_database.html
[61] Google bastelt am Browser der Zukunft , 16.01.2008,
http://www.golem.de/0807/60946.html
[62] Bennet Yee, David Sehr, Gregory Dardyk, J. Bradley Chen, Robert Muth, Tavis
Ormandy, Shiki Okasaka, Neha Narula, and Nicholas Fullagar, Native Client:
A Sandbox for Portable, Untrusted x86 Native Code,
[63] Web-Anwendungen mit voller CPU-Power, 02.02.2009, http://www.pcwelt.de/
start/dsl_voip/online/news/189325/
web_anwendungen_mit_voller_cpu_power/
[64] Native Client: Google stellt ActiveX-Alternative vor, 02.02.2009,
http://winfuture.de/news,44065.html
Literaturverzeichnis 110
[65] Welling, Luke; Thomson, Laura: MySQL Tutorial, Addison-Wesley Verlag
Verlag 2004
[66] Zawodny, Jeremy; Balling, Derek: High Performance MySQL, O'Reilly Verlag
Verlag 2005
[67] Firmen sollten Sicherheit ihrer Web-Anwendungen ernster nehmen,
16.01.2009
http://www.computerwoche.de/knowledge_center/security/1884213/
[68] Kunt, Christopher; Esser, Stefan; Prochaska, Peter: PHP-Sicherheit,
dpunkt.verlag GmbH Verlag 2007, 2. Auflage
[69] Wang, Xiaoyun; Feng, Dengguo; Lai, Xuejia; Yu, Hongbo, Collisions for Hash
Functions, 2004
[70] Reverse Hash Lookup for MD5, SHA1, MySQL, NTLM and Lanman-
Password-Hashes, 13.02.2009, http://www.hashcrack.com
[71] Bichelmeier, Christoph, Kryptographie mit PHP, 2006
[72] Wassermann, Tobias: Sichere Webanwendunge mit PHP, Redline GMBH
Verlag 2007,
[77] Zend Guard, 15.01.2008, http://www.zend.com/de/products/guard/
Literaturverzeichnis 111
Hilfsmittel
[11] Internet, 10.01.2009, http://de.wikipedia.org/wiki/Internet
[16] HTTPS, 04.02.2009, http://de.wikipedia.org/wiki/Https
[21] JavaScript, 10.02.2009, http://de.wikipedia.org/wiki/JavaScript
[22] PHP, 04.02.2009, http://de.wikipedia.org/wiki/PHP
[23] MySQL, 10.02.2009, http://de.wikipedia.org/wiki/MySQL
[27] Ajax (Programmierung), 19.01.2008,
http://de.wikipedia.org/wiki/Ajax_(Programmierung)
[29] Webanwendung, 11.01.2009, http://de.wikipedia.org/wiki/Webanwendung
[41] qooxdoo, 02.02.2009, http://de.wikipedia.org/wiki/Qooxdoo
[47] benutzerfreundlichkeit, 14.01.2009,
http://de.wikipedia.org/wiki/Benutzerfreundlichkeit
[51] Interaktion, 20.01.2008, http://de.wikipedia.org/wiki/Interaktion
[73] Diffie-Hellman-Schlüsselaustausch, 15.01.2009, http://de.wikipedia.org/wiki/
Diffie-Hellman-Schl%C3%BCsselaustausch
[74] Digitale Signatur, 04.02.2009, http://de.wikipedia.org/wiki/Digitale_Signatur
[75] Message Authentication Code, 04.02.2009,
http://de.wikipedia.org/wiki/Digitale_Signatur
[76] Advanced Encryption Standard, 04.02.2009,
http://de.wikipedia.org/wiki/Advanced_Encryption_Standard
Hilfsmittel 112