SlideShare une entreprise Scribd logo
1  sur  57
BARCAMP KARLSRUHE
             Wie ein Phönix aus der Asche:
JavaScript und die vernetzte Zukunft auf Wolke Sieben
                      18.06.2011




                                                   Evgenij Terehov
EVGENIJ TEREHOV

• Web-Developer           seit 1999

• Dipl.-Wirt.-Inf. (FH)

• Consultant: EXXETA AG
 •   Enterprise Integration Solutions: Web, Java, Portale (IBM WebSphere Portal), mobile

• Website: www.terehov.de

• Twitter:    @EugeneTerehov

• Mail: eugene      [a t] terehov.de
MODEL
   VIEW
CONTROLLER
VIEW
Backend                                       Frontend




                           Assoziationen:
•   Business $$                             •   "Frontendler"
•   Enterprise                              •   Pixelschieber
•   Integration                             •   HTML-frickler
•   Geschäftsprozesse                       •   JS ist eine Kiddie-frickel-Sprache
•   HIER werden Mehrwerte geschaffen!       •   "Klicki-bunti"
RIA?
Kein Mehrwert?
ÜBLICHES PROJEKTVORGEHEN
                                       Frontend       Backend


                                                                         100



                                                                       75
Oft wird das Frontend im letzten
Moment "draufgeklatscht".
                                                                       50


                                   1                                25
                                        2
                                                  3                0

                                                           4
                                                               fiktive Zahlen
FORMFAKTOR
FORMFAKTOR ENTSCHEIDET

Heute:
Alles in Einem ...




... und stets dabei.
?


Design & Technologie gehen Hand in Hand!
SO SOLLTE ES SEIN
                                                  Frontend       Backend


                                                                                   80

Erste Fragen:
                                                                                  60
- Was soll das Produkt können?
                                                                                  40
- Wie wird der Benutzer es bedienen wollen?
                                              1                               20
                                                   2
                                                             3                0

                                                                      4
                                                                          fiktive Zahlen
LÖSUNG?
Web 2.0 = Desktop 1.0?
Kopieren?
Gedankenmodell
des Benutzers
Gedankenmodell   Funktionsweise der
des Benutzers           Applikation
NEUE TECHNOLOGIEN
     führen zu

NEUEN KONZEPTEN!
Neue Technologien?
ZUKUNFTSMUSIK?
Auf die Browser kommt es an!



 Gecko               Webkit          Trident
Mozilla Firefox      Apple Safari    Internet Explorer
                     Google Chrome




                      Presto
                       Opera
CLIENT STORAGE
•   Cookies haben viele Nachteile


•   Es gibt viele Ansätze:
    •   localStorage (die meisten Browser; kein IE)
    •   globalStorage (Firefox)
    •   userData (Internet Explorer)
    •   Google Gears (Google Chrome)
    •   webSQL (viele Browser; kein IE; langsam)      jStorage Example:

                                                       set:
•   Lösung: Abstraktion!                                $.jStorage.set(key, value);
                                                       get:
    •   z.B. Lawnchair.js oder jStorage                 var value = $.jStorage.get(key);
                                                       delete:
                                                        $.jStorage.deleteKey(key);
    •   alle aktuellen Browser werden unterstützt      flush:
                                                        $.jStorage.flush();
    •   Einheitliche und einfache API
WEB SOCKETS

• ! ushing
  P          statt Polling
• ! as
  D      Gefühl einer "echten" Anwendung
• ! uss
  M       vom Server und Client unterstützt werden
• ! ösung: Abstraktion!
  L
   •   Socket.IO
   •   Desktop: IE >= 5.5; Safari >= 3; FF >= 3;
   •   mobile: iPhone; iPod; Android
   •   www.socket.io
MODEL
NOSQL

• ! luster
  C          of unreliable commodity hardware Data Base
                                                                           CouchDB relax
   •=   Datenbank auf einem Cluster aus unzuverlässiger Standardhardware
• Dokumentenorientiert

• JSON      / REST
• leichte   Replikation
• CouchAPPS      (HTML / JavaScript Apps)
   • DB     mit eingebauten Web-Server
