SlideShare a Scribd company logo
Client/Server 3.0 - 6 Ways JavaScript is Revolutionizing the Client/
      Server Relationship
      27 NOVEMBER 2012




Wednesday, November 28, 12
Jesse Cravens & Jeff Burtoft



                                       HTML5
                                       Hacks
                                       Tips & Tools for Creating
                                       Interactive Web Applications




             @jdcravens
             github.com/jessecravens
             jessecravens.com
             html5hacks.com




Wednesday, November 28, 12
HACKS




                             node.JS Hacks
                             Summer 2013




Wednesday, November 28, 12
Client/Server 3.0:           6 Ways JavaScript is Revolutionizing the
       Client/Server Relationship




Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      6 ways JavaScript is Revolutionizing the
                      Client/Server Relationship

                      • Device Access Within the Browser
                      • Client Side Processing w/ Background Threads
                      • Device Detection and Descriptors / Adaptive Frameworks
                      • HTML5 Connectivity Revolution and HTTP 2.0
                      • Single Runtime, Shared Syntax
                      • Embedded JavaScript




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   5



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      #1 Device Access within the Browser

                      • Adobe Cordova (phoneGap)
                      • Device API is now defunct.
                      • getUserMedia/Stream API (no native IE support ... yet?)
                      • GeoLocation API broad support (except IE8)
                      • Device Orientation, Device Motion, (poorly supported /
                         hacky)


                      The Client Gets Smarter.
                      JavaScript Device APIs continue to evolve, allowing more access to
                      device hardware, services and applications such as the camera,
                      microphone, system sensors, native address books, calendars and
                      native messaging applications.


                      DEVCON5 HTML5 Summit                                  5 OCT 2012     6



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   7



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   8



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   9



Wednesday, November 28, 12
GeoLocation Hacks
       from ‘HTML5 Hacks’




Wednesday, November 28, 12
Device Orientation Hacks
       from ‘HTML5 Hacks Xtra’




Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      #2: Client-Side Background Threads


                      • Browser runs a single threaded, event loop
                         • Dedicated Web Workers
                         • Shared Web Workers
                      • Async Programming Models, Reactionary Systems
                      • Interpreters are Maturing (V8)


                      The Client Gets More Powerful.
                      Web Workers API enables background threads in the browser,
                      making heavy computations realistic.




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   12



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   13



Wednesday, November 28, 12
Web Workers Hacks
       from ‘HTML5 Hacks’




Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      #3: Device Detection and Adaptive/
                      Responsive Frameworks

                      • CSS3 Media Queries
                      • Responsive Grids
                      • Modernizr
                      • Polyfill Support - Cross Platform Compliance
                      • Adaptive Frameworks (UA Sniffing - Maps to Templates)
                      • State of DDRs (Device Description Repositories)
                         • W3C Device Description Working Group (DDWG) (closed 2008)
                         • WURFL (commercial Oct 2011)
                         • OpenDDR - based on W3C's DDR Simple API, .NET, Java
                         • Device Atlas



                      DEVCON5 HTML5 Summit                                  5 OCT 2012   15



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   16



Wednesday, November 28, 12
ResponderJS
       with Fn-Responsive




Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      #4: HTML5 Connectivty Revolution and
                      HTTP 2.0

                      • Web Sockets API
                      • XHR2
                      • Event Source and Server Sent Events
                      • SPDY
                      • CORS




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   18



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




            HTML5 Connectivity




                                                  http://marakana.com/s/peter_lubbers_the_html5_connectivity_revolution_devcon5,1170/index.html


                      DEVCON5 HTML5 Summit                                                                   5 OCT 2012                      19



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




            HTML5 Connectivity




                                                  http://marakana.com/s/peter_lubbers_the_html5_connectivity_revolution_devcon5,1170/index.html


                      DEVCON5 HTML5 Summit                                                                   5 OCT 2012                      19



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   20



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   21



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   22



Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      DEVCON5 HTML5 Summit                                  5 OCT 2012   23



Wednesday, November 28, 12
Robodeck
       Socket.io Driven Collaborative Presentations




