Programmieren im Web 2 -...

22
Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit Programmieren im Web 2.x Ein ¨ Uberblick ¨ uber die Webentwicklung im Jahre 2011 Johannes Leers 26. M¨ arz 2012

Transcript of Programmieren im Web 2 -...

Page 1: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Programmieren im Web 2.xEin Uberblick uber die Webentwicklung im Jahre 2011

Johannes Leers

26. Marz 2012

Page 2: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

1 Motivation

2 Web-Frameworks

3 Mobile Computing

4 WebGL

5 Cloud Computing

6 Fazit

Page 3: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Native Programme

pro Plattformprogrammieren und/oderkompilieren

viele Update-Mechanismen:Kompilieren, Packaging &Freigabeprozesse

Page 4: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Web-Programme

Einmal programmieren, aufallen Plattformen lauffahig(im Idealfall)

Zusatzlicher Vorteil beimobilen Endgeraten

Ein Update-Mechanismus:Schnelles Deployment imHintergrund

Page 5: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Vorteile von Frameworks

Programmiergerust

Konzentration auf Kernprobleme

Weniger Code = Weniger Fehler

Page 6: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Vorteile von Frameworks

Ajax ohne Framework (reines JavaScript)

va r an f r a g e = n u l l ;t r y {

an f r a g e = new Act i veXObjec t ( ”MSXML2.XMLHTTP” ) ;}ca tch ( E r r o r ) {

t r y {an f r a g e = new Act i veXObjec t ( ”M i c r o s o f t .XMLHTTP” ) ;

}ca tch ( E r r o r ) {

t r y {an f r a g e = new XMLHttpRequest ( ) ;

}ca tch ( E r r o r ) {

a l e r t ( ” F eh l e r beim Erzeugen des Ob j ek t e s ” ) ;}

}}an f r a g e . open ( ”GET” , ”/ t e s t . c g i ” , t r u e ) ;

Page 7: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Vorteile von Frameworks

Ajax mit Framework (jQuery)

$.get("/test.cgi");

Page 8: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Ruby on Rails

Ruby

Yukihiro Matsumoto

Einflusse: Perl, Smalltalk,Eiffel, Ada und Lisp

1995 unter GPLveroffentlicht

2001 englischeDokumentation

Bis 2004 außerhalb JapansNischen-Dasein

Page 9: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Ruby on Rails

Ruby on Rails

2004 unter MIT-Lizenzveroffentlicht

David Heinemeier Hansson,37signals

Aus Projektmanagement-Software

”Basecamp“

extrahiert

Page 10: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Ruby on Rails

Model, View, Controller

Controller

View Model

@@@@R

���

-

*

�����

*�

- Direkte Verbindung

*- Indirekte Verbindung (z.B. uber Observer)

1979: Trygve Reenskaug

”Applications Programming

in Smalltalk-80: How to useModel–View–Controller“

Separation of Concerns

Page 11: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Ruby on Rails

Convention over Configuration

Auch: Coding by Convention

Jede Anwendung kommtohne Konfiguration aus

z.B. Namenskonventionen

Vorteile fur neue Entwicklerin gewachsenen Projekten

Wurzeln dieses Konzepts:1997, Java-Bibliotheken

Page 12: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Ruby on Rails

ActiveRecord

User.create(:name=>"Johannes")

user = User.find(1)

user.delete

Design Pattern furObject-Relational-Mapping

”Active Record“ gepragt von

Martin Fowler, 2003

”Ein Active Record ist ein

Objekt, das einer Zeile ineiner Datenbank-Tabelleentspricht. Es kapselt denDatenbankzugriff und fugtDomain-Logik hinzu.“

Page 13: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Ruby on Rails

REST

Architekturstil: Representational state transfer

2000 von Roy Thomas Fielding beschrieben

Die Schnittmenge zwischen Systemen auf eine uberschaubare,standardisierte Menge von Aktionen reduzieren

POST, PUT, GET, DELETE

Variable wird z.B. uber ein Formular im Request gesendet

Page 14: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Andere Web-Frameworks

Ocsigen (OCaml)

2007, LGPL

Diderot Universitat (Paris)

Server- und Client-Code istOCaml

Statische Typisierung:Wohlgetypte Programmesturzen niemals ab

Typsystem: Form-Elementepassen immer zu denDatenbank-Objekten (z.B.Checkbox: Boolean)

Page 15: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Andere Web-Frameworks

Opa (Opa)

2011, AGPL

MLState (Zusammenschlussvon Forschern rund umOnline-Softwareentwicklung)

Kein Web-Framework imklassischem Sinne

Wird in eine ausfuhrbareDatei kompiliert

Server- und Client-Code istin Opa programmiert

Impedance Mismatchverhindern

Page 16: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Motivation

Browserbasierte ersetzennative Anwendungen

Mobile Endgerate fastimmer online

2010: 16% mobiles Internet

44% nutzen Facebook mobil

durch HTML5-Elemente

”Look & Feel“ wie native

Anwendungen

Page 17: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Vier Ansatze mobiler Frontends

Cascading Style Sheets (CSS)

einfach umzusetzenineffizient bezuglich Datentransfers

Mobile Web-Frameworks

z.B. Sencha Touch oder jQuery Mobilekein Zugriff auf Gerate-APIs

Hybride Anwendungen

z.B. PhoneGap oder AppCelerator TitaniumWrapper fur Web-AnwendungenZugriff auf Gerate-APIs moglichApp-Stores

Native Anwendungen

Android: Java, iOS: Objective-Cmit Rhodes plattformubergreifend

Page 18: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Einfuhrung

Ermoglicht 3D im Browser

Vorganger 1994:”Virtual

Reality Markup Language“

Khronos Group und Mozilla,2009

Basiert auf OpenGL

Offener Standard vom W3C

2011: Fester Bestandteilaller großen Browser

Sonderstellung MicrosoftInternet Explorer

Page 19: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Technik

HTML5-Element canvas furfreies Zeichnen

JavaScript ist Bindegliedzum Browser

Eigene Spezifikation furBinardaten

”Typed Arrays“

Hoher Programmieraufwand

Etablierung mehr oderweniger kompletterWebGL-Frameworks

Page 20: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Einfuhrung

Achtziger Jahre: Mainframes

Keine Installation auflokalem Rechner notig

Fruhjahr 2011: 70% derUnternehmen arbeiten anCloud-Strategie

Wichtigster Antriebsfaktor:Kostenersparnis

Kosten durch Verbrauch(z.B. pro User/ Monat)

Page 21: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Software as a Service

2010, Apache Software License

Vereinigt viele Schnittstellen zuCloud-Anbietern in einer REST-API

Client-Bibliotheken fur vieleProgrammiersprachen(u.a. C, C++, Ruby)

Jede Cloud hat einen Adapter(driver)

Page 22: Programmieren im Web 2 - ps.informatik.uni-siegen.deps.informatik.uni-siegen.de/downloads/Abschlussarbeiten/leers2012-slides.pdf · 44% nutzen Facebook mobil durch HTML5-Elemente

Motivation Web-Frameworks Mobile Computing WebGL Cloud Computing Fazit

Danke

Fazit:”Ist-Zustand“?