SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Grails and the World of Tomorrow



Peter Ledbrook
VMware

t: @pledbrook
g: +PeterLedbrook
e: pledbrook@vmware.com
NoSQL
                      HTML5.js


        Concurrency
                         Social
Cloud



                                  2
HTML5.js



Web sites                          Applications


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




             Wikipedia   Twitter


                                               3
HTML5.js

                      We’re going this way!

Web sites                                      Applications


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


                          REST + JSON
                     Backbone.js + Moustache

                    Is this the end for GSP?

                                                           4
NoSQL

Data 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                 View

Domain 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 CQRS

Updates
                                         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    service




Spring 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

Mais conteúdo relacionado

Mais procurados

성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택uEngine Solutions
 
Distributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud FoundryDistributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud FoundryDerek Collison
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Graham Charters
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to MicroservicesHow to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to MicroservicesVMware Tanzu
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Griddeimos
 
Designing Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with KubernetesDesigning Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with KubernetesBilgin Ibryam
 
Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Chris Richardson
 
MongoDB Evenings Toronto - Monolithic to Microservices with MongoDB
MongoDB Evenings Toronto - Monolithic to Microservices with MongoDBMongoDB Evenings Toronto - Monolithic to Microservices with MongoDB
MongoDB Evenings Toronto - Monolithic to Microservices with MongoDBMongoDB
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudRamnivas Laddad
 
Cloudfoundry architecture
Cloudfoundry architectureCloudfoundry architecture
Cloudfoundry architectureRamnivas Laddad
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Chris Richardson
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 
Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283Global Knowledge Technologies
 
WebLogic im neuen Gewand
WebLogic im neuen GewandWebLogic im neuen Gewand
WebLogic im neuen GewandVolker Linz
 
Red Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsRed Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsJudy Breedlove
 
9 design factors for cloud applications
9 design factors for cloud applications9 design factors for cloud applications
9 design factors for cloud applicationsuEngine Solutions
 
Managing infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike CohenManaging infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike Cohenbuildacloud
 
Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017bthomps1979
 

Mais procurados (20)

성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택
 
Distributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud FoundryDistributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud Foundry
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to MicroservicesHow to Overcome Data Challenges When Refactoring Monoliths to Microservices
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Grid
 
Designing Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with KubernetesDesigning Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with Kubernetes
 
Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)Decomposing Applications for Scalability and Deployability (April 2012)
Decomposing Applications for Scalability and Deployability (April 2012)
 
MongoDB Evenings Toronto - Monolithic to Microservices with MongoDB
MongoDB Evenings Toronto - Monolithic to Microservices with MongoDBMongoDB Evenings Toronto - Monolithic to Microservices with MongoDB
MongoDB Evenings Toronto - Monolithic to Microservices with MongoDB
 
Spring boot wednesday
Spring boot wednesdaySpring boot wednesday
Spring boot wednesday
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
 
Cloudfoundry architecture
Cloudfoundry architectureCloudfoundry architecture
Cloudfoundry architecture
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283Red Hat Quarkus | Red Hat Application Development | DO283
Red Hat Quarkus | Red Hat Application Development | DO283
 
WebLogic im neuen Gewand
WebLogic im neuen GewandWebLogic im neuen Gewand
WebLogic im neuen Gewand
 
Red Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsRed Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop Labs
 
9 design factors for cloud applications
9 design factors for cloud applications9 design factors for cloud applications
9 design factors for cloud applications
 
Managing infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike CohenManaging infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike Cohen
 
Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017
 

Semelhante a Grails and the World of Tomorrow

Grails & the World of Tomorrow
Grails & the World of TomorrowGrails & the World of Tomorrow
Grails & the World of TomorrowPeter Ledbrook
 
Leverage An Intelligent Application Infrastructure for Competitive Advantage.
Leverage An Intelligent Application Infrastructure for Competitive Advantage.Leverage An Intelligent Application Infrastructure for Competitive Advantage.
Leverage An Intelligent Application Infrastructure for Competitive Advantage.Eric D. Schabell
 
Tech showcase
Tech showcaseTech showcase
Tech showcasetechxer
 
Tech showcase2003
Tech showcase2003Tech showcase2003
Tech showcase2003techxer
 
Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009Steven Evatt
 
Getting Started with jClouds: Multi Cloud Framework
Getting Started with jClouds: Multi Cloud FrameworkGetting Started with jClouds: Multi Cloud Framework
Getting Started with jClouds: Multi Cloud FrameworkIndicThreads
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless SolutionRyan ZhangCheng
 
Inaugural address manjusha - Indicthreads cloud computing conference 2011
Inaugural address manjusha -  Indicthreads cloud computing conference 2011Inaugural address manjusha -  Indicthreads cloud computing conference 2011
Inaugural address manjusha - Indicthreads cloud computing conference 2011IndicThreads
 
AWS case study: real estate portal
AWS case study: real estate portalAWS case study: real estate portal
AWS case study: real estate portalAndreas Chatzakis
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGateJeffrey T. Pollock
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applicationsSC5.io
 
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 Communitybefreax
 
High Availability - Brett Thurber - ManageIQ Design Summit 2016
High Availability - Brett Thurber - ManageIQ Design Summit 2016High Availability - Brett Thurber - ManageIQ Design Summit 2016
High Availability - Brett Thurber - ManageIQ Design Summit 2016ManageIQ
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesRakesh Gujjarlapudi
 
ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?BerndtJung
 
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...EuroCloud
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudGoogleTecTalks
 

Semelhante a Grails and the World of Tomorrow (20)

Grails & the World of Tomorrow
Grails & the World of TomorrowGrails & the World of Tomorrow
Grails & the World of Tomorrow
 
Leverage An Intelligent Application Infrastructure for Competitive Advantage.
Leverage An Intelligent Application Infrastructure for Competitive Advantage.Leverage An Intelligent Application Infrastructure for Competitive Advantage.
Leverage An Intelligent Application Infrastructure for Competitive Advantage.
 
Tech showcase
Tech showcaseTech showcase
Tech showcase
 
Tech showcase2003
Tech showcase2003Tech showcase2003
Tech showcase2003
 
Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009
 
Getting Started with jClouds: Multi Cloud Framework
Getting Started with jClouds: Multi Cloud FrameworkGetting Started with jClouds: Multi Cloud Framework
Getting Started with jClouds: Multi Cloud Framework
 
Getting started with jClouds
Getting started with jCloudsGetting started with jClouds
Getting started with jClouds
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless Solution
 
Inaugural address manjusha - Indicthreads cloud computing conference 2011
Inaugural address manjusha -  Indicthreads cloud computing conference 2011Inaugural address manjusha -  Indicthreads cloud computing conference 2011
Inaugural address manjusha - Indicthreads cloud computing conference 2011
 
AWS case study: real estate portal
AWS case study: real estate portalAWS case study: real estate portal
AWS case study: real estate portal
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applications
 
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
 
High Availability - Brett Thurber - ManageIQ Design Summit 2016
High Availability - Brett Thurber - ManageIQ Design Summit 2016High Availability - Brett Thurber - ManageIQ Design Summit 2016
High Availability - Brett Thurber - ManageIQ Design Summit 2016
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?
 
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 

Mais de Peter Ledbrook

Improving your Gradle builds
Improving your Gradle buildsImproving your Gradle builds
Improving your Gradle buildsPeter Ledbrook
 
Why your build matters
Why your build mattersWhy your build matters
Why your build mattersPeter Ledbrook
 
Groovy for Java Developers
Groovy for Java DevelopersGroovy for Java Developers
Groovy for Java DevelopersPeter Ledbrook
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in GrailsPeter 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-2013Peter Ledbrook
 
Groovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developersGroovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developersPeter Ledbrook
 
Migrating to Cloud Foundry
Migrating to Cloud FoundryMigrating to Cloud Foundry
Migrating to Cloud FoundryPeter Ledbrook
 
Cloud Foundry for Java devs
Cloud Foundry for Java devsCloud Foundry for Java devs
Cloud Foundry for Java devsPeter Ledbrook
 

Mais de Peter Ledbrook (10)

Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
Improving your Gradle builds
Improving your Gradle buildsImproving your Gradle builds
Improving your Gradle builds
 
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
 

Último

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 

Último (20)

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 

Grails and the World of Tomorrow

  • 1. Grails and the World of Tomorrow Peter Ledbrook VMware t: @pledbrook g: +PeterLedbrook e: pledbrook@vmware.com
  • 2. NoSQL HTML5.js Concurrency Social Cloud 2
  • 3. HTML5.js Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline Wikipedia Twitter 3
  • 4. HTML5.js We’re going this way! Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline REST + JSON Backbone.js + Moustache Is this the end for GSP? 4
  • 5. NoSQL Data the way you want it! 5
  • 6. NoSQL “Everyone has interesting data” Some guy 6
  • 7. Social 7
  • 8. Cloud Ephemeral Easy instance filesystems creation Service-oriented architecture 8
  • 9. Concurrency Responsiveness Lots of concurrent users What about all those cores? Node.js/Vert.x & the Reactor pattern 9
  • 10. 10
  • 11. 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
  • 12. A typical Grails app HTTP Controller View Service GORM/Hibernate Database 12
  • 13. A typical Grails app HTTP Sticky sessions OSIVI Controller View Domain class binding Domain Service objects GORM/Hibernate Relational/object Database impedance mismatch 13
  • 14. 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
  • 15. 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
  • 16. Introducing CQRS Updates Store changes Concurrency via event bus Views Separate data stores for queries 16
  • 17. 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
  • 18. How can Grails help - Rich UIs? URL mappings for REST JSON & XML converters Resources (for JS & CSS) Plugins for different UI libraries 18
  • 19. How can Grails help - NoSQL? GORM plugins JSON handling Schemaless + dynamic lang = good! 19
  • 20. How can Grails help - Social? Spring Social plugin, etc. Authentication via plugins 20
  • 21. How can Grails help - Cloud? Simplified deployment with plugins Plugins for PaaS services Runtime config 21
  • 22. How can Grails help? 22
  • 23. How can Grails help? Plugins 23
  • 24. How can Grails help? Plugins 24
  • 25. How can Grails help? Plugins 25
  • 26. How can Grails help? Plugins 26
  • 27. Plugin platform Events Security UI Injection Conventions Config 27
  • 28. Plugin platform Events Security 28
  • 29. 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
  • 30. Event bus Update Call REST Save entity Index read DBs service Spring Integration Event Bus AMQP Plugins Plugins Plugins Application 30
  • 31. 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
  • 32. 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
  • 33. Q&A