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

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,756
On Slideshare
3,238
From Embeds
3,518
Number of Embeds
39

Actions

Shares
Downloads
137
Comments
0
Likes
12

Embeds 3,518

http://martinlippert.blogspot.de 1,057
http://martinlippert.blogspot.com 803
http://martinlippert.blogspot.com.br 320
http://martinlippert.blogspot.fr 190
http://martinlippert.blogspot.dk 157
http://martinlippert.blogspot.no 151
http://martinlippert.blogspot.ca 113
http://martinlippert.blogspot.in 102
http://martinlippert.blogspot.co.uk 83
http://martinlippert.blogspot.se 77
http://martinlippert.blogspot.ch 65
http://martinlippert.blogspot.ru 51
http://martinlippert.blogspot.it 42
http://martinlippert.blogspot.co.at 34
http://martinlippert.blogspot.cz 31
http://martinlippert.blogspot.nl 27
http://martinlippert.blogspot.com.es 26
http://martinlippert.blogspot.com.au 24
http://martinlippert.blogspot.jp 21
http://martinlippert.blogspot.mx 19
http://martinlippert.blogspot.be 16
http://martinlippert.blogspot.ie 11
http://martinlippert.blogspot.com.ar 11
http://martinlippert.blogspot.co.il 11
https://twitter.com 10
http://martinlippert.blogspot.gr 9
http://martinlippert.blogspot.kr 8
http://martinlippert.blogspot.hk 8
http://martinlippert.blogspot.com.tr 6
http://martinlippert.blogspot.pt 6
http://www.abcd4.de 6
http://martinlippert.blogspot.tw 6
http://martinlippert.blogspot.ro 4
http://martinlippert.blogspot.ae 4
http://martinlippert.blogspot.fi 2
http://martinlippert.blogspot.sk 2
http://martinlippert.com.netzcheck.com 2
http://www.blogger.com 2
http://cloud.feedly.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ModernArchitecturesMartin Lippert,VMwaremlippert@vmware.com, @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 Storyhttp://www.maztek.com/blog/wp-content/uploads/javascript.jpg
  • 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:https://github.com/SpringSource/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 Erahttp://www.youtube.com/watch?v=axOPJbrIjkYExample app using Spring for providing RESTful APIs and JavaScript for a rich client and mobileapphttps://github.com/SpringSource/html5expenseAsynchronous Module Definition for JavaScript (AMD)https://github.com/amdjs/amdjs-apihttp://requirejs.org/docs/whyamd.htmlwire.jshttps://github.com/cujojs/wirehello world with wire.jshttps://github.com/briancavalier/hello-wire.jsmore advanced example for wire.jshttps://github.com/briancavalier/piratescriptCloud Foundry PaaShttp://www.cloudfoundry.comhttp://www.cloudfoundry.orgmore information
  • 31. Martin Lippert,VMwaremlippert@vmware.com, @martinlippertQ&Aand thank you for your attention