Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

JAX 2013: Modern Architectures with Spring and JavaScript

13.585 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

JAX 2013: Modern Architectures with Spring and JavaScript

  1. 1. ModernArchitecturesMartin Lippert,VMwaremlippert@vmware.com, @martinlippertwithSpringJavaScriptand
  2. 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. 3. Typical Runtime StructuresTomcat / tc ServerRelational DatabaseBrowsercontains databusiness logic &page renderingrender HTML
  4. 4. More Detail...ControllersRDBMSBrowser-basedHTML RenderingRepositoriesService LayerViewGenerationChannelsBrowserApplicationServer
  5. 5. What happens?Tomcat / tc ServerRelational DatabaseBrowsercontains data & newchallenges (structure, size)business logic &page rendering & APIsrender HTML & improvedexperience using JavaScriptAJAX calls
  6. 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. 7. Different picturesmodern apps old style appsNoSQLJavaScriptScalaClojureCoffeeScriptnode.jsHadoopRuby/RailsPaaSAWSJavaRDBMSApplicationServerJavaScriptHTML5/CSS3HTML/CSS
  8. 8. Where do we gofrom here?
  9. 9. TheClientSide
  10. 10. Innovation happens here
  11. 11. The JavaScript Storyhttp://www.maztek.com/blog/wp-content/uploads/javascript.jpg
  12. 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. 13. Browser-basedHTML RenderingMore Detail...HTML5 & JS EngineControllersClient-side ModelDOMWebStorage
  14. 14. Existing JavaScript libs are UI centric(focus on making life with the DOM easier)most prominent:jquery
  15. 15. JavaScript versions of„good old rich client patterns“begin to appear(and are highly necessary)Examplesbackbone.jsangular.jsember.js...
  16. 16. Browser App (JavaScript)forget about JSF ;-)maybe GWT, but likely notmaybe also CoffeeScript,TypeScript, Dart
  17. 17. TheServerSide
  18. 18. ControllersRDBMSRepositoriesService LayerViewGenerationChannelsRDBMSServiceNoSQLService ServiceServiceotherService Servicebusiness/domainservicesplatformservices
  19. 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. 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. 21. ServiceSpring BatchSpring Integration &Messaging
  22. 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. 23. My assumptions- data storage -more and more data (big data)different storage techniques combined(rdbms, nosql, graph databases)scalability is important
  24. 24. The pictureRDBMSServiceBrowserPaaSHTML5 & JS EngineControllersClient-side ModelDOMWeb StorageNoSQLService ServiceServiceotherService Servicebusiness/domainservicesplatformservices
  25. 25. Browser App(JavaScript)ServiceRESTful API(JSON over http)Push(JSON over WebSockets)Communication
  26. 26. TheChallenges
  27. 27. ModularityinJavaScript
  28. 28. AMD(asynchronous module definition)wire.js(Dependency Injection for JavaScript)Micro Services for JavaScript(OSGi services written in JavaScript)
  29. 29. More Challengesofflinecloud-ready servicesdefine good APIsversioned APIsTDD for JavaScript
  30. 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. 31. Martin Lippert,VMwaremlippert@vmware.com, @martinlippertQ&Aand thank you for your attention