SlideShare a Scribd company logo
WEB APPS MIT
     - NICHTS LEICHTER ALS DAS!


  „A Web Application Framework
         for a new Era“

            Stateless & Scalable
                 WebJars           Andreas Koop
                                    CEO & Consultant

                WebSockets         Oracle Technologies




DOAG 2012
Andreas Koop
ÜBER MICH                                                  CEO & Consultant
                                                          Oracle Technologies




Beratung, Training Oracle Technologie
ADF Certified Implementation Specialist


Community
DOAG, ADF EMG, ADF German Community, Twitter @multikoop


Blog
Technical http://multikoop.blogspot.com
Sonstiges http://www.enpit.de/blog



                                          2
ENTERPRISE PRAGMATIC IT




   Consulting                  Training                Development
 Oracle Fusion         Oracle                 Oracle        Oracle
  Middleware          WebCenter                ADF         WebLogic

Enable productive IT by Oracle Technologies
AGENDA

Play! Framework Architektur

Play! Features

Security & Deployment

Fazit und Ausblick



Andreas Koop              4
AKTUELLER STAND
JAVA WEBFRAMEWORKS
   ‣           Java EE / JSF 2.0 / Oracle ADF

   ‣           Grails

   ‣           Wicket

   ‣           Tapestry

   ‣           Play! Framework
               => Nicht Servlet basiert, Jetty, Scala!

Andreas Koop                          5
SAMPLE APP




‣       http://play2-enpit-emp.herokuapp.com
Andreas Koop                  6
ARCHITECTURE
         HTTP
                                                  Stateless
         Request
                    Router         Controller
                                     index()
                                                  MVC
                   GET / index()
                                     list(..,.)

                                                  Request-based
 HTTP
 Response                                         Async I/O
                                     Model
                     View
                    Template
                                     EBean
                                      JPA...      Scalable

                                                  Modular

                                   DataStore


Andreas Koop                             7
GETTING STARTED
 $ play new contact
               $ cd contact
               $ play
                          [contact] $ eclipsify


                          [contact] $ idea


                          [contact] $ netbeansify



                                                 demnächst




Andreas Koop                                 8
PLAY RUN
 $ cd contact       $ cd contact
 $ play run         $ play ~run



                                    Triggered
                                   Compilation




                                   /@documentation

                                       How To



Andreas Koop    9
CREATE MODEL


                    EBean
                    JPA

                    Anorm (Scala)




Andreas Koop   10
ANNOTATION BASED
VALIDATION




                        Hinweis:
                      kein JSR-303
                    (Bean Validation)


Andreas Koop   11
CONTROLLER ACTIONS


                                Get Model




         Return     Render contacts.scala.html
         HTTP 200   => View is a Function!

Andreas Koop               12
VIEW TEMPLATES
Parameter




Andreas Koop   13
VIEW                  Every View is
                     just a Function!
Parameter

Function Call

Messages
(i18n)

Loop

Date
Formatting
Andreas Koop    14
RESTFUL ROUTING




       GET, POST, PUT, DELETE
                                       Scala DSL
                                     => Prüfung zur
                                       Buildtime!



Andreas Koop                    15
HIGHLY PRODUCTIVE
DEVELOPMENT CYCLES
                        in the Browser!




           FIX
           Hit
          Reload




Andreas Koop       16
DATABASE
EVOLUTION SCRIPTS




   ‣           Schema

   ‣           Data

Andreas Koop            17
WEBSOCKET SUPPORT




Andreas Koop   18
COFFEESCRIPT COMPILER
                    Out-Of-The Box
                       No extra
                     Configuration!




Andreas Koop   19
WEBJARS
   ‣           Problem: JS Libraries - Kraut und Rüben!

   ‣           Lösung: Siehe Java Libraries

   ‣           http://webjars.org




Andreas Koop                         20
CONFIGURATION
   ‣           By Convention   conf/application.conf


   ‣           HOCON Format -
                “Human-Optimized Config Object Notation”

   ‣           Support for Includes   include "securesocial.conf"




Andreas Koop                          21
ACCESS CONFIGURATION




Andreas Koop   22
UNIT TEST
   ‣           Test Model / Business Services




 $ play test


Andreas Koop                        23
SMOKE TEST




                                    HTTP 303
‣ Funktioniert der Redirect von
    /          --> /contacts

Andreas Koop                   24
UI TEST




   ‣           Selenium WebDriver

Andreas Koop                        25
SOCIAL SIGN ON
                                             Twitter
   Play2                                     Google
   App
                                             Facebook

                                             LinkedIn

                                             GitHub


   ‣           http://securesocial.ws

