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

JAX 2013: Modern Architectures with Spring and JavaScript






Total Views
Views on SlideShare
Embed Views



38 Embeds 3,310

http://martinlippert.blogspot.de 1018
http://martinlippert.blogspot.com 745
http://martinlippert.blogspot.com.br 291
http://martinlippert.blogspot.fr 188
http://martinlippert.blogspot.dk 156
http://martinlippert.blogspot.no 151
http://martinlippert.blogspot.ca 102
http://martinlippert.blogspot.in 100
http://martinlippert.blogspot.co.uk 78
http://martinlippert.blogspot.se 75
http://martinlippert.blogspot.ru 49
http://martinlippert.blogspot.ch 41
http://martinlippert.blogspot.it 34
http://martinlippert.blogspot.cz 31
http://martinlippert.blogspot.co.at 30
http://martinlippert.blogspot.nl 27
http://martinlippert.blogspot.com.es 24
http://martinlippert.blogspot.com.au 20
http://martinlippert.blogspot.jp 20
http://martinlippert.blogspot.mx 18
http://martinlippert.blogspot.be 14
http://martinlippert.blogspot.ie 11
https://twitter.com 10
http://martinlippert.blogspot.co.il 9
http://martinlippert.blogspot.com.ar 9
http://martinlippert.blogspot.kr 8
http://martinlippert.blogspot.gr 8
http://martinlippert.blogspot.hk 8
http://martinlippert.blogspot.tw 6
http://martinlippert.blogspot.com.tr 6
http://martinlippert.blogspot.pt 6
http://martinlippert.blogspot.ae 4
http://martinlippert.blogspot.ro 4
http://martinlippert.blogspot.sk 2
http://martinlippert.com.netzcheck.com 2
http://martinlippert.blogspot.fi 2
http://www.blogger.com 2
http://cloud.feedly.com 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

JAX 2013: Modern Architectures with Spring and JavaScript JAX 2013: Modern Architectures with Spring and JavaScript Presentation Transcript

  • ModernArchitecturesMartin Lippert,VMwaremlippert@vmware.com, @martinlippertwithSpringJavaScriptand
  • 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
  • Typical Runtime StructuresTomcat / tc ServerRelational DatabaseBrowsercontains databusiness logic &page renderingrender HTML View slide
  • More Detail...ControllersRDBMSBrowser-basedHTML RenderingRepositoriesService LayerViewGenerationChannelsBrowserApplicationServer View slide
  • What happens?Tomcat / tc ServerRelational DatabaseBrowsercontains data & newchallenges (structure, size)business logic &page rendering & APIsrender HTML & improvedexperience using JavaScriptAJAX calls
  • 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
  • Different picturesmodern apps old style appsNoSQLJavaScriptScalaClojureCoffeeScriptnode.jsHadoopRuby/RailsPaaSAWSJavaRDBMSApplicationServerJavaScriptHTML5/CSS3HTML/CSS
  • Where do we gofrom here?
  • TheClientSide
  • Innovation happens here
  • The JavaScript Storyhttp://www.maztek.com/blog/wp-content/uploads/javascript.jpg
  • My assumptions- on the client side -Browser only (HTML5/CSS3)JavaScript only„The browser-based applicationwritten in JavaScript becomes the newrich client architecture“
  • Browser-basedHTML RenderingMore Detail...HTML5 & JS EngineControllersClient-side ModelDOMWebStorage
  • 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)Examplesbackbone.jsangular.jsember.js...
  • Browser App (JavaScript)forget about JSF ;-)maybe GWT, but likely notmaybe also CoffeeScript,TypeScript, Dart
  • TheServerSide
  • ControllersRDBMSRepositoriesService LayerViewGenerationChannelsRDBMSServiceNoSQLService ServiceServiceotherService Servicebusiness/domainservicesplatformservices
  • Service Service Service Service Servicethis is where Spring is really powerfulready to run „in the cloud“ (scalability)(no client-side rendering or logic)
  • 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
  • ServiceSpring BatchSpring Integration &Messaging
  • My assumptions- server side languages -many different languages in usechoose the right language for the right jobdon‘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 pictureRDBMSServiceBrowserPaaSHTML5 & JS EngineControllersClient-side ModelDOMWeb StorageNoSQLService ServiceServiceotherService Servicebusiness/domainservicesplatformservices
  • Browser App(JavaScript)ServiceRESTful API(JSON over http)Push(JSON over WebSockets)Communication
  • TheChallenges
  • ModularityinJavaScript
  • AMD(asynchronous module definition)wire.js(Dependency Injection for JavaScript)Micro Services for JavaScript(OSGi services written in JavaScript)
  • More Challengesofflinecloud-ready servicesdefine good APIsversioned APIsTDD for JavaScript
  • 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
  • Martin Lippert,VMwaremlippert@vmware.com, @martinlippertQ&Aand thank you for your attention