0
ModernArchitecturesSpring           with                         and   JavaScript          Martin Lippert,VMware  mlippert...
Were do we come from?                    http://www.nasa.gov
Servlet Specification        mostly static HTML created on server                  Template Engines                        ...
Or from her           e?Desktop?            SWT?   Swing?
Typical Runtime Structures     Browser          render HTML                      business logic &Tomcat / tc Server       ...
And today...
What happens?                         render HTML & improved     Browser                         experience using JavaScri...
A few observations                         duplicated logic, no                           modularization                  ...
Different picturesAWS             node.js                HTML/CSS          NoSQL               Java                       ...
Where do we go    from here?
TheClient  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 brows...
Existing JavaScript libs are UI centric         (focus on making life with the DOM easier)               most prominent:  ...
JavaScript versions of„good old rich client patterns“       begin to appear         (and are highly necessary)           E...
TheServer  Side
My assumptions            - server side languages -     many different languages in usechoose the right language for the r...
My assumptions             - data storage -     more and more data (big data)different storage techniques combined     (rd...
The landscape                    Browser App                       (JavaScript)Service   Service     Service         Servi...
Browser App                        (JavaScript)               rich client applicationService         written in JavaScript...
Browser App       (JavaScript)     maybe also CoffeeScript,        TypeScript, Dartmaybe GWT, but likely not    forget abo...
The landscape         services are provided by a PaaS  or are hand-written (in a language of your choice)                 ...
Service  Spring MVC is the easiest way toimplement RESTful APIs and services      APIs are JSON and HATEOAS based        S...
ServiceSpring Integration &     Messaging    Spring Batch
Browser App                    (JavaScript)RESTful API                        Pushusing AJAX                     (over Web...
Browser App                      (JavaScript)        RDBMS and NoSQL datastores are               provided by the PaaS    ...
Running in the cloud                    (on a PaaS)Service   Service    Service      Service    Service                NoS...
TheChallenges
Modularity    inJavaScript
AMD (asynchronous module definition)             wire.js(Dependency Injection for JavaScript)Micro Services for JavaScript(...
More Challengesofflinecloud-ready servicesdefine good APIsversioned APIsTDD for JavaScript
more information                Adrian Colyer on Application Development in the Cloud Era                      http://www....
Q&Aand thank you for your attention        Martin Lippert,VMwaremlippert@vmware.com, @martinlippert
Upcoming SlideShare
Loading in...5
×

Modern Architectures with Spring and JavaScript

8,246

Published on

Published in: Technology
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,246
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
129
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

Transcript of "Modern Architectures with Spring and JavaScript"

  1. 1. ModernArchitecturesSpring with and JavaScript Martin Lippert,VMware mlippert@vmware.com, @martinlippert
  2. 2. Were do we come from? http://www.nasa.gov
  3. 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. 4. Or from her e?Desktop? SWT? Swing?
  5. 5. Typical Runtime Structures Browser render HTML business logic &Tomcat / tc Server page renderingRelational Database contains data
  6. 6. And today...
  7. 7. What happens? render HTML & improved Browser experience using JavaScript AJAX calls business logic &Tomcat / tc Server page rendering & APIs contains data & newRelational Database challenges (structure, size)
  8. 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 & newRelational Database challenges (structure, size)
  9. 9. Different picturesAWS node.js HTML/CSS NoSQL Java JavaScriptJavaScript Hadoop CoffeeScript modern apps old style apps Scala Ruby/Rails Application Clojure PaaS Server RDBMS HTML5/CSS3
  10. 10. Where do we go from here?
  11. 11. TheClient Side
  12. 12. Innovation happens here
  13. 13. The JavaScript Story http://www.maztek.com/blog/wp-content/uploads/javascript.jpg
  14. 14. My assumptions - on the client side - Browser only (HTML5/CSS3) JavaScript only „The browser-based applicationwritten in JavaScript becomes the new rich client architecture“
  15. 15. Existing JavaScript libs are UI centric (focus on making life with the DOM easier) most prominent: jquery
  16. 16. JavaScript versions of„good old rich client patterns“ begin to appear (and are highly necessary) Examples backbone.js angular.js ember.js ...
  17. 17. TheServer Side
  18. 18. My assumptions - server side languages - many different languages in usechoose the right language for the right job don‘t use a new language for fun
  19. 19. My assumptions - data storage - more and more data (big data)different storage techniques combined (rdbms, nosql, graph databases) scalability is important
  20. 20. The landscape Browser App (JavaScript)Service Service Service Service Service NoSQL NoSQLRDBMS NoSQL RDBMS NoSQL NoSQL
  21. 21. Browser App (JavaScript) rich client applicationService written in JavaScript Service Service Service Service (a lot bigger than what we do today in JavaScript within the browser) NoSQL NoSQLRDBMS NoSQL RDBMS NoSQL NoSQL
  22. 22. Browser App (JavaScript) maybe also CoffeeScript, TypeScript, Dartmaybe GWT, but likely not forget about JSF
  23. 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 NoSQLRDBMS NoSQL RDBMS NoSQL NoSQL
  24. 24. Service Spring MVC is the easiest way toimplement 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. 25. ServiceSpring Integration & Messaging Spring Batch
  26. 26. Browser App (JavaScript)RESTful API Pushusing AJAX (over WebSockets) (over http) Service
  27. 27. Browser App (JavaScript) RDBMS and NoSQL datastores are provided by the PaaS + the PaaS takes care of scalabilityService access managed by Spring (e.g. Spring Data) + Service Service Service Service NoSQL NoSQLRDBMS NoSQL RDBMS NoSQL NoSQL
  28. 28. Running in the cloud (on a PaaS)Service Service Service Service Service NoSQL NoSQLRDBMS NoSQL RDBMS NoSQL NoSQL
  29. 29. TheChallenges
  30. 30. Modularity inJavaScript
  31. 31. AMD (asynchronous module definition) wire.js(Dependency Injection for JavaScript)Micro Services for JavaScript(OSGi services written in JavaScript)
  32. 32. More Challengesofflinecloud-ready servicesdefine good APIsversioned APIsTDD for JavaScript
  33. 33. more information Adrian Colyer on Application Development in the Cloud Era http://www.youtube.com/watch?v=axOPJbrIjkYExample 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. 34. Q&Aand thank you for your attention Martin Lippert,VMwaremlippert@vmware.com, @martinlippert
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×