120
D I P L O M A R B E I T Erhebung 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

Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 2: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

[email protected]

Page 3: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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.

Page 4: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 5: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 6: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 7: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von 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

Page 8: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 9: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 10: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 11: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 12: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 13: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

Die schematische Abbildung 1.3 verdeutlicht den Aufbau dieser Diplomarbeit.

Einleitung 5

Abbildung 1.3 Schematischer Aufbau der Diplomarbeit

Page 14: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 15: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 16: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 17: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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]

Page 18: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 19: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 20: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 21: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 22: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 23: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 24: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 25: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 26: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 27: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 28: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 29: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 30: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 31: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 32: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 33: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 34: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 35: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 36: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 37: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 38: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 39: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 40: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

Ü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

Page 41: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 42: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 43: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 44: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 45: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 46: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 47: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 48: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 49: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 50: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 51: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 52: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

Ü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

Page 53: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 54: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 55: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 56: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 57: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 58: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 59: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 60: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 61: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 62: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 63: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 64: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 65: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 66: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 67: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 68: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 69: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 70: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 71: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 72: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 73: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 74: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 75: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 76: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 77: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 78: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 79: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 80: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 81: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 82: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 83: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 84: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 85: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 86: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 87: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 88: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 89: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 90: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 91: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 92: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 93: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 94: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 95: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 96: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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ü

Page 97: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 98: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 99: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 100: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 101: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 102: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 103: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 104: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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 [email protected]

- 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 [email protected]

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

Page 105: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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 ([email protected]) Seite 1 von 5

Page 106: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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 ([email protected]) Seite 2 von 5

Page 107: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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 ([email protected]) Seite 3 von 5

Page 108: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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 ([email protected]) Seite 4 von 5

Page 109: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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 ([email protected]) Seite 5 von 5

-2 -1 0 +1 +2

Page 110: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 111: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

Au

sw

ert

un

g d

er

Fra

ge

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

Page 112: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

Au

sw

ert

un

g d

er

Fra

ge

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

Page 113: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 114: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 115: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 116: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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

Page 117: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

[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

Page 118: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

[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

Page 119: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

[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

Page 120: Erhebung von Anforderungen an asynchrone Web-Anwendungen - Diplomarbeit von Tobias Scheible

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