Andreas Koop                            26
INSTANT DEPLOYMENT
 $ heroku login
                                          Heroku
 $ heroku create -s cedar myapp-name
                                          CloudBees
 $ git remote add heroku
 git@heroku.com:myapp-name.git            dotCloud

 $ heroku keys:add ~/.ssh/id_rsa.pub      ...

                                       Continuous
                                         Cloud
 $ git push heroku master              Deployment


Andreas Koop                 27
FAZIT
   ‣           Produktiv, Entwicklerfreundlich   ...und das ohne
                                                     essentielle
   ‣           Typsichere View Scala Templates         Scala-
                                                    Kenntnisse!
   ‣           Less CSS Integration

   ‣           CoffeeScript Integration

   ‣           HTML5 / WebSocket Support & More...

   ‣           Social and Cloud Ready

Andreas Koop                          28
ZUSAMMENFASSUNG
‣      Zustandsloses, performantes (non-blocking) Web-Framework

‣      Neuste Technologien: Async-I/O, WebSockets, HTML5, WebJars,
       CoffeeScript/LESS PreCompiler, Scala

‣      Ausgelegt für Internet- / Cloud-Applikationen, RESTful Services, Mobile
       HTML5, Social Sign On

‣      Play! 1.x -> Play! 2.x: Gewagter Schritt der Macher!

‣      Intranet-Unternehmensanwendungen derzeit besser mit z.B.
       Oracle ADF

Andreas Koop                            29
ES GIBT NOCH VIEL MEHR
‣ Session Handling

‣ Cache Handling

‣ Form Handling

‣ Logging

‣ ....



Andreas Koop         30
HOW TO START
   ‣           www.playframework.org

   ‣           Tutorial
               https://github.com/jamesward/play2torial

   ‣           Join Community
               https://groups.google.com/forum/?fromgroups#!
               forum/play-framework



Andreas Koop                        31
VIELEN DANK FÜR IHRE
   AUFMERKSAMKEIT



HABEN SIE NOCH FRAGEN?
WepApps mit Play! - Nichts leichter als das

More Related Content

PDF
DevOps or: How I Learned to Stop Worrying and Love the Cloud
Hirokazu MORIKAWA
 
PDF
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Andreas Koop
 
PDF
Reliability & Scale in AWS while letting you sleep through the night
Jos Boumans
 
PPTX
OpenStack Israel Summit 2013 - It’s the App, Stupid!
Uri Cohen
 
PDF
Chaos patterns - architecting for failure in distributed systems
Jos Boumans
 
PDF
Principles and Practices in Continuous Deployment at Etsy
Mike Brittain
 
PPTX
One Does Not Simply Walk Into Devops
Uri Cohen
 
PDF
Extending Spring MVC with Spring Mobile and JavaScript
Roy Clarkson
 
DevOps or: How I Learned to Stop Worrying and Love the Cloud
Hirokazu MORIKAWA
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Andreas Koop
 
Reliability & Scale in AWS while letting you sleep through the night
Jos Boumans
 
OpenStack Israel Summit 2013 - It’s the App, Stupid!
Uri Cohen
 
Chaos patterns - architecting for failure in distributed systems
Jos Boumans
 
Principles and Practices in Continuous Deployment at Etsy
Mike Brittain
 
One Does Not Simply Walk Into Devops
Uri Cohen
 
Extending Spring MVC with Spring Mobile and JavaScript
Roy Clarkson
 

Viewers also liked (8)

PDF
REST mit ADF
Andreas Koop
 
PPTX
Integration of BI Publisher in ADF applications
Andreas Koop
 
PDF
WebCenter Portal - Integrate Custom Taskflows
Andreas Koop
 
PDF
Development in der Cloud-Ära
Andreas Koop
 
PDF
Cloud-native Apps – Architektur, Implementierung, Demo
enpit GmbH & Co. KG
 
PDF
ADF Spotlight: ADF 12c Deck component overview and progammer examples
Andreas Koop
 
PDF
WebLogic im Docker Container
Andreas Koop
 
PDF
Cloud-native Apps - Architektur, Implementierung, Demo
Andreas Koop
 
REST mit ADF
Andreas Koop
 
Integration of BI Publisher in ADF applications
Andreas Koop
 
WebCenter Portal - Integrate Custom Taskflows
Andreas Koop
 
Development in der Cloud-Ära
Andreas Koop
 
Cloud-native Apps – Architektur, Implementierung, Demo
enpit GmbH & Co. KG
 
ADF Spotlight: ADF 12c Deck component overview and progammer examples
Andreas Koop
 
WebLogic im Docker Container
Andreas Koop
 
Cloud-native Apps - Architektur, Implementierung, Demo
Andreas Koop
 
Ad

Similar to WepApps mit Play! - Nichts leichter als das (20)