NOSQL

        CouchDB relax
CONTROLLER
»Ev
                                                                               ery
                                                                                     app
                                                                                           lic at

                                JAVASCRIPT
                                                                             will                   ion
                                                                                  ev                      that
                                                                                       e n tu                    c an
                                                                                                ally              be w
                                                                                                       be w             ritte
                                                                                                           ritte              n in
                                                                                                                 n in              J av a
                                                                                                                      J av a              scrip
                                                                                                                             scrip              t
                                                                                                                                   t« *




• HTML5     basiert auf JavaScript!
• CouchDB     basiert auf JavaScript!
• meistverbreitete    Sprache der Welt
• extrem    flexibel
• bald   auch die mächtigste Sprache der Welt ;-)


                 www.promotejs.com
                                                    * http://www.codinghorror.com/blog/2007/07/the-principle-of-least-power.html
JAVASCRIPT
s?
JAVASCRIPT IN BACKEND you n   ut

                     A re
JAVASCRIPT IN BACKEND



• One   Stack World!
 • eine Technologie

 • Write   once run everywhere.
 • besseres   Debugging!
• Besonderheiten   von JS nutzen!
JAVASCRIPT IN BACKEND



• server    side JS                                 »To
                                           infra            prov
                                                   stru            ide
• basiert   auf V8                                        c tu r       a pu
                                                                e to         rely
                                                                     scrip        ev e
                                                                           t hig       nted
• Event-driven, nicht-blockierende   I/O                                         hly c      , no
                                                                                                 n-bl
                                                                                       onc            oc k i
                                                                                           urre              ng
                                                                                                nt p
• CommonJS       module system                                                                       rogr
                                                                                                          ams
                                                                                                                  .«
• C/C++      & JavaScript
JAVASCRIPT IN BACKEND
                                                               •   I/O Kosten:

                                                                   •   L1: 3 Zyklen

                                                                   •   L2: 14 Zyklen

• I/O   muss anders geschehen als so:                              •   RAM: 250 Zyklen

  var result = db.query("select * from T");                        •   Disk: 41.000.000 Zyklen
  // use result
                                                                   •   Netzwerk: 240.000.000 Zyklen