Wednesday, November 28, 12
node-spdy
       Hello World




Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      #5: Single Language, Shared Syntax
                      • Node Streams - IO as it should be
                         • Linux Pipes
                         • Modular
                         • Different Types of Streams
                      • Browserify - Build tool to Normalize APIs between Client/
                         Server
                         • node-browserify - adds require()
                         • http-browserify - adds http()
                      • DomNode - wrap common I/O bound APIs in node style
                         stream
                      • Browser-stream - open pipable streams to and from the
                         browser, with Socket.io

                    Node.js has enabled the same language, single runtime. But,
                    the paradigms are still quite different. Next steps are shared
                    APIs.
                      DEVCON5 HTML5 Summit                                  5 OCT 2012   26



Wednesday, November 28, 12
Node Streams
       from NodeJSHacks




Wednesday, November 28, 12
6 Ways JavaScript is Revolutionizing the Client/Server Relationship




                      #6 Embedded JavaScript
                      • more and more JavaScript Ubiquity
                      • JavaScript Arduino Wrappers
                         • Noduino
                         • Johnny Five
                      • Server moves to the Client
                         • Beaglebone (Angstrom Linux)
                         • Bonescript
                      • Mongoose ORM
                         • Mongo JavaScript CLI
                      • node-ar-drone
                    There is a barrier of entry to learning SQL, C and C++, and
                    Linux. JavaScript is opening new worlds for Developers.

                    Not to mention, the server is now on the client.
                      DEVCON5 HTML5 Summit                                  5 OCT 2012   28



Wednesday, November 28, 12
Embedded NodeJS
       from NodeJSHacks




Wednesday, November 28, 12
Image API
       DragDrop, XHR2 FormData, Express Restful
       Services



Wednesday, November 28, 12
© 2012 frog. All rights reserved.


Wednesday, November 28, 12

More Related Content

PPTX
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
PDF
The Decoupled CMS in Financial Services
PPTX
Codemotion Rome 2018 "Continuous Delivery with Containers: The Good, the Bad ...
PDF
AllDayDevOps: "Microservices: The People and Organisational Impact"
PPTX
QlikView Macro's Are Bad
PDF
20051114: WAYFs And Discovery
 
PDF
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
PPSX
Microservices, Containers, Kubernetes, Kafka, Kanban
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
The Decoupled CMS in Financial Services
Codemotion Rome 2018 "Continuous Delivery with Containers: The Good, the Bad ...
AllDayDevOps: "Microservices: The People and Organisational Impact"
QlikView Macro's Are Bad
20051114: WAYFs And Discovery
 
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
Microservices, Containers, Kubernetes, Kafka, Kanban

What's hot (20)

PPSX
CI-CD Jenkins, GitHub Actions, Tekton
DOC
Himanshu_Resume
PDF
Refactor your Java EE application using Microservices and Containers - Arun G...
PDF
HTML5, are we there yet?
PDF
Cloud Foundry OpenTour Kiev Keynote
PDF
Module 3: Working with the DOM and jQuery
PDF
IE issues with AJAX Apps
PPTX
Plastic SCM : Version Control for Game and,VR/AR/MR/3D Development
PPTX
Going MicroServices with Net
PDF
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
PDF
QlikView licensing and pricing guidelines 2012
PPTX
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
PPTX
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
PDF
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
PDF
Web Tools for GemStone/S
PDF
SOA on Steroids
PPTX
Oracle Blockchain Cloud Service
PPTX
Docker Kubernetes Istio
PDF
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
PDF
Node Foundation Membership Overview 20160907
CI-CD Jenkins, GitHub Actions, Tekton
Himanshu_Resume
Refactor your Java EE application using Microservices and Containers - Arun G...
HTML5, are we there yet?
Cloud Foundry OpenTour Kiev Keynote
Module 3: Working with the DOM and jQuery
IE issues with AJAX Apps
Plastic SCM : Version Control for Game and,VR/AR/MR/3D Development
Going MicroServices with Net
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
QlikView licensing and pricing guidelines 2012
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Web Tools for GemStone/S
SOA on Steroids
Oracle Blockchain Cloud Service
Docker Kubernetes Istio
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Node Foundation Membership Overview 20160907
Ad

Viewers also liked (6)

PPTX
Ul Week 12
PDF
It’s Cool, Nobody Else Knows What They're Doing Either
KEY
Final everyone-needs-a-dumb-guy-moody
PPT
Activities
PDF
Building Rich User Experiences Without JavaScript Spaghetti
PDF
JavaScript Hacks for Hipsters
Ul Week 12
It’s Cool, Nobody Else Knows What They're Doing Either
Final everyone-needs-a-dumb-guy-moody
Activities
Building Rich User Experiences Without JavaScript Spaghetti
JavaScript Hacks for Hipsters
Ad

