SlideShare a Scribd company logo
Grails & the World of
                                    Tomorrow
                        Peter Ledbrook, Developer Advocate
                       pledbrook@vmware.com / @pledbrook



© 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission.

                                                                                   1
NoSQL   HTML5.js



Cloud           Social




                         2
HTML5.js



Web sites                Applications


Server-side HTML         Client-side HTML
Low interactivity        High interactivity
No offline               Offline




             Wikipedia




                                              3
HTML5.js



Web sites                     Applications


Server-side HTML              Client-side HTML
Low interactivity             High interactivity
No offline                    Offline




                    Twitter




                                                   4
HTML5.js



Web sites                   Applications


Server-side HTML            Client-side HTML
Low interactivity           High interactivity
No offline                  Offline




                    GMail




                                                 5
HTML5.js

                       We’re going this way!

Web sites                                       Applications


Server-side HTML                                Client-side HTML
Low interactivity                               High interactivity
No offline                                      Offline




                    Example:
                           REST + JSON
                      Backbone.js + Moustache


                                                                     6
Google I/O 2012


     400 million

Android activations to date




  Apple WWDC 2012


     365 million

 iOS devices sold to date



                              7
Is this the end for server-side
          templates?




                                  8
NoSQL / Big Data

Data the way you want it!




                            9
NoSQL / Big Data




     Everyone has interesting data




                                     10
11
Cloud



   Scaling                     Reduced
                              capital costs




                Easier
             administration



                                              12
Cloud


  Ephemeral                      Session
  filesystems                  management




                No Multicast




                                            13
14
A typical Grails app

                             HTTP



              Controller            View




               Service




           GORM/Hibernate



                  Database




                                           15
16
What do these cars have in common?




                                     17
Same platform, different components




                                      18
Core Grails == Chassis


   Plugins == Components




                           19
How can Grails help - Rich UIs?


       URL mappings for REST

       JSON & XML converters

       Resources (for JS & CSS)




                       zipping, caching, compression




                                                       20
Static resource handling


                           App



   Kickstart Bootstrap
                                         Shiro UI Plugin
         Plugin




                     Twitter Bootstrap
                           Plugin



                                                           21
Scaffolding libraries

   > grails install-plugin jquery-mobile-scaffolding
   > grails install-mobile-templates
   > grails create-domain-class org.example.Todo

   <edit Book.groovy>

   > grails generate-all org.example.Todo
   > grails run-app




                                                       22
How can Grails help - Social?


Simplified OAuth via OAuth plugin:

oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'my-key'
        secret = 'my-secret'
        successUri = '/'
        failureUri = '/'
    }
  }
}



                                     23
How can Grails help - Social?

<oauth:connect provider="twitter">
 Connect to Twitter
</oauth:connect>


class MyService {
   def oauthService

    def myMethod() {
      def twitterUsers = oauthService.getTwitterResource(
           twitterAccessToken,
           "http://api.yourprovider.com/users/list")
      ...
    }
}

                                                            24
How can Grails help - NoSQL?


          Accessible NoSQL via GORM

                 Domain Model




                    GORM




                                      25
How can Grails help - Cloud?

Solve the caching problem with the Cache plugin

                         Cache plugin



               Ehcache                  Redis

For HTTP sessions, Database Session plugin
                  Database Session plugin



               MongoDB                  Cookie
                                                  26
27
PaaS deployment

                                       Rabbitmq
  Redis Plugin    App                   Plugin


                    > grails cf-push




                                                  28
What about horizontal scalability?




                                     29
Introducing CQRS

Updates
                                         Store
                                        changes




                                 Concurrency
                                 via event bus


 Views


                     Separate data
                   stores for queries


                                                  30
Event bus (Platform Core plugin)


                                   Update    Call REST
           Save entity    Index   read DBs    service




                          Event Bus




              Plugins
               Plugins
                Plugins               Application




                                                         31
Event bus (Events SI plugin)


                                     Update       Call REST
           Save entity      Index   read DBs       service




                          Event Bus (SI)                      AMQP



              Plugins
               Plugins
                Plugins                    Application




                                                                     32
Event bus (Events Push plugin)

                        Browser


                        Event Bridge




                        Event Bus (SI)




            Plugins
             Plugins
              Plugins                    Application




                                                       33
grailsTodos sample




                     34
grailsTodos sample




                     35
grailsTodos sample




                     36
grailsTodos sample




                     37
grailsTodos sample


Try it:

          http://grailstodos.cloudfoundry.com/todos/



See the code:

          http://github.com/smaldini/grailsTodos




                                                       38
Enabling plugin authors




                          39
More Platform Core


                   Security API


             Who is the current user?


         Does the user have a particular role?


         Is user permitted to do something?




                                                 40
More Platform Core


                       Navigation API


  Menu


                                        Action



                                        Action




         Application                    Plugin



                                                 41
More Platform Core


                  Config API


               Declare config options


              Automatic namespacing


         Default values & automatic merging




                                              42
More Platform Core


                        Convention API

   e.g.

     static searchable = { ... }              @Taggable




                      Convention overrides!



                                                          43
Platform UI




                      Themes
                            +
                       UI tags


         e.g. App Info plugin + Bootstrap Kickstart



                                                      44
Project archetypes?




                      45
SQL database

 Multi page

   CRUD

   jQuery



               46
SQL for write

Redis for read

REST endpoints

  AngularJS


                 47
Events


     Spring Integration


Web Sockets (with emulation)



                               48
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!
• No single framework has everything you need
• Pick and choose the appropriate components for your




                                                        49
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/




                                                             50
Q&A




      51

More Related Content

What's hot

Klout case-study-v1.0
Klout case-study-v1.0Klout case-study-v1.0
Klout case-study-v1.0
Binh Tran
 
Cloud foundry meetup 12112013
Cloud foundry meetup 12112013Cloud foundry meetup 12112013
Cloud foundry meetup 12112013
Christopher Ferris
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...
Roberto Casadei
 
Cloud Foundry May 1 2014
Cloud Foundry May 1 2014Cloud Foundry May 1 2014
Cloud Foundry May 1 2014
Christopher Ferris
 
Modern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google TechnologiesModern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google Technologies
Michael Ludwig
 
Ibm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platformIbm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platform
Babak Hosseinzadeh
 
The Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKSThe Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKS
VMware Tanzu
 
Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a Nutshell
Tsuyoshi Miyake
 

What's hot (8)

Klout case-study-v1.0
Klout case-study-v1.0Klout case-study-v1.0
Klout case-study-v1.0
 
Cloud foundry meetup 12112013
Cloud foundry meetup 12112013Cloud foundry meetup 12112013
Cloud foundry meetup 12112013
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...
 
Cloud Foundry May 1 2014
Cloud Foundry May 1 2014Cloud Foundry May 1 2014
Cloud Foundry May 1 2014
 
Modern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google TechnologiesModern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google Technologies
 
Ibm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platformIbm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platform
 
The Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKSThe Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKS
 
Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a Nutshell
 

Viewers also liked

Apache Maven for AT/QC
Apache Maven for AT/QCApache Maven for AT/QC
Apache Maven for AT/QC
Volodymyr Ostapiv
 
Improving your Gradle builds
Improving your Gradle buildsImproving your Gradle builds
Improving your Gradle builds
Peter Ledbrook
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
Dragos Balan
 
Gradle build automation tool
Gradle   build automation toolGradle   build automation tool
Gradle build automation tool
Ioan Eugen Stan
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
zhang ghui
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to Gradle
Strannik_2013
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
Kostas Saidis
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
Ryan Cuprak
 
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
 
Gradle - Build System
Gradle - Build SystemGradle - Build System
Gradle - Build System
Jeevesh Pandey
 

Viewers also liked (10)

Apache Maven for AT/QC
Apache Maven for AT/QCApache Maven for AT/QC
Apache Maven for AT/QC
 
Improving your Gradle builds
Improving your Gradle buildsImproving your Gradle builds
Improving your Gradle builds
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Gradle build automation tool
Gradle   build automation toolGradle   build automation tool
Gradle build automation tool
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to Gradle
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
 
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
 
Gradle - Build System
Gradle - Build SystemGradle - Build System
Gradle - Build System
 

Similar to Grails & the World of Tomorrow

Grails and the World of Tomorrow
Grails and the World of TomorrowGrails and the World of Tomorrow
Grails and the World of Tomorrow
Peter Ledbrook
 
Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009
Steven Evatt
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010
Chris Schalk
 
Open Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud CommunityOpen Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud Community
befreax
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 Update
Matthew Farina
 
Cloud computing: highlights
Cloud computing: highlightsCloud computing: highlights
Cloud computing: highlights
Luís Bastião Silva
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
Chris Schalk
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Amazon Web Services
 
Accelerate your digital transformation
Accelerate your digital transformationAccelerate your digital transformation
Accelerate your digital transformation
Michael Dawson
 
Barak Regev - Google Cloud Platform
Barak Regev - Google Cloud PlatformBarak Regev - Google Cloud Platform
Barak Regev - Google Cloud Platform
Paris Open Source Summit
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Lviv Startup Club
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
MarynaHoldaieva
 
DICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made EasyDICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made Easy
Cloudify Community
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10
IMC Institute
 
Open Source für den geschäftskritischen Einsatz
Open Source für den geschäftskritischen EinsatzOpen Source für den geschäftskritischen Einsatz
Open Source für den geschäftskritischen Einsatz
MariaDB plc
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
CloudBees
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
Dun & Bradstreet Cloud Innovation Center
 
App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010
Chris Schalk
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
GR8Conf
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
KlausBaumecker
 

Similar to Grails & the World of Tomorrow (20)

Grails and the World of Tomorrow
Grails and the World of TomorrowGrails and the World of Tomorrow
Grails and the World of Tomorrow
 
Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010
 
Open Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud CommunityOpen Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud Community
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 Update
 
Cloud computing: highlights
Cloud computing: highlightsCloud computing: highlights
Cloud computing: highlights
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
 
Accelerate your digital transformation
Accelerate your digital transformationAccelerate your digital transformation
Accelerate your digital transformation
 
Barak Regev - Google Cloud Platform
Barak Regev - Google Cloud PlatformBarak Regev - Google Cloud Platform
Barak Regev - Google Cloud Platform
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 
DICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made EasyDICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made Easy
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10
 
Open Source für den geschäftskritischen Einsatz
Open Source für den geschäftskritischen EinsatzOpen Source für den geschäftskritischen Einsatz
Open Source für den geschäftskritischen Einsatz
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
 

More from Peter Ledbrook

Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
Peter Ledbrook
 
Why your build matters
Why your build mattersWhy your build matters
Why your build matters
Peter Ledbrook
 
Groovy for Java Developers
Groovy for Java DevelopersGroovy for Java Developers
Groovy for Java Developers
Peter Ledbrook
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in Grails
Peter Ledbrook
 
Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013
Peter Ledbrook
 
Groovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developersGroovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developers
Peter Ledbrook
 
Migrating to Cloud Foundry
Migrating to Cloud FoundryMigrating to Cloud Foundry
Migrating to Cloud Foundry
Peter Ledbrook
 
Grails 2.0 Update
Grails 2.0 UpdateGrails 2.0 Update
Grails 2.0 Update
Peter Ledbrook
 
Cloud Foundry for Java devs
Cloud Foundry for Java devsCloud Foundry for Java devs
Cloud Foundry for Java devs
Peter Ledbrook
 

More from Peter Ledbrook (9)

Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
Why your build matters
Why your build mattersWhy your build matters
Why your build matters
 
Groovy for Java Developers
Groovy for Java DevelopersGroovy for Java Developers
Groovy for Java Developers
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in Grails
 
Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013
 
Groovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developersGroovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developers
 
Migrating to Cloud Foundry
Migrating to Cloud FoundryMigrating to Cloud Foundry
Migrating to Cloud Foundry
 
Grails 2.0 Update
Grails 2.0 UpdateGrails 2.0 Update
Grails 2.0 Update
 
Cloud Foundry for Java devs
Cloud Foundry for Java devsCloud Foundry for Java devs
Cloud Foundry for Java devs
 

Recently uploaded

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 

Recently uploaded (20)

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 

Grails & the World of Tomorrow

  • 1. Grails & the World of Tomorrow Peter Ledbrook, Developer Advocate pledbrook@vmware.com / @pledbrook © 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission. 1
  • 2. NoSQL HTML5.js Cloud Social 2
  • 3. HTML5.js Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline Wikipedia 3
  • 4. HTML5.js Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline Twitter 4
  • 5. HTML5.js Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline GMail 5
  • 6. HTML5.js We’re going this way! Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline Example: REST + JSON Backbone.js + Moustache 6
  • 7. Google I/O 2012 400 million Android activations to date Apple WWDC 2012 365 million iOS devices sold to date 7
  • 8. Is this the end for server-side templates? 8
  • 9. NoSQL / Big Data Data the way you want it! 9
  • 10. NoSQL / Big Data Everyone has interesting data 10
  • 11. 11
  • 12. Cloud Scaling Reduced capital costs Easier administration 12
  • 13. Cloud Ephemeral Session filesystems management No Multicast 13
  • 14. 14
  • 15. A typical Grails app HTTP Controller View Service GORM/Hibernate Database 15
  • 16. 16
  • 17. What do these cars have in common? 17
  • 18. Same platform, different components 18
  • 19. Core Grails == Chassis Plugins == Components 19
  • 20. How can Grails help - Rich UIs? URL mappings for REST JSON & XML converters Resources (for JS & CSS) zipping, caching, compression 20
  • 21. Static resource handling App Kickstart Bootstrap Shiro UI Plugin Plugin Twitter Bootstrap Plugin 21
  • 22. Scaffolding libraries > grails install-plugin jquery-mobile-scaffolding > grails install-mobile-templates > grails create-domain-class org.example.Todo <edit Book.groovy> > grails generate-all org.example.Todo > grails run-app 22
  • 23. How can Grails help - Social? Simplified OAuth via OAuth plugin: oauth { providers { twitter { api = TwitterApi key = 'my-key' secret = 'my-secret' successUri = '/' failureUri = '/' } } } 23
  • 24. How can Grails help - Social? <oauth:connect provider="twitter"> Connect to Twitter </oauth:connect> class MyService { def oauthService def myMethod() { def twitterUsers = oauthService.getTwitterResource( twitterAccessToken, "http://api.yourprovider.com/users/list") ... } } 24
  • 25. How can Grails help - NoSQL? Accessible NoSQL via GORM Domain Model GORM 25
  • 26. How can Grails help - Cloud? Solve the caching problem with the Cache plugin Cache plugin Ehcache Redis For HTTP sessions, Database Session plugin Database Session plugin MongoDB Cookie 26
  • 27. 27
  • 28. PaaS deployment Rabbitmq Redis Plugin App Plugin > grails cf-push 28
  • 29. What about horizontal scalability? 29
  • 30. Introducing CQRS Updates Store changes Concurrency via event bus Views Separate data stores for queries 30
  • 31. Event bus (Platform Core plugin) Update Call REST Save entity Index read DBs service Event Bus Plugins Plugins Plugins Application 31
  • 32. Event bus (Events SI plugin) Update Call REST Save entity Index read DBs service Event Bus (SI) AMQP Plugins Plugins Plugins Application 32
  • 33. Event bus (Events Push plugin) Browser Event Bridge Event Bus (SI) Plugins Plugins Plugins Application 33
  • 38. grailsTodos sample Try it: http://grailstodos.cloudfoundry.com/todos/ See the code: http://github.com/smaldini/grailsTodos 38
  • 40. More Platform Core Security API Who is the current user? Does the user have a particular role? Is user permitted to do something? 40
  • 41. More Platform Core Navigation API Menu Action Action Application Plugin 41
  • 42. More Platform Core Config API Declare config options Automatic namespacing Default values & automatic merging 42
  • 43. More Platform Core Convention API e.g. static searchable = { ... } @Taggable Convention overrides! 43
  • 44. Platform UI Themes + UI tags e.g. App Info plugin + Bootstrap Kickstart 44
  • 46. SQL database Multi page CRUD jQuery 46
  • 47. SQL for write Redis for read REST endpoints AngularJS 47
  • 48. Events Spring Integration Web Sockets (with emulation) 48
  • 49. 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! • No single framework has everything you need • Pick and choose the appropriate components for your 49
  • 50. 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/ 50
  • 51. Q&A 51