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

Viewers also liked

Aiff
AiffAiff
OConnorDescriptiveEssay
OConnorDescriptiveEssayOConnorDescriptiveEssay
OConnorDescriptiveEssay
Matt Thura
 
Libre office informe
Libre office informeLibre office informe
Libre office informe
lindaYisella14
 
Yolanda (3) (1)
Yolanda (3) (1)Yolanda (3) (1)
Yolanda (3) (1)
gustavo lopez ramirez
 
Kekeliruan Konsep Nur Muhammad
Kekeliruan Konsep  Nur MuhammadKekeliruan Konsep  Nur Muhammad
Kekeliruan Konsep Nur Muhammad
Abu Muhammad
 
iPad Crazy Session
iPad Crazy SessioniPad Crazy Session
iPad Crazy Session
Kdeethomas1
 
Christianity
ChristianityChristianity
Christianity
Donald Southerland
 
Экоинновации
ЭкоинновацииЭкоинновации
Экоинновации
Arina Miteva
 
Article08
Article08Article08
Article08
mcmarvincraig
 
The blink Style
The blink StyleThe blink Style
The blink Style
Daniel Ruke
 
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
schoowebcampus
 
Presentationto GHFG members
Presentationto GHFG membersPresentationto GHFG members
Presentationto GHFG members
Candi Williams
 
iPads in education part 1
iPads in education part 1iPads in education part 1
iPads in education part 1
Kdeethomas1
 
The blink Style - ILLUSTRATION and HI-DESIGN
The blink Style - ILLUSTRATION and HI-DESIGNThe blink Style - ILLUSTRATION and HI-DESIGN
The blink Style - ILLUSTRATION and HI-DESIGN
Daniel Ruke
 

Viewers also liked (14)

Aiff
AiffAiff
Aiff
 
OConnorDescriptiveEssay
OConnorDescriptiveEssayOConnorDescriptiveEssay
OConnorDescriptiveEssay
 
Libre office informe
Libre office informeLibre office informe
Libre office informe
 
Yolanda (3) (1)
Yolanda (3) (1)Yolanda (3) (1)
Yolanda (3) (1)
 
Kekeliruan Konsep Nur Muhammad
Kekeliruan Konsep  Nur MuhammadKekeliruan Konsep  Nur Muhammad
Kekeliruan Konsep Nur Muhammad
 
iPad Crazy Session
iPad Crazy SessioniPad Crazy Session
iPad Crazy Session
 
Christianity
ChristianityChristianity
Christianity
 
Экоинновации
ЭкоинновацииЭкоинновации
Экоинновации
 
Article08
Article08Article08
Article08
 
The blink Style
The blink StyleThe blink Style
The blink Style
 
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
ハイジ・インターフェイスに学ぶ、良いインターフェイスのつくり方 先生:美馬 直輝
 
Presentationto GHFG members
Presentationto GHFG membersPresentationto GHFG members
Presentationto GHFG members
 
iPads in education part 1
iPads in education part 1iPads in education part 1
iPads in education part 1
 
The blink Style - ILLUSTRATION and HI-DESIGN
The blink Style - ILLUSTRATION and HI-DESIGNThe blink Style - ILLUSTRATION and HI-DESIGN
The blink Style - ILLUSTRATION and HI-DESIGN
 

Similar to WepApps mit Play! - Nichts leichter als das

Administration von ADF Anwendungen
Administration von ADF AnwendungenAdministration von ADF Anwendungen
Administration von ADF Anwendungen
enpit GmbH & Co. KG
 
Administration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAdministration for Oracle ADF Applications
Administration for Oracle ADF Applications
Andreas Koop
 
Symfony Deployments on Heroku
Symfony Deployments on HerokuSymfony Deployments on Heroku
Symfony Deployments on Heroku
Stefan Adolf
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
enpit GmbH & Co. KG
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
enpit GmbH & Co. KG
 
ThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - SydneyThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - Sydney
Thoughtworks
 
Cloudy Ajax 08 10
Cloudy Ajax 08 10Cloudy Ajax 08 10
Cloudy Ajax 08 10
rajivmordani
 
Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?
Wojciech Barczyński
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows Azure
Ido Flatow
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
Amazon Web Services
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
QAware GmbH
 
BelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + DockerBelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + Docker
Hudson Mendes
 
Belfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & DockerBelfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & Docker
Hudson Mendes
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
Haggai Philip Zagury
 
Zero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with KubernetesZero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with Kubernetes
Wojciech Barczyński
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
Nicola Ferraro
 
The Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiThe Big Cloud native FaaS Lebowski
The Big Cloud native FaaS Lebowski
QAware GmbH
 
Play framework
Play frameworkPlay framework
Play framework
Andrew Skiba
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
Tadayoshi Sato
 
2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com
Mathieu Buffenoir
 

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

Administration von ADF Anwendungen
Administration von ADF AnwendungenAdministration von ADF Anwendungen
Administration von ADF Anwendungen
 
Administration for Oracle ADF Applications
Administration for Oracle ADF ApplicationsAdministration for Oracle ADF Applications
Administration for Oracle ADF Applications
 
Symfony Deployments on Heroku
Symfony Deployments on HerokuSymfony Deployments on Heroku
Symfony Deployments on Heroku
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
 
ThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - SydneyThoughtWorks Technology Radar Roadshow - Sydney
ThoughtWorks Technology Radar Roadshow - Sydney
 
Cloudy Ajax 08 10
Cloudy Ajax 08 10Cloudy Ajax 08 10
Cloudy Ajax 08 10
 
Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows Azure
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
BelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + DockerBelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + Docker
 
Belfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & DockerBelfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & Docker
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Zero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with KubernetesZero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with Kubernetes
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 
The Big Cloud native FaaS Lebowski
The Big Cloud native FaaS LebowskiThe Big Cloud native FaaS Lebowski
The Big Cloud native FaaS Lebowski
 
Play framework
Play frameworkPlay framework
Play framework
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
 
2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com
 

More from enpit GmbH & Co. KG

Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem VormarschVon Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
enpit GmbH & Co. KG
 
Mit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenMit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernen
enpit GmbH & Co. KG
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demo
enpit GmbH & Co. KG
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
enpit GmbH & Co. KG
 
Client side webdevelopment with jet
Client side webdevelopment with jetClient side webdevelopment with jet
Client side webdevelopment with jet
enpit GmbH & Co. KG
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
enpit GmbH & Co. KG
 
Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?
enpit GmbH & Co. KG
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
enpit GmbH & Co. KG
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
enpit GmbH & Co. KG
 
Modernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenModernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesen
enpit GmbH & Co. KG
 
Die 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-ModernisierungDie 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-Modernisierungenpit GmbH & Co. KG
 
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles EntwicklungswerkzeugeChoice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
enpit GmbH & Co. KG
 
Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADF
enpit GmbH & Co. KG
 
WebCenter Portal - Integrate Custom taskflows
WebCenter Portal - Integrate Custom taskflowsWebCenter Portal - Integrate Custom taskflows
WebCenter Portal - Integrate Custom taskflows
enpit GmbH & Co. KG
 
Java WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud ServiceJava WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud Service
enpit GmbH & Co. KG
 
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
enpit GmbH & Co. KG
 
Best Practices für Multi-Channel Application Development
Best Practices für Multi-Channel Application DevelopmentBest Practices für Multi-Channel Application Development
Best Practices für Multi-Channel Application Development
enpit GmbH & Co. KG
 
Gestern OWB, heute ODI
Gestern OWB, heute ODIGestern OWB, heute ODI
Gestern OWB, heute ODI
enpit GmbH & Co. KG
 
Effective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADFEffective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADF
enpit GmbH & Co. KG
 

More from enpit GmbH & Co. KG (20)

Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem VormarschVon Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarsch
 
Mit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernenMit Legosteinen Maschinelles Lernen lernen
Mit Legosteinen Maschinelles Lernen lernen
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demo
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
Client side webdevelopment with jet
Client side webdevelopment with jetClient side webdevelopment with jet
Client side webdevelopment with jet
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
 
Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Modernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenModernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesen
 
Die 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-ModernisierungDie 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-Modernisierung
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles EntwicklungswerkzeugeChoice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
 
Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADF
 
WebCenter Portal - Integrate Custom taskflows
WebCenter Portal - Integrate Custom taskflowsWebCenter Portal - Integrate Custom taskflows
WebCenter Portal - Integrate Custom taskflows
 
Java WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud ServiceJava WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud Service
 
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
Rapid Application Development (RAD) im Enterprise - Quo vadis Portal?
 
Best Practices für Multi-Channel Application Development
Best Practices für Multi-Channel Application DevelopmentBest Practices für Multi-Channel Application Development
Best Practices für Multi-Channel Application Development
 
Gestern OWB, heute ODI
Gestern OWB, heute ODIGestern OWB, heute ODI
Gestern OWB, heute ODI
 
Effective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADFEffective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADF
 

Recently uploaded

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
“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
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
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.
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 

Recently uploaded (20)

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
“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”
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
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
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 

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 git@heroku.com: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

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. Web-Orientierte Architekturen vorausgesetzt\n
  27. \n
  28. Highly productive\nTypesafe view templates based on Scala\nLessCss integration\nAkka integration\nCompiled javascript with Google Closure Compiler\nNo need to learn Scala for the moment, hooray ! \n\n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n