Similar to Client Server 3.0 - 6 Ways JavaScript is Revolutionizing the Client/Server Relationship (20)

PDF
Jsf2 html5-jazoon
PPT
Top 10 HTML5 Features for Oracle Cloud Developers
PDF
Kann JavaScript elegant sein?
PDF
An Intro to Mobile HTML5
PDF
HTML5 Technical Executive Summary
PDF
Rapid Prototyping HTML5 Applications with Node.js
PPTX
HTML5: An Overview
PPT
JavaScript State of the Union - Jan 2013
PPT
JavaScript State of the Union - Jan 2013
PDF
HTML5のご紹介
PDF
Javascript Views, Client-side or Server-side with NodeJS
PDF
HTML5 and Google Chrome - DevFest09
PDF
HTML5 and friends
PDF
HTML5 and web platform
PDF
Html5 Application Security
KEY
Introduction to HTML5/CSS3 In Drupal 7
PDF
HTML5 features & JavaScript APIs
PPT
HTML5 Webinar - Mind Storm Software
PPSX
Html5
Jsf2 html5-jazoon
Top 10 HTML5 Features for Oracle Cloud Developers
Kann JavaScript elegant sein?
An Intro to Mobile HTML5
HTML5 Technical Executive Summary
Rapid Prototyping HTML5 Applications with Node.js
HTML5: An Overview
JavaScript State of the Union - Jan 2013
JavaScript State of the Union - Jan 2013
HTML5のご紹介
Javascript Views, Client-side or Server-side with NodeJS
HTML5 and Google Chrome - DevFest09
HTML5 and friends
HTML5 and web platform
Html5 Application Security
Introduction to HTML5/CSS3 In Drupal 7
HTML5 features & JavaScript APIs
HTML5 Webinar - Mind Storm Software
Html5

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
A Presentation on Artificial Intelligence
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Encapsulation theory and applications.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Cloud computing and distributed systems.
PPTX
Machine Learning_overview_presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
A Presentation on Artificial Intelligence
Advanced methodologies resolving dimensionality complications for autism neur...
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
MIND Revenue Release Quarter 2 2025 Press Release
“AI and Expert System Decision Support & Business Intelligence Systems”
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Diabetes mellitus diagnosis method based random forest with bat algorithm
Encapsulation theory and applications.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Cloud computing and distributed systems.
Machine Learning_overview_presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Digital-Transformation-Roadmap-for-Companies.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Encapsulation_ Review paper, used for researhc scholars

