Grails and the World of Tomorrow
Upcoming SlideShare
Loading in...5
×
 

Grails and the World of Tomorrow

on

  • 2,707 views

A look at the changing development landscape and how we may have to rearchitect our Grails applications. ...

A look at the changing development landscape and how we may have to rearchitect our Grails applications.

Also looks at existing, new, or potential Grails features that can help navigate this new world order.

Statistics

Views

Total Views
2,707
Views on SlideShare
2,699
Embed Views
8

Actions

Likes
6
Downloads
34
Comments
0

4 Embeds 8

https://twitter.com 5
http://elearning.tadelformacion.com 1
http://us-w1.rockmelt.com 1
http://tweetedtimes.com 1

Accessibility

Categories

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.

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

    Grails and the World of Tomorrow Grails and the World of Tomorrow Presentation Transcript

    • Grails and the World of TomorrowPeter LedbrookVMwaret: @pledbrookg: +PeterLedbrooke: pledbrook@vmware.com
    • NoSQL HTML5.js Concurrency SocialCloud 2
    • HTML5.jsWeb sites ApplicationsServer-side HTML Client-side HTMLLow interactivity High interactivityNo offline Offline Wikipedia Twitter 3
    • HTML5.js We’re going this way!Web sites ApplicationsServer-side HTML Client-side HTMLLow interactivity High interactivityNo offline Offline REST + JSON Backbone.js + Moustache Is this the end for GSP? 4
    • NoSQLData the way you want it! 5
    • NoSQL “Everyone has interesting data” Some guy 6
    • Social 7
    • Cloud Ephemeral Easy instance filesystems creation Service-oriented architecture 8
    • Concurrency Responsiveness Lots of concurrent users What about all those cores? Node.js/Vert.x & the Reactor pattern 9
    • 10
    • Where do we go from here?• Has CRUD still got legs?• Does even MVC still make sense?• Or do we need to fundamentally change the way we write apps? What can Grails do for me? 11
    • A typical Grails app HTTP Controller View Service GORM/Hibernate Database 12
    • A typical Grails app HTTP Sticky sessions OSIVI Controller ViewDomain class binding Domain Service objects GORM/Hibernate Relational/object Database impedance mismatch 13
    • Fit for purpose?• CRUD has its place – Admin UIs – Quick UIs for complex domain models• CRUD = dynamic scaffolding• But beyond CRUD...• ... what about MVC + ORM? – Rich UIs + REST don’t need views – Do UI forms match domain classes? – Do views require the same information as updates? – How do we track changes to data? – Where should validation occur? 14
    • A typical Grails app HTTP Disable OSIVI? Controller View Command objects? Don’t let HTTP session and Hibernate session mix? Bind COs to Service @Cacheable, not domains? 2nd-level cache?importFrom(Domain) GORM/Hibernate Filtering and transforming data Database 15
    • Introducing CQRSUpdates Store changes Concurrency via event bus Views Separate data stores for queries 16
    • Is it too complex?• PaaS makes it easy to use multiple data stores• Event bus allows for decoupling – Easier to understand than Hibernate events – Search “mirroring” would work! – Easily extended to external message broker – Synchronise multiple instances of same app on PaaS• Querying and updating already separated – PluginService & PluginUpdateService in grails.org• Groovy good for data transformations Conventions and framework support to make it easier! 17
    • How can Grails help - Rich UIs? URL mappings for REST JSON & XML converters Resources (for JS & CSS) Plugins for different UI libraries 18
    • How can Grails help - NoSQL? GORM plugins JSON handling Schemaless + dynamic lang = good! 19
    • How can Grails help - Social? Spring Social plugin, etc. Authentication via plugins 20
    • How can Grails help - Cloud? Simplified deployment with plugins Plugins for PaaS services Runtime config 21
    • How can Grails help? 22
    • How can Grails help? Plugins 23
    • How can Grails help? Plugins 24
    • How can Grails help? Plugins 25
    • How can Grails help? Plugins 26
    • Plugin platform Events Security UI Injection Conventions Config 27
    • Plugin platform Events Security 28
    • Plugin platform Events Security • Event bus • API + SPI • Can integrate with AMQP • Service • GORM events • Tags • App lifecycle events • Custom app events https://github.com/Grailsrocks/grails-platform-core 29
    • Event bus Update Call REST Save entity Index read DBs serviceSpring Integration Event Bus AMQP Plugins Plugins Plugins Application 30
    • Summary• The way applications are architected will change – Websites will still be built (GSP not gone yet) – Not everyone will need the same architecture – Project archetypes and scaffolding!• Grails already has many of the features we need• Plugins can add those• Plugin platform provides more powerful integration – Event bus will enable more interesting architectures 31
    • More info• w: http://grails.org/• f: http://grails.org/Mailing+Lists• e: pledbrook@vmware.com• t: pledbrook• b: http://blog.springsource.com/author/peter-ledbrook/ 32
    • Q&A