• Programm       wartet auf DB!
• Besser:

  db.query("select..", function (result) { // use result });
JAVASCRIPT IN BACKEND
Event-driven statt multi-threaded:




  • Context-switch   ist nicht kostenlos
  • Jeder Thread-Stack   braucht seperat Speicher
JAVASCRIPT AUF WOLKE 7



• Basiert   auf node.js und HTML
• Zusammengeführt      aus
  • Cloud9

  • Mozilla   Bespin (Skywriter)
• Frontend    & Backend Entwicklung (node.jS)
• Mächtiges   Debugging-Tool
JAVASCRIPT AUF WOLKE 7
JAVASCRIPT AUF WOLKE 7
MOBILE
"PhoneGap is an open source development framework for building
cross-platform mobile apps. Build apps in HTML and JavaScript and
  still take advantage of core features in iPhone/iPod touch, iPad,
        Google Android, Palm, Symbian and Blackberry SDKs."
webOS
UND WAS IST MIT DESKTOP 1.0?
DESKTOP 2.0!
DESKTOP

                                        Chrome OS
• Es   geht auch andersrum?

  • Oh    Ja!

• z.B. Jollycloud

  • das   OS aus der Wolke!
Kiddie-frickel-Sprache?
AJAXINTERFACE
 Standardisierter Ansatz
JAVASCRIPT


Browser



              jQuery
             DOM tree
JAVASCRIPT
          jQuery.ajaxInterface


Browser



                 jQuery
                DOM tree
JAVASCRIPT
                     jQuery.ajaxInterface

                                            Magie


          <?xml?>
                                            Return
Browser



           jQuery
          DOM tree
AJAXINTERFACE: MÖGLICHKEITEN

         5

         4

         3
Aktion




         2

         1

         0
             0   1   2   3   4     5      6   7   8   9   10
                                 Zeit t
BEISPIEL
                   <?xml version="1.0"?>
                   <jquery>
                       <setTitle>new page title</setTitle>

                       <setSelector value="div#main">
                               <html action="replace">
                                   <![CDATA[
                                       <h1> New Page Content </h1>
                                   ]]>
                               </html>
                   !   </setSelector>

                   </jquery>




Abwärtskompatibilität:
         Der Server erzeugt ajaxInterface XML statt HTML, wenn
         "ajaxInterface=true" gesetzt ist.
AJAXINTERFACE: ROADMAP

• Entwicklung eines ajaxInterface-Servers (node.JS)

   • automatische Zustandshaltung

   • JavaScript Template-Engine

   • Abwärtskompatibilität (history.pushState())

   • WebSockets (Socket.IO)

   • MVC im Browser / Server
VIELEN DANK!
                        Fragen?




Evgenij Terehov | twitter: @EugeneTerehov | www.terehov.de
       https://github.com/terehov/jQuery.ajaxInterface

Contenu connexe

En vedette

Google chrome
Google chromeGoogle chrome
Google chromeIris1481
 
Luis pedro monterroso gramajo
Luis pedro monterroso gramajoLuis pedro monterroso gramajo
Luis pedro monterroso gramajolpmonterroso
 
Webinare durchführen: 5 Tipps für mehr Stabilität
Webinare durchführen: 5 Tipps für mehr StabilitätWebinare durchführen: 5 Tipps für mehr Stabilität
Webinare durchführen: 5 Tipps für mehr Stabilitätwebinartrainer.eu
 
Instalando o google chrome
Instalando o google chromeInstalando o google chrome
Instalando o google chromeIncubadoraelc
 
Sistemas operativos google chrome os
Sistemas operativos google chrome osSistemas operativos google chrome os
Sistemas operativos google chrome osJorge ALOS
 
HR & Social Media Trivalent Klantendag
HR & Social Media Trivalent KlantendagHR & Social Media Trivalent Klantendag
HR & Social Media Trivalent KlantendagDiana Russo
 
Youtube für alle
Youtube für alleYoutube für alle
Youtube für alleUwe Renners
 
Performance mobile: eleições 2014
Performance mobile: eleições 2014Performance mobile: eleições 2014
Performance mobile: eleições 2014Webysther Faria
 
Google chrome os
Google chrome osGoogle chrome os
Google chrome osarlbailey7
 
Verchromen - Materialpreise 2013
Verchromen - Materialpreise 2013Verchromen - Materialpreise 2013
Verchromen - Materialpreise 2013stuaptqbha
 
Verspiegelung mit Chromspray System
Verspiegelung mit Chromspray SystemVerspiegelung mit Chromspray System
Verspiegelung mit Chromspray Systemstuaptqbha
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptSebastian Springer
 

En vedette (17)

Chrome OS
Chrome OSChrome OS
Chrome OS
 
Google chrome
Google chromeGoogle chrome
Google chrome
 
Luis pedro monterroso gramajo
Luis pedro monterroso gramajoLuis pedro monterroso gramajo
Luis pedro monterroso gramajo
 
Chromecast
ChromecastChromecast
Chromecast
 
Webinare durchführen: 5 Tipps für mehr Stabilität
Webinare durchführen: 5 Tipps für mehr StabilitätWebinare durchführen: 5 Tipps für mehr Stabilität
Webinare durchführen: 5 Tipps für mehr Stabilität
 
Instalando o google chrome
Instalando o google chromeInstalando o google chrome
Instalando o google chrome
 
Sistemas operativos google chrome os
Sistemas operativos google chrome osSistemas operativos google chrome os
Sistemas operativos google chrome os
 
Google Chrome OS
Google Chrome OSGoogle Chrome OS
Google Chrome OS
 
HR & Social Media Trivalent Klantendag
HR & Social Media Trivalent KlantendagHR & Social Media Trivalent Klantendag
HR & Social Media Trivalent Klantendag
 
google chrome
google chromegoogle chrome
google chrome
 
Youtube für alle
Youtube für alleYoutube für alle
Youtube für alle
 
Performance mobile: eleições 2014
Performance mobile: eleições 2014Performance mobile: eleições 2014
Performance mobile: eleições 2014
 
Google chrome os
Google chrome osGoogle chrome os
Google chrome os
 
Verchromen - Materialpreise 2013
Verchromen - Materialpreise 2013Verchromen - Materialpreise 2013
Verchromen - Materialpreise 2013
 
Verspiegelung mit Chromspray System
Verspiegelung mit Chromspray SystemVerspiegelung mit Chromspray System
Verspiegelung mit Chromspray System
 
Chome os
Chome osChome os
Chome os
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 

Similaire à BarCamp Karlsruhe 18.06.2011

Mojo, Twitter und Konsorten
Mojo, Twitter und KonsortenMojo, Twitter und Konsorten
Mojo, Twitter und KonsortenPhilipp Naderer
 
Browservergleich
BrowservergleichBrowservergleich
Browservergleichguestf74e43
 
The Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive WebdesignThe Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive WebdesignPeter Rozek
 
The Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive WebdesignThe Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive WebdesignPeter Rozek
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: SecurityMayflower GmbH
 
Sencha Touch und PhoneGap
Sencha Touch und PhoneGapSencha Touch und PhoneGap
Sencha Touch und PhoneGapIndiginox
 
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickOOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickUdo Pracht
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.GFU Cyrus AG
 
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Martin Gfeller
 
Mein Freund Der Legacy Code
Mein Freund Der Legacy CodeMein Freund Der Legacy Code
Mein Freund Der Legacy Codemattmatt
 
Offline-first Architekturen: Wer bitte braucht schon Internet
Offline-first Architekturen: Wer bitte braucht schon InternetOffline-first Architekturen: Wer bitte braucht schon Internet
Offline-first Architekturen: Wer bitte braucht schon InternetOPEN KNOWLEDGE GmbH
 
Day CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuDay CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuCédric Hüsler
 
Smart Clients - Interaction Paradigms in Web Context
Smart Clients - Interaction Paradigms in Web ContextSmart Clients - Interaction Paradigms in Web Context
Smart Clients - Interaction Paradigms in Web ContextJanGroenefeld
 
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.Niels de Bruijn
 
Frontend Development für Backend Developer
Frontend Development für Backend DeveloperFrontend Development für Backend Developer
Frontend Development für Backend DeveloperChristoph Hautzinger
 
Responsive Workflow, Break the rules or die
Responsive Workflow, Break the rules or dieResponsive Workflow, Break the rules or die
Responsive Workflow, Break the rules or diePeter Rozek
 

Similaire à BarCamp Karlsruhe 18.06.2011 (20)

PHP Sucks?!
PHP Sucks?!PHP Sucks?!
PHP Sucks?!
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
 
Mojo, Twitter und Konsorten
Mojo, Twitter und KonsortenMojo, Twitter und Konsorten
Mojo, Twitter und Konsorten
 
Browservergleich
BrowservergleichBrowservergleich
Browservergleich
 
The Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive WebdesignThe Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive Webdesign
 
The Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive WebdesignThe Future is now! Flexbox und fancy Stuff im Responsive Webdesign
The Future is now! Flexbox und fancy Stuff im Responsive Webdesign
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
 
Usability & Webdesign 2010
Usability & Webdesign 2010Usability & Webdesign 2010
Usability & Webdesign 2010
 
Sencha Touch und PhoneGap
Sencha Touch und PhoneGapSencha Touch und PhoneGap
Sencha Touch und PhoneGap
 
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickOOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.
 
Ec13 xpages-basic
Ec13 xpages-basicEc13 xpages-basic
Ec13 xpages-basic
 
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
 
Mein Freund Der Legacy Code
Mein Freund Der Legacy CodeMein Freund Der Legacy Code
Mein Freund Der Legacy Code
 
Offline-first Architekturen: Wer bitte braucht schon Internet
Offline-first Architekturen: Wer bitte braucht schon InternetOffline-first Architekturen: Wer bitte braucht schon Internet
Offline-first Architekturen: Wer bitte braucht schon Internet
 
Day CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuDay CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neu
 
Smart Clients - Interaction Paradigms in Web Context
Smart Clients - Interaction Paradigms in Web ContextSmart Clients - Interaction Paradigms in Web Context
Smart Clients - Interaction Paradigms in Web Context
 
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
 
Frontend Development für Backend Developer
Frontend Development für Backend DeveloperFrontend Development für Backend Developer
Frontend Development für Backend Developer
 
Responsive Workflow, Break the rules or die
Responsive Workflow, Break the rules or dieResponsive Workflow, Break the rules or die
Responsive Workflow, Break the rules or die
 

BarCamp Karlsruhe 18.06.2011

  • 1. BARCAMP KARLSRUHE Wie ein Phönix aus der Asche: JavaScript und die vernetzte Zukunft auf Wolke Sieben 18.06.2011 Evgenij Terehov
  • 2. EVGENIJ TEREHOV • Web-Developer seit 1999 • Dipl.-Wirt.-Inf. (FH) • Consultant: EXXETA AG • Enterprise Integration Solutions: Web, Java, Portale (IBM WebSphere Portal), mobile • Website: www.terehov.de • Twitter: @EugeneTerehov • Mail: eugene [a t] terehov.de
  • 3. MODEL VIEW CONTROLLER
  • 5. Backend Frontend Assoziationen: • Business $$ • "Frontendler" • Enterprise • Pixelschieber • Integration • HTML-frickler • Geschäftsprozesse • JS ist eine Kiddie-frickel-Sprache • HIER werden Mehrwerte geschaffen! • "Klicki-bunti"
  • 7. ÜBLICHES PROJEKTVORGEHEN Frontend Backend 100 75 Oft wird das Frontend im letzten Moment "draufgeklatscht". 50 1 25 2 3 0 4 fiktive Zahlen
  • 9. FORMFAKTOR ENTSCHEIDET Heute: Alles in Einem ... ... und stets dabei.
  • 10.
  • 11. ? Design & Technologie gehen Hand in Hand!
  • 12. SO SOLLTE ES SEIN Frontend Backend 80 Erste Fragen: 60 - Was soll das Produkt können? 40 - Wie wird der Benutzer es bedienen wollen? 1 20 2 3 0 4 fiktive Zahlen
  • 14.
  • 15. Web 2.0 = Desktop 1.0?
  • 17.
  • 19. Gedankenmodell Funktionsweise der des Benutzers Applikation
  • 20. NEUE TECHNOLOGIEN führen zu NEUEN KONZEPTEN!
  • 21.
  • 22.
  • 24.
  • 25.
  • 27. Auf die Browser kommt es an! Gecko Webkit Trident Mozilla Firefox Apple Safari Internet Explorer Google Chrome Presto Opera
  • 28. CLIENT STORAGE • Cookies haben viele Nachteile • Es gibt viele Ansätze: • localStorage (die meisten Browser; kein IE) • globalStorage (Firefox) • userData (Internet Explorer) • Google Gears (Google Chrome) • webSQL (viele Browser; kein IE; langsam) jStorage Example: set: • Lösung: Abstraktion! $.jStorage.set(key, value); get: • z.B. Lawnchair.js oder jStorage var value = $.jStorage.get(key); delete: $.jStorage.deleteKey(key); • alle aktuellen Browser werden unterstützt flush: $.jStorage.flush(); • Einheitliche und einfache API
  • 29. WEB SOCKETS • ! ushing P statt Polling • ! as D Gefühl einer "echten" Anwendung • ! uss M vom Server und Client unterstützt werden • ! ösung: Abstraktion! L • Socket.IO • Desktop: IE >= 5.5; Safari >= 3; FF >= 3; • mobile: iPhone; iPod; Android • www.socket.io
  • 30. MODEL
  • 31. NOSQL • ! luster C of unreliable commodity hardware Data Base CouchDB relax •= Datenbank auf einem Cluster aus unzuverlässiger Standardhardware • Dokumentenorientiert • JSON / REST • leichte Replikation • CouchAPPS (HTML / JavaScript Apps) • DB mit eingebauten Web-Server
  • 32. NOSQL CouchDB relax
  • 34. »Ev ery app lic at JAVASCRIPT will ion ev that e n tu c an ally be w be w ritte ritte n in n in J av a J av a scrip scrip t t« * • HTML5 basiert auf JavaScript! • CouchDB basiert auf JavaScript! • meistverbreitete Sprache der Welt • extrem flexibel • bald auch die mächtigste Sprache der Welt ;-) www.promotejs.com * http://www.codinghorror.com/blog/2007/07/the-principle-of-least-power.html
  • 36. s? JAVASCRIPT IN BACKEND you n ut A re
  • 37. JAVASCRIPT IN BACKEND • One Stack World! • eine Technologie • Write once run everywhere. • besseres Debugging! • Besonderheiten von JS nutzen!
  • 38. JAVASCRIPT IN BACKEND • server side JS »To infra prov stru ide • basiert auf V8 c tu r a pu e to rely scrip ev e t hig nted • Event-driven, nicht-blockierende I/O hly c , no n-bl onc oc k i urre ng nt p • CommonJS module system rogr ams .« • C/C++ & JavaScript
  • 39. JAVASCRIPT IN BACKEND • I/O Kosten: • L1: 3 Zyklen • L2: 14 Zyklen • I/O muss anders geschehen als so: • RAM: 250 Zyklen var result = db.query("select * from T"); • Disk: 41.000.000 Zyklen // use result • Netzwerk: 240.000.000 Zyklen • Programm wartet auf DB! • Besser: db.query("select..", function (result) { // use result });
  • 40. JAVASCRIPT IN BACKEND Event-driven statt multi-threaded: • Context-switch ist nicht kostenlos • Jeder Thread-Stack braucht seperat Speicher
  • 41. JAVASCRIPT AUF WOLKE 7 • Basiert auf node.js und HTML • Zusammengeführt aus • Cloud9 • Mozilla Bespin (Skywriter) • Frontend & Backend Entwicklung (node.jS) • Mächtiges Debugging-Tool
  • 44. MOBILE "PhoneGap is an open source development framework for building cross-platform mobile apps. Build apps in HTML and JavaScript and still take advantage of core features in iPhone/iPod touch, iPad, Google Android, Palm, Symbian and Blackberry SDKs."
  • 45. webOS
  • 46. UND WAS IST MIT DESKTOP 1.0?
  • 48. DESKTOP Chrome OS • Es geht auch andersrum? • Oh Ja! • z.B. Jollycloud • das OS aus der Wolke!
  • 51. JAVASCRIPT Browser jQuery DOM tree
  • 52. JAVASCRIPT jQuery.ajaxInterface Browser jQuery DOM tree
  • 53. JAVASCRIPT jQuery.ajaxInterface Magie <?xml?> Return Browser jQuery DOM tree
  • 54. AJAXINTERFACE: MÖGLICHKEITEN 5 4 3 Aktion 2 1 0 0 1 2 3 4 5 6 7 8 9 10 Zeit t
  • 55. BEISPIEL <?xml version="1.0"?> <jquery> <setTitle>new page title</setTitle> <setSelector value="div#main"> <html action="replace"> <![CDATA[ <h1> New Page Content </h1> ]]> </html> ! </setSelector> </jquery> Abwärtskompatibilität: Der Server erzeugt ajaxInterface XML statt HTML, wenn "ajaxInterface=true" gesetzt ist.
  • 56. AJAXINTERFACE: ROADMAP • Entwicklung eines ajaxInterface-Servers (node.JS) • automatische Zustandshaltung • JavaScript Template-Engine • Abwärtskompatibilität (history.pushState()) • WebSockets (Socket.IO) • MVC im Browser / Server
  • 57. VIELEN DANK! Fragen? Evgenij Terehov | twitter: @EugeneTerehov | www.terehov.de https://github.com/terehov/jQuery.ajaxInterface