Client Server 3.0 - 6 Ways JavaScript is Revolutionizing the Client/Server Relationship

  • 1. Client/Server 3.0 - 6 Ways JavaScript is Revolutionizing the Client/ Server Relationship 27 NOVEMBER 2012 Wednesday, November 28, 12
  • 2. Jesse Cravens & Jeff Burtoft HTML5 Hacks Tips & Tools for Creating Interactive Web Applications @jdcravens github.com/jessecravens jessecravens.com html5hacks.com Wednesday, November 28, 12
  • 3. HACKS node.JS Hacks Summer 2013 Wednesday, November 28, 12
  • 4. Client/Server 3.0: 6 Ways JavaScript is Revolutionizing the Client/Server Relationship Wednesday, November 28, 12
  • 5. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship 6 ways JavaScript is Revolutionizing the Client/Server Relationship • Device Access Within the Browser • Client Side Processing w/ Background Threads • Device Detection and Descriptors / Adaptive Frameworks • HTML5 Connectivity Revolution and HTTP 2.0 • Single Runtime, Shared Syntax • Embedded JavaScript DEVCON5 HTML5 Summit 5 OCT 2012 5 Wednesday, November 28, 12
  • 6. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship #1 Device Access within the Browser • Adobe Cordova (phoneGap) • Device API is now defunct. • getUserMedia/Stream API (no native IE support ... yet?) • GeoLocation API broad support (except IE8) • Device Orientation, Device Motion, (poorly supported / hacky) The Client Gets Smarter. JavaScript Device APIs continue to evolve, allowing more access to device hardware, services and applications such as the camera, microphone, system sensors, native address books, calendars and native messaging applications. DEVCON5 HTML5 Summit 5 OCT 2012 6 Wednesday, November 28, 12
  • 7. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 7 Wednesday, November 28, 12
  • 8. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 8 Wednesday, November 28, 12
  • 9. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 9 Wednesday, November 28, 12
  • 10. GeoLocation Hacks from ‘HTML5 Hacks’ Wednesday, November 28, 12
  • 11. Device Orientation Hacks from ‘HTML5 Hacks Xtra’ Wednesday, November 28, 12
  • 12. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship #2: Client-Side Background Threads • Browser runs a single threaded, event loop • Dedicated Web Workers • Shared Web Workers • Async Programming Models, Reactionary Systems • Interpreters are Maturing (V8) The Client Gets More Powerful. Web Workers API enables background threads in the browser, making heavy computations realistic. DEVCON5 HTML5 Summit 5 OCT 2012 12 Wednesday, November 28, 12
  • 13. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 13 Wednesday, November 28, 12
  • 14. Web Workers Hacks from ‘HTML5 Hacks’ Wednesday, November 28, 12
  • 15. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship #3: Device Detection and Adaptive/ Responsive Frameworks • CSS3 Media Queries • Responsive Grids • Modernizr • Polyfill Support - Cross Platform Compliance • Adaptive Frameworks (UA Sniffing - Maps to Templates) • State of DDRs (Device Description Repositories) • W3C Device Description Working Group (DDWG) (closed 2008) • WURFL (commercial Oct 2011) • OpenDDR - based on W3C's DDR Simple API, .NET, Java • Device Atlas DEVCON5 HTML5 Summit 5 OCT 2012 15 Wednesday, November 28, 12
  • 16. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 16 Wednesday, November 28, 12
  • 17. ResponderJS with Fn-Responsive Wednesday, November 28, 12
  • 18. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship #4: HTML5 Connectivty Revolution and HTTP 2.0 • Web Sockets API • XHR2 • Event Source and Server Sent Events • SPDY • CORS DEVCON5 HTML5 Summit 5 OCT 2012 18 Wednesday, November 28, 12
  • 19. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship HTML5 Connectivity http://marakana.com/s/peter_lubbers_the_html5_connectivity_revolution_devcon5,1170/index.html DEVCON5 HTML5 Summit 5 OCT 2012 19 Wednesday, November 28, 12
  • 20. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship HTML5 Connectivity http://marakana.com/s/peter_lubbers_the_html5_connectivity_revolution_devcon5,1170/index.html DEVCON5 HTML5 Summit 5 OCT 2012 19 Wednesday, November 28, 12
  • 21. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 20 Wednesday, November 28, 12
  • 22. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 21 Wednesday, November 28, 12
  • 23. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 22 Wednesday, November 28, 12
  • 24. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship DEVCON5 HTML5 Summit 5 OCT 2012 23 Wednesday, November 28, 12
  • 25. Robodeck Socket.io Driven Collaborative Presentations Wednesday, November 28, 12
  • 26. node-spdy Hello World Wednesday, November 28, 12
  • 27. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship #5: Single Language, Shared Syntax • Node Streams - IO as it should be • Linux Pipes • Modular • Different Types of Streams • Browserify - Build tool to Normalize APIs between Client/ Server • node-browserify - adds require() • http-browserify - adds http() • DomNode - wrap common I/O bound APIs in node style stream • Browser-stream - open pipable streams to and from the browser, with Socket.io Node.js has enabled the same language, single runtime. But, the paradigms are still quite different. Next steps are shared APIs. DEVCON5 HTML5 Summit 5 OCT 2012 26 Wednesday, November 28, 12
  • 28. Node Streams from NodeJSHacks Wednesday, November 28, 12
  • 29. 6 Ways JavaScript is Revolutionizing the Client/Server Relationship #6 Embedded JavaScript • more and more JavaScript Ubiquity • JavaScript Arduino Wrappers • Noduino • Johnny Five • Server moves to the Client • Beaglebone (Angstrom Linux) • Bonescript • Mongoose ORM • Mongo JavaScript CLI • node-ar-drone There is a barrier of entry to learning SQL, C and C++, and Linux. JavaScript is opening new worlds for Developers. Not to mention, the server is now on the client. DEVCON5 HTML5 Summit 5 OCT 2012 28 Wednesday, November 28, 12
  • 30. Embedded NodeJS from NodeJSHacks Wednesday, November 28, 12
  • 31. Image API DragDrop, XHR2 FormData, Express Restful Services Wednesday, November 28, 12
  • 32. © 2012 frog. All rights reserved. Wednesday, November 28, 12