Your SlideShare is downloading. ×
JAX 2013: Modern Architectures with Spring and JavaScript
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

JAX 2013: Modern Architectures with Spring and JavaScript


Published on

Published in: Technology

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. ModernArchitecturesMartin Lippert,, @martinlippertwithSpringJavaScriptand
  • 2. about meMartin LippertStaff Engineer, R&D, atSpringSource/VMware and lead ofSpring Tool Suite developmentWorking areas• Eclipse Tooling for the Springplatform• Open Source Committer• Aspect-Weaving for OSGi• Cloud IDEs and JavaScript• Agile software development
  • 3. Typical Runtime StructuresTomcat / tc ServerRelational DatabaseBrowsercontains databusiness logic &page renderingrender HTML
  • 4. More Detail...ControllersRDBMSBrowser-basedHTML RenderingRepositoriesService LayerViewGenerationChannelsBrowserApplicationServer
  • 5. What happens?Tomcat / tc ServerRelational DatabaseBrowsercontains data & newchallenges (structure, size)business logic &page rendering & APIsrender HTML & improvedexperience using JavaScriptAJAX calls
  • 6. A few observationsTomcat / tc ServerRelational DatabaseBrowsercontains data & newchallenges (structure, size)business logic &page rendering & APIsrender HTML & improvedexperience using JavaScriptAJAX callsduplicated logic, nomodularizationAPIs are challenging, Java notthe only language anymorerelational & transactionaldon‘t fit anymore
  • 7. Different picturesmodern apps old style appsNoSQLJavaScriptScalaClojureCoffeeScriptnode.jsHadoopRuby/RailsPaaSAWSJavaRDBMSApplicationServerJavaScriptHTML5/CSS3HTML/CSS
  • 8. Where do we gofrom here?
  • 9. TheClientSide
  • 10. Innovation happens here
  • 11. The JavaScript Story
  • 12. My assumptions- on the client side -Browser only (HTML5/CSS3)JavaScript only„The browser-based applicationwritten in JavaScript becomes the newrich client architecture“
  • 13. Browser-basedHTML RenderingMore Detail...HTML5 & JS EngineControllersClient-side ModelDOMWebStorage
  • 14. Existing JavaScript libs are UI centric(focus on making life with the DOM easier)most prominent:jquery
  • 15. JavaScript versions of„good old rich client patterns“begin to appear(and are highly necessary)Examplesbackbone.jsangular.jsember.js...
  • 16. Browser App (JavaScript)forget about JSF ;-)maybe GWT, but likely notmaybe also CoffeeScript,TypeScript, Dart
  • 17. TheServerSide
  • 18. ControllersRDBMSRepositoriesService LayerViewGenerationChannelsRDBMSServiceNoSQLService ServiceServiceotherService Servicebusiness/domainservicesplatformservices
  • 19. Service Service Service Service Servicethis is where Spring is really powerfulready to run „in the cloud“ (scalability)(no client-side rendering or logic)
  • 20. ServiceSpring MVC + Spring HATEOASis a powerful combinationAPIs are JSON and HATEOAS basedSpring MVC is the easiest way toimplement RESTful APIs and servicesmore on Spring HATEOAS:
  • 21. ServiceSpring BatchSpring Integration &Messaging
  • 22. My assumptions- server side languages -many different languages in usechoose the right language for the right jobdon‘t use a new language for fun
  • 23. My assumptions- data storage -more and more data (big data)different storage techniques combined(rdbms, nosql, graph databases)scalability is important
  • 24. The pictureRDBMSServiceBrowserPaaSHTML5 & JS EngineControllersClient-side ModelDOMWeb StorageNoSQLService ServiceServiceotherService Servicebusiness/domainservicesplatformservices
  • 25. Browser App(JavaScript)ServiceRESTful API(JSON over http)Push(JSON over WebSockets)Communication
  • 26. TheChallenges
  • 27. ModularityinJavaScript
  • 28. AMD(asynchronous module definition)wire.js(Dependency Injection for JavaScript)Micro Services for JavaScript(OSGi services written in JavaScript)
  • 29. More Challengesofflinecloud-ready servicesdefine good APIsversioned APIsTDD for JavaScript
  • 30. Adrian Colyer on Application Development in the Cloud Era app using Spring for providing RESTful APIs and JavaScript for a rich client and mobileapp Module Definition for JavaScript (AMD) world with wire.js advanced example for wire.js Foundry PaaShttp://www.cloudfoundry.comhttp://www.cloudfoundry.orgmore information
  • 31. Martin Lippert,, @martinlippertQ&Aand thank you for your attention