PDF
Hosting as a Framework
ciconf
 
PDF
New Ways To Engage With Tiempo 2011
Tiempo Development
 
KEY
Survey Of Open Source
Matthew McCullough
 
PDF
OpenPaaS, the open-source Enterprise Social network for the Cloud, OW2con'12,...
OW2
 
PPT
Java overview the piramide of success
Artem Bilan
 
PDF
Bentobox model for understanding technology stacks
Linda Liukas
 
PDF
State of Developer Tools (WDS09)
bgalbs
 
PDF
Spark IT 2011 - Java EE 6 Workshop
Arun Gupta
 
PDF
Cloudfoundry architecture
Ramnivas Laddad
 
PDF
Scaling business app development with Play and Scala
Peter Hilton
 
PDF
Grails and the World of Tomorrow
Peter Ledbrook
 
PDF
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
jaxconf
 
PDF
The spring 32 update final
Joshua Long
 
PDF
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Joonas Lehtinen
 
PDF
Google App Engine Update 2012
David Chandler
 
PDF
Google App Engine At A Glance
Stefan Christoph
 
PDF
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Alexandre Morgaut
 
PDF
Spring Into the Cloud
Jennifer Hickey
 
PDF
Sail Fin Webinar Overview
Eduardo Pelegri-Llopart
 
PDF
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut
 
Hosting as a Framework
ciconf
 
New Ways To Engage With Tiempo 2011
Tiempo Development
 
Survey Of Open Source
Matthew McCullough
 
OpenPaaS, the open-source Enterprise Social network for the Cloud, OW2con'12,...
OW2
 
Java overview the piramide of success
Artem Bilan
 
Bentobox model for understanding technology stacks
Linda Liukas
 
State of Developer Tools (WDS09)
bgalbs
 
Spark IT 2011 - Java EE 6 Workshop
Arun Gupta
 
Cloudfoundry architecture
Ramnivas Laddad
 
Scaling business app development with Play and Scala
Peter Hilton
 
Grails and the World of Tomorrow
Peter Ledbrook
 
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
jaxconf
 
The spring 32 update final
Joshua Long
 
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Joonas Lehtinen
 
Google App Engine Update 2012
David Chandler
 
Google App Engine At A Glance
Stefan Christoph
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Alexandre Morgaut
 
Spring Into the Cloud
Jennifer Hickey
 
Sail Fin Webinar Overview
Eduardo Pelegri-Llopart
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut
 
Ad

More from Andreas Koop (8)

PPTX
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Andreas Koop
 
PPTX
Mit Legosteinen Maschinelles Lernen lernen
Andreas Koop
 
PDF
Java Web Apps and Services on Oracle Java Cloud Service
Andreas Koop
 
PDF
Multichannel Application Development Best Practices
Andreas Koop
 
PDF
Oracle WebLogic for DevOps
Andreas Koop
 
KEY
ADF User Interface Design Best Pratices
Andreas Koop
 
KEY
Administration for Oracle ADF Applications
Andreas Koop
 
PPTX
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
Andreas Koop
 
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Andreas Koop
 
Mit Legosteinen Maschinelles Lernen lernen
Andreas Koop
 
Java Web Apps and Services on Oracle Java Cloud Service
Andreas Koop
 
Multichannel Application Development Best Practices
Andreas Koop
 
Oracle WebLogic for DevOps
Andreas Koop
 
ADF User Interface Design Best Pratices
Andreas Koop
 
Administration for Oracle ADF Applications
Andreas Koop
 
DOAG 2011 - Upgrade Guide for Oracle ADF on WebLogic Server
Andreas Koop
 

Recently uploaded (20)

PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
The Future of Artificial Intelligence (AI)
Mukul
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 

WepApps mit Play! - Nichts leichter als das

  • 1. WEB APPS MIT - NICHTS LEICHTER ALS DAS! „A Web Application Framework for a new Era“ Stateless & Scalable WebJars Andreas Koop CEO & Consultant WebSockets Oracle Technologies DOAG 2012
  • 2. Andreas Koop ÜBER MICH CEO & Consultant Oracle Technologies Beratung, Training Oracle Technologie ADF Certified Implementation Specialist Community DOAG, ADF EMG, ADF German Community, Twitter @multikoop Blog Technical http://multikoop.blogspot.com Sonstiges http://www.enpit.de/blog 2
  • 3. ENTERPRISE PRAGMATIC IT Consulting Training Development Oracle Fusion Oracle Oracle Oracle Middleware WebCenter ADF WebLogic Enable productive IT by Oracle Technologies
  • 4. AGENDA Play! Framework Architektur Play! Features Security & Deployment Fazit und Ausblick Andreas Koop 4
  • 5. AKTUELLER STAND JAVA WEBFRAMEWORKS ‣ Java EE / JSF 2.0 / Oracle ADF ‣ Grails ‣ Wicket ‣ Tapestry ‣ Play! Framework => Nicht Servlet basiert, Jetty, Scala! Andreas Koop 5
  • 6. SAMPLE APP ‣ http://play2-enpit-emp.herokuapp.com Andreas Koop 6
  • 7. ARCHITECTURE HTTP Stateless Request Router Controller index() MVC GET / index() list(..,.) Request-based HTTP Response Async I/O Model View Template EBean JPA... Scalable Modular DataStore Andreas Koop 7
  • 8. GETTING STARTED $ play new contact $ cd contact $ play [contact] $ eclipsify [contact] $ idea [contact] $ netbeansify demnächst Andreas Koop 8
  • 9. PLAY RUN $ cd contact $ cd contact $ play run $ play ~run Triggered Compilation /@documentation How To Andreas Koop 9
  • 10. CREATE MODEL EBean JPA Anorm (Scala) Andreas Koop 10
  • 11. ANNOTATION BASED VALIDATION Hinweis: kein JSR-303 (Bean Validation) Andreas Koop 11
  • 12. CONTROLLER ACTIONS Get Model Return Render contacts.scala.html HTTP 200 => View is a Function! Andreas Koop 12
  • 14. VIEW Every View is just a Function! Parameter Function Call Messages (i18n) Loop Date Formatting Andreas Koop 14
  • 15. RESTFUL ROUTING GET, POST, PUT, DELETE Scala DSL => Prüfung zur Buildtime! Andreas Koop 15
  • 16. HIGHLY PRODUCTIVE DEVELOPMENT CYCLES in the Browser! FIX Hit Reload Andreas Koop 16
  • 17. DATABASE EVOLUTION SCRIPTS ‣ Schema ‣ Data Andreas Koop 17
  • 19. COFFEESCRIPT COMPILER Out-Of-The Box No extra Configuration! Andreas Koop 19
  • 20. WEBJARS ‣ Problem: JS Libraries - Kraut und Rüben! ‣ Lösung: Siehe Java Libraries ‣ http://webjars.org Andreas Koop 20
  • 21. CONFIGURATION ‣ By Convention conf/application.conf ‣ HOCON Format - “Human-Optimized Config Object Notation” ‣ Support for Includes include "securesocial.conf" Andreas Koop 21
  • 23. UNIT TEST ‣ Test Model / Business Services $ play test Andreas Koop 23
  • 24. SMOKE TEST HTTP 303 ‣ Funktioniert der Redirect von / --> /contacts Andreas Koop 24
  • 25. UI TEST ‣ Selenium WebDriver Andreas Koop 25
  • 26. SOCIAL SIGN ON Twitter Play2 Google App Facebook LinkedIn GitHub ‣ http://securesocial.ws Andreas Koop 26
  • 27. INSTANT DEPLOYMENT $ heroku login Heroku $ heroku create -s cedar myapp-name CloudBees $ git remote add heroku [email protected]:myapp-name.git dotCloud $ heroku keys:add ~/.ssh/id_rsa.pub ... Continuous Cloud $ git push heroku master Deployment Andreas Koop 27
  • 28. FAZIT ‣ Produktiv, Entwicklerfreundlich ...und das ohne essentielle ‣ Typsichere View Scala Templates Scala- Kenntnisse! ‣ Less CSS Integration ‣ CoffeeScript Integration ‣ HTML5 / WebSocket Support & More... ‣ Social and Cloud Ready Andreas Koop 28
  • 29. ZUSAMMENFASSUNG ‣ Zustandsloses, performantes (non-blocking) Web-Framework ‣ Neuste Technologien: Async-I/O, WebSockets, HTML5, WebJars, CoffeeScript/LESS PreCompiler, Scala ‣ Ausgelegt für Internet- / Cloud-Applikationen, RESTful Services, Mobile HTML5, Social Sign On ‣ Play! 1.x -> Play! 2.x: Gewagter Schritt der Macher! ‣ Intranet-Unternehmensanwendungen derzeit besser mit z.B. Oracle ADF Andreas Koop 29
  • 30. ES GIBT NOCH VIEL MEHR ‣ Session Handling ‣ Cache Handling ‣ Form Handling ‣ Logging ‣ .... Andreas Koop 30
  • 31. HOW TO START ‣ www.playframework.org ‣ Tutorial https://github.com/jamesward/play2torial ‣ Join Community https://groups.google.com/forum/?fromgroups#! forum/play-framework Andreas Koop 31
  • 32. VIELEN DANK FÜR IHRE AUFMERKSAMKEIT HABEN SIE NOCH FRAGEN?

Editor's Notes