SlideShare a Scribd company logo
Modern
Architectures
Spring
           with

                         and

   JavaScript

          Martin Lippert,VMware
  mlippert@vmware.com, @martinlippert
Were do we come from?




                    http://www.nasa.gov
Servlet Specification
        mostly static HTML created on server
                  Template Engines




                                      JSP Specification
                                     mostly static HTML created on server
                                    no template engines necessary anymore




    Web Frameworks
    mostly static HTML created on server
        various framework, supporting:
authentication, session-handling, page flows, etc.



                                          JavaScript
                                        only used to do some kid‘s stuff
Or from her
           e?
Desktop?
            SWT?

   Swing?
Typical Runtime Structures



     Browser          render HTML



                      business logic &
Tomcat / tc Server
                      page rendering



Relational Database    contains data
And today...
What happens?


                         render HTML & improved
     Browser
                         experience using JavaScript
            AJAX calls


                              business logic &
Tomcat / tc Server         page rendering & APIs


                            contains data & new
Relational Database
                         challenges (structure, size)
A few observations
                         duplicated logic, no
                           modularization
                           render HTML & improved
     Browser
                          experience using JavaScript
            AJAX calls
                         APIs are challenging, Java not
                          the only language anymore
                                 business logic &
Tomcat / tc Server            page rendering & APIs

                          relational & transactional
                              contains anymore
                              don‘t fit data & new
Relational Database
                           challenges (structure, size)
Different pictures


AWS             node.js                HTML/CSS
          NoSQL               Java
                                     JavaScript
JavaScript      Hadoop
          CoffeeScript


  modern apps                old style apps

  Scala
             Ruby/Rails      Application
 Clojure          PaaS         Server
                                           RDBMS
          HTML5/CSS3
Where do we go
    from here?
The

Client
  Side
Innovation happens here
The JavaScript Story




            http://www.maztek.com/blog/wp-content/uploads/javascript.jpg
My assumptions
             - on the client side -




       Browser only (HTML5/CSS3)
             JavaScript only


   „The browser-based application
written in JavaScript becomes the new
       rich client architecture“
Existing JavaScript libs are UI centric
         (focus on making life with the DOM easier)


               most prominent:
                  jquery
JavaScript versions of
„good old rich client patterns“
       begin to appear
         (and are highly necessary)




           Examples
         backbone.js
          angular.js
          ember.js
              ...
The

Server
  Side
My assumptions
            - server side languages -




     many different languages in use
choose the right language for the right job
    don‘t use a new language for fun
My assumptions
             - data storage -




     more and more data (big data)
different storage techniques combined
     (rdbms, nosql, graph databases)
         scalability is important
The landscape

                    Browser App
                       (JavaScript)




Service   Service     Service         Service    Service



                NoSQL                           NoSQL
RDBMS                                  NoSQL
      RDBMS                NoSQL                 NoSQL
Browser App
                        (JavaScript)




               rich client application
Service         written in JavaScript
          Service       Service      Service   Service
        (a lot bigger than what we do today in
             JavaScript within the browser)

                   NoSQL                   NoSQL
RDBMS                                  NoSQL
       RDBMS                NoSQL              NoSQL
Browser App
       (JavaScript)




     maybe also CoffeeScript,
        TypeScript, Dart


maybe GWT, but likely not



    forget about JSF
The landscape
         services are provided by a PaaS
  or are hand-written (in a language of your choice)
                  Browser App
    this is where Spring is really powerful
                      (JavaScript)

    ready to run „in the cloud“ (scalability)
              (no client-side rendering or logic)




Service   Service       Service          Service     Service



                   NoSQL                            NoSQL
RDBMS                                       NoSQL
      RDBMS                   NoSQL                  NoSQL
Service


  Spring MVC is the easiest way to
implement RESTful APIs and services


      APIs are JSON and HATEOAS based


        Spring MVC + Spring HATEOAS
          is a powerful combination


                     more on Spring HATEOAS:
          https://github.com/SpringSource/spring-hateoas
Service


Spring Integration &
     Messaging


    Spring Batch
Browser App
                    (JavaScript)




RESTful API                        Push
using AJAX                     (over WebSockets)
   (over http)




                  Service
Browser App
                      (JavaScript)


        RDBMS and NoSQL datastores are
               provided by the PaaS
        + the PaaS takes care of scalability
Service access managed by Spring (e.g. Spring Data)
      + Service     Service   Service       Service



                  NoSQL                  NoSQL
RDBMS                                NoSQL
       RDBMS              NoSQL              NoSQL
Running in the cloud
                    (on a PaaS)


Service   Service    Service      Service    Service



                NoSQL                       NoSQL
RDBMS                              NoSQL
      RDBMS              NoSQL               NoSQL
The

Challenges
Modularity
    in
JavaScript
AMD
 (asynchronous module definition)

             wire.js
(Dependency Injection for JavaScript)

Micro Services for JavaScript
(OSGi services written in JavaScript)
More Challenges
offline
cloud-ready services
define good APIs
versioned APIs
TDD for JavaScript
more information
                Adrian Colyer on Application Development in the Cloud Era
                      http://www.youtube.com/watch?v=axOPJbrIjkY

Example app using Spring for providing RESTful APIs and JavaScript for a rich client and mobile
                                            app
                       https://github.com/SpringSource/html5expense

                   Asynchronous Module Definition for JavaScript (AMD)
                            https://github.com/amdjs/amdjs-api
                          http://requirejs.org/docs/whyamd.html

                                             wire.js
                                https://github.com/cujojs/wire

                                     hello world with wire.js
                         https://github.com/briancavalier/hello-wire.js

                             more advanced example for wire.js
                         https://github.com/briancavalier/piratescript

                                     Cloud Foundry PaaS
                                http://www.cloudfoundry.com
                                http://www.cloudfoundry.org
Q&A
and thank you for your attention




        Martin Lippert,VMware
mlippert@vmware.com, @martinlippert

More Related Content

What's hot (19)

PPTX
Beginners' guide to Ruby on Rails
Victor Porof
 
PDF
SOFEA: Service Oriented Front End Architecture, Next Gen Web Architecture for...
Kunal Ashar
 
PDF
From User Action to Framework Reaction
jbandi
 
PDF
Ruby on Rails Security
amiable_indian
 
PDF
Apache Etch Introduction @ FOSDEM 2011
grandyho
 
PDF
Java Web Programming [4/9] : JSP Basic
IMC Institute
 
PDF
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
Daniel Bryant
 
PPTX
Integration of Backbone.js with Spring 3.1
Michał Orman
 
PDF
Java API for XML Web Services (JAX-WS)
Peter R. Egli
 
PDF
Spring Framework - MVC
Dzmitry Naskou
 
PPT
Java EE 7 (Hamed Hatami)
Hamed Hatami
 
PDF
Jsf Framework
Marimuthu Udayakumar
 
PPTX
KnockOutjs from Scratch
Udaya Kumar
 
PPTX
Spring Web Services
Emprovise
 
KEY
Multi Client Development with Spring
Joshua Long
 
PPTX
Angular jS Introduction by Google
ASG
 
PDF
Lecture 7 Web Services JAX-WS & JAX-RS
Fahad Golra
 
ODP
springmvc-150923124312-lva1-app6892
Tuna Tore
 
PPT
Spring 3.1: a Walking Tour
Joshua Long
 
Beginners' guide to Ruby on Rails
Victor Porof
 
SOFEA: Service Oriented Front End Architecture, Next Gen Web Architecture for...
Kunal Ashar
 
From User Action to Framework Reaction
jbandi
 
Ruby on Rails Security
amiable_indian
 
Apache Etch Introduction @ FOSDEM 2011
grandyho
 
Java Web Programming [4/9] : JSP Basic
IMC Institute
 
MSc Enterprise Systems Development Guest Lecture at UniS (2/12/09)
Daniel Bryant
 
Integration of Backbone.js with Spring 3.1
Michał Orman
 
Java API for XML Web Services (JAX-WS)
Peter R. Egli
 
Spring Framework - MVC
Dzmitry Naskou
 
Java EE 7 (Hamed Hatami)
Hamed Hatami
 
Jsf Framework
Marimuthu Udayakumar
 
KnockOutjs from Scratch
Udaya Kumar
 
Spring Web Services
Emprovise
 
Multi Client Development with Spring
Joshua Long
 
Angular jS Introduction by Google
ASG
 
Lecture 7 Web Services JAX-WS & JAX-RS
Fahad Golra
 
springmvc-150923124312-lva1-app6892
Tuna Tore
 
Spring 3.1: a Walking Tour
Joshua Long
 

Viewers also liked (20)

PDF
GeeCON 2012 Bad Tests, Good Tests
Tomek Kaczanowski
 
PDF
How To Use The Codename One Sources
Shai Almog
 
PDF
Enhancing Spring MVC Web Applications Progressively with Spring JavaScript
Jeremy Grelle
 
PDF
Introduction to Rails engine
Anh Tranngoc
 
PDF
Design & Development of Web Applications using SpringMVC
Naresh Chintalcheru
 
PPTX
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XpressEngine
 
PDF
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
Cheng Ta Yeh
 
PDF
Creating MVC Application with backbone js
Mindfire Solutions
 
PPTX
Rest with Java EE 6 , Security , Backbone.js
Carol McDonald
 
ODP
Java Spring MVC Framework with AngularJS by Google and HTML5
Tuna Tore
 
PPT
Building a Scalable Architecture for web apps
Directi Group
 
PDF
Hr coverage directi 2012
Directi Group
 
PPT
Web Application Development Fundamentals
Mohammed Makhlouf
 
PPTX
Web application architecture
Tejaswini Deshpande
 
PPTX
Introduction to Web Architecture
Chamnap Chhorn
 
PDF
Fundamentals of Web Development For Non-Developers
Lemi Orhan Ergin
 
PDF
Architecture of a Modern Web App
scothis
 
PPTX
Shall we play a game?
Maciej Lasyk
 
PDF
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
 
PDF
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
GeeCON 2012 Bad Tests, Good Tests
Tomek Kaczanowski
 
How To Use The Codename One Sources
Shai Almog
 
Enhancing Spring MVC Web Applications Progressively with Spring JavaScript
Jeremy Grelle
 
Introduction to Rails engine
Anh Tranngoc
 
Design & Development of Web Applications using SpringMVC
Naresh Chintalcheru
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XpressEngine
 
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
Cheng Ta Yeh
 
Creating MVC Application with backbone js
Mindfire Solutions
 
Rest with Java EE 6 , Security , Backbone.js
Carol McDonald
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Tuna Tore
 
Building a Scalable Architecture for web apps
Directi Group
 
Hr coverage directi 2012
Directi Group
 
Web Application Development Fundamentals
Mohammed Makhlouf
 
Web application architecture
Tejaswini Deshpande
 
Introduction to Web Architecture
Chamnap Chhorn
 
Fundamentals of Web Development For Non-Developers
Lemi Orhan Ergin
 
Architecture of a Modern Web App
scothis
 
Shall we play a game?
Maciej Lasyk
 
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
Ad

Similar to Modern Architectures with Spring and JavaScript (20)

PDF
Modern Architectures with Spring and JavaScript
martinlippert
 
PDF
JAX 2013: Modern Architectures with Spring and JavaScript
martinlippert
 
KEY
SSJS, NoSQL, GAE and AppengineJS
Eugene Lazutkin
 
PPTX
Webdevcon Keynote hh-2012-09-18
Pierre Joye
 
KEY
20120802 timisoara
Richard Rodger
 
PDF
Spring Into the Cloud
Jennifer Hickey
 
KEY
20120306 dublin js
Richard Rodger
 
PDF
Node.js
Matt Simonis
 
PDF
Hpc lunch and learn
John D Almon
 
PPTX
JavaScript on the server - Node.js
Rody Middelkoop
 
PDF
Post-relational databases: What's wrong with web development?
Dobrica Pavlinušić
 
ODP
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Codemotion
 
PDF
Kann JavaScript elegant sein?
jbandi
 
PDF
Building Cross Platform Mobile Web Apps
James Pearce
 
ODP
Trends in Technology
Dhananjay Nene
 
PDF
Hybrid mobile apps
Erik Paulsson
 
PDF
Post-relational databases: What's wrong with web development? v3
Dobrica Pavlinušić
 
PDF
The spring 32 update final
Joshua Long
 
PDF
World of javascript
Rapee Suveeranont
 
Modern Architectures with Spring and JavaScript
martinlippert
 
JAX 2013: Modern Architectures with Spring and JavaScript
martinlippert
 
SSJS, NoSQL, GAE and AppengineJS
Eugene Lazutkin
 
Webdevcon Keynote hh-2012-09-18
Pierre Joye
 
20120802 timisoara
Richard Rodger
 
Spring Into the Cloud
Jennifer Hickey
 
20120306 dublin js
Richard Rodger
 
Node.js
Matt Simonis
 
Hpc lunch and learn
John D Almon
 
JavaScript on the server - Node.js
Rody Middelkoop
 
Post-relational databases: What's wrong with web development?
Dobrica Pavlinušić
 
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Codemotion
 
Kann JavaScript elegant sein?
jbandi
 
Building Cross Platform Mobile Web Apps
James Pearce
 
Trends in Technology
Dhananjay Nene
 
Hybrid mobile apps
Erik Paulsson
 
Post-relational databases: What's wrong with web development? v3
Dobrica Pavlinušić
 
The spring 32 update final
Joshua Long
 
World of javascript
Rapee Suveeranont
 
Ad

More from martinlippert (18)

PDF
WJAX 2013: Java8-Tooling in Eclipse
martinlippert
 
PDF
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundry
martinlippert
 
PDF
EclipseCon-Europe 2013: Optimizing performance - how to make your Eclipse-bas...
martinlippert
 
PDF
EclipseCon-Europe 2013: Making the Eclipse IDE fun again
martinlippert
 
PDF
Jax2013 PaaS-Parade - Part 1: Cloud Foundry
martinlippert
 
PDF
JAX 2013: Introducing Eclipse Orion
martinlippert
 
PDF
Spring Tooling: What's new and what's coming
martinlippert
 
PDF
Scripted - Embracing Eclipse Orion
martinlippert
 
PDF
PaaS Parade - Cloud Foundry
martinlippert
 
PDF
Browser and Cloud - The Future of IDEs?
martinlippert
 
PDF
What's new with tooling for Spring, Grails, and the Cloud
martinlippert
 
PDF
Tooling for the JavaScript Era
martinlippert
 
PDF
Embracing Eclipse Orion
martinlippert
 
PDF
Why SOLID matters - even for JavaScript
martinlippert
 
PDF
JAX 2012: Pimp Your IDE Productivity
martinlippert
 
PDF
WaveMaker - Spring Roo - SpringSource Tool Suite - Choosing the right tool fo...
martinlippert
 
PDF
Spring Tooling Update - New & Noteworty (at SpringOne 2011)
martinlippert
 
PDF
Classloading and Type Visibility in OSGi
martinlippert
 
WJAX 2013: Java8-Tooling in Eclipse
martinlippert
 
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundry
martinlippert
 
EclipseCon-Europe 2013: Optimizing performance - how to make your Eclipse-bas...
martinlippert
 
EclipseCon-Europe 2013: Making the Eclipse IDE fun again
martinlippert
 
Jax2013 PaaS-Parade - Part 1: Cloud Foundry
martinlippert
 
JAX 2013: Introducing Eclipse Orion
martinlippert
 
Spring Tooling: What's new and what's coming
martinlippert
 
Scripted - Embracing Eclipse Orion
martinlippert
 
PaaS Parade - Cloud Foundry
martinlippert
 
Browser and Cloud - The Future of IDEs?
martinlippert
 
What's new with tooling for Spring, Grails, and the Cloud
martinlippert
 
Tooling for the JavaScript Era
martinlippert
 
Embracing Eclipse Orion
martinlippert
 
Why SOLID matters - even for JavaScript
martinlippert
 
JAX 2012: Pimp Your IDE Productivity
martinlippert
 
WaveMaker - Spring Roo - SpringSource Tool Suite - Choosing the right tool fo...
martinlippert
 
Spring Tooling Update - New & Noteworty (at SpringOne 2011)
martinlippert
 
Classloading and Type Visibility in OSGi
martinlippert
 

Recently uploaded (20)

PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Digital Circuits, important subject in CS
contactparinay1
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 

Modern Architectures with Spring and JavaScript

  • 1. Modern Architectures Spring with and JavaScript Martin Lippert,VMware [email protected], @martinlippert
  • 2. Were do we come from? http://www.nasa.gov
  • 3. Servlet Specification mostly static HTML created on server Template Engines JSP Specification mostly static HTML created on server no template engines necessary anymore Web Frameworks mostly static HTML created on server various framework, supporting: authentication, session-handling, page flows, etc. JavaScript only used to do some kid‘s stuff
  • 4. Or from her e? Desktop? SWT? Swing?
  • 5. Typical Runtime Structures Browser render HTML business logic & Tomcat / tc Server page rendering Relational Database contains data
  • 7. What happens? render HTML & improved Browser experience using JavaScript AJAX calls business logic & Tomcat / tc Server page rendering & APIs contains data & new Relational Database challenges (structure, size)
  • 8. A few observations duplicated logic, no modularization render HTML & improved Browser experience using JavaScript AJAX calls APIs are challenging, Java not the only language anymore business logic & Tomcat / tc Server page rendering & APIs relational & transactional contains anymore don‘t fit data & new Relational Database challenges (structure, size)
  • 9. Different pictures AWS node.js HTML/CSS NoSQL Java JavaScript JavaScript Hadoop CoffeeScript modern apps old style apps Scala Ruby/Rails Application Clojure PaaS Server RDBMS HTML5/CSS3
  • 10. Where do we go from here?
  • 13. The JavaScript Story http://www.maztek.com/blog/wp-content/uploads/javascript.jpg
  • 14. My assumptions - on the client side - Browser only (HTML5/CSS3) JavaScript only „The browser-based application written in JavaScript becomes the new rich client architecture“
  • 15. Existing JavaScript libs are UI centric (focus on making life with the DOM easier) most prominent: jquery
  • 16. JavaScript versions of „good old rich client patterns“ begin to appear (and are highly necessary) Examples backbone.js angular.js ember.js ...
  • 18. My assumptions - server side languages - many different languages in use choose the right language for the right job don‘t use a new language for fun
  • 19. My assumptions - data storage - more and more data (big data) different storage techniques combined (rdbms, nosql, graph databases) scalability is important
  • 20. The landscape Browser App (JavaScript) Service Service Service Service Service NoSQL NoSQL RDBMS NoSQL RDBMS NoSQL NoSQL
  • 21. Browser App (JavaScript) rich client application Service written in JavaScript Service Service Service Service (a lot bigger than what we do today in JavaScript within the browser) NoSQL NoSQL RDBMS NoSQL RDBMS NoSQL NoSQL
  • 22. Browser App (JavaScript) maybe also CoffeeScript, TypeScript, Dart maybe GWT, but likely not forget about JSF
  • 23. The landscape services are provided by a PaaS or are hand-written (in a language of your choice) Browser App this is where Spring is really powerful (JavaScript) ready to run „in the cloud“ (scalability) (no client-side rendering or logic) Service Service Service Service Service NoSQL NoSQL RDBMS NoSQL RDBMS NoSQL NoSQL
  • 24. Service Spring MVC is the easiest way to implement RESTful APIs and services APIs are JSON and HATEOAS based Spring MVC + Spring HATEOAS is a powerful combination more on Spring HATEOAS: https://github.com/SpringSource/spring-hateoas
  • 25. Service Spring Integration & Messaging Spring Batch
  • 26. Browser App (JavaScript) RESTful API Push using AJAX (over WebSockets) (over http) Service
  • 27. Browser App (JavaScript) RDBMS and NoSQL datastores are provided by the PaaS + the PaaS takes care of scalability Service access managed by Spring (e.g. Spring Data) + Service Service Service Service NoSQL NoSQL RDBMS NoSQL RDBMS NoSQL NoSQL
  • 28. Running in the cloud (on a PaaS) Service Service Service Service Service NoSQL NoSQL RDBMS NoSQL RDBMS NoSQL NoSQL
  • 30. Modularity in JavaScript
  • 31. AMD (asynchronous module definition) wire.js (Dependency Injection for JavaScript) Micro Services for JavaScript (OSGi services written in JavaScript)
  • 32. More Challenges offline cloud-ready services define good APIs versioned APIs TDD for JavaScript
  • 33. more information Adrian Colyer on Application Development in the Cloud Era http://www.youtube.com/watch?v=axOPJbrIjkY Example app using Spring for providing RESTful APIs and JavaScript for a rich client and mobile app https://github.com/SpringSource/html5expense Asynchronous Module Definition for JavaScript (AMD) https://github.com/amdjs/amdjs-api http://requirejs.org/docs/whyamd.html wire.js https://github.com/cujojs/wire hello world with wire.js https://github.com/briancavalier/hello-wire.js more advanced example for wire.js https://github.com/briancavalier/piratescript Cloud Foundry PaaS http://www.cloudfoundry.com http://www.cloudfoundry.org
  • 34. Q&A and thank you for your attention Martin Lippert,VMware [email protected], @martinlippert