SlideShare a Scribd company logo
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

More Related Content

What's hot

성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택
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 Foundry
Derek 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 Architecture
Araf 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 Microservices
VMware Tanzu
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Grid
deimos
 
Designing Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with KubernetesDesigning Cloud Native Applications with Kubernetes
Designing Cloud Native Applications with Kubernetes
Bilgin 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 MongoDB
MongoDB
 
Spring boot wednesday
Spring boot wednesdaySpring boot wednesday
Spring boot wednesday
Vinay Prajapati
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
Ramnivas Laddad
 
Cloudfoundry architecture
Cloudfoundry architectureCloudfoundry architecture
Cloudfoundry architecture
Ramnivas 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 | DO283
Global Knowledge Technologies
 
WebLogic im neuen Gewand
WebLogic im neuen GewandWebLogic im neuen Gewand
WebLogic im neuen Gewand
Volker Linz
 
Red Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsRed Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop Labs
Judy Breedlove
 
9 design factors for cloud applications
9 design factors for cloud applications9 design factors for cloud applications
9 design factors for cloud applications
uEngine 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 Cohen
buildacloud
 
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
bthomps1979
 

What's hot (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
 

Similar to Grails and the World of Tomorrow

Grails & the World of Tomorrow
Grails & the World of TomorrowGrails & the World of Tomorrow
Grails & the World of Tomorrow
Peter 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 showcase
techxer
 
Tech showcase2003
Tech showcase2003Tech showcase2003
Tech showcase2003
techxer
 
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
 
Getting started with jClouds
Getting started with jCloudsGetting started with jClouds
Getting started with jClouds
Inphina Technologies
 
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
IndicThreads
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless Solution
Ryan 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 2011
IndicThreads
 
AWS case study: real estate portal
AWS case study: real estate portalAWS case study: real estate portal
AWS case study: real estate portal
Andreas Chatzakis
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
Jeffrey T. Pollock
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applications
SC5.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 Community
befreax
 
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
ManageIQ
 
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
Rakesh 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
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
Software Infrastructure
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
GoogleTecTalks
 
Cloud computing
Cloud computingCloud computing

Similar to 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
Getting started with jCloudsGetting started with jClouds
Getting started with jClouds
 
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
 
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
 

More from Peter Ledbrook

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

Recently uploaded

GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

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