SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Introduction into Google App Engine

Halil-Cem Gürsoy
adesso AG


Tw @hgutwit
G+ http://goo.gl/hljRS




21.11.11
The speaker


►   More then 12 years development in Java

►   Before getting a “consulting developer“ some years research
    (calculation of RNA folding with genetic algorithms using Pascal)

►   Senior Software Engineer at adesso AG, Dortmund

►   Speaker on some conferences: (W)-JAX, DOAG, HerbstCampus etc.

►   Mostly EAI/SOA projects... with plain good old Java / JEE

►   … and a bit Scala




21.11.11   2   CloudConf 2011 - GAE/J
Agenda


►   Google App Engine

►   Persistence in Google App Engine

►   Limits in GAE/J

►   Quota and Performance

►   Build-Tools

►   Hands-On




21.11.11   3   CloudConf 2011 - GAE/J
Agenda


►   Google App Engine

►   Persistence in Google App Engine

►   Limits in GAE/J

►   Quota and Performance

►   Build-Tools

►   Hands-On




21.11.11   4   CloudConf 2011 - GAE/J
The Google App Engine


►   A classic PaaS

►   No control over the OS

►   A runtime for Web Application

►   At the start, only Python was supported

►   Since 2009 Java, now Google Go
    > Java-Support is limited!




21.11.11   5   CloudConf 2011 - GAE/J
Talking about GAE/J


►   GAE/J = JRE6
    > A Sandbox with restrictions

►   Supports out of the box
    > Servlet API 2.4 (*)

    > JSF 1.1, 2.0 (*)

    > JSP (*)

    > JDO 2.3 (?!)

    > JPA 1(*)

►   Support for Google Services und API‘s


21.11.11   6    CloudConf 2011 - GAE/J
Agenda


►   Google App Engine

►   Persistence in Google App Engine

►   Limits in GAE/J

►   Quota and Performance

►   Build-Tools

►   Hands-On




21.11.11   7   CloudConf 2011 - GAE/J
Persistence in GEA


►   Default Store is a Key-Value NoSQL-DB (Google BigTable)

►   JDO and JPA supported… partially
    > ORM via DataNucleus v1.1

►   JDO is still better documented than JPA in the GAE/J documentation

►   You can use the low level API for Google BigTable

►   You can use in-memory Databases

►   Enhancement of Entity Classes needed (good to know for Build)

►   MySQL-Support is upcoming (now in Beta, chosen accounts)



21.11.11   8   CloudConf 2011 - GAE/J
GAE - JPA

►   Transactional behavior is configured in the persistence.xml

<persistence-unit name="transactions-optional">
    <provider>org.datanucleus.store.appegine.jpa.DatastorePersistenceProvider
    </provider>
    <properties>
           <property name="datanucleus.NontransactionalRead” value="true" />
           <property name="datanucleus.NontransactionalWrite” value="true" />
           <property name="datanucleus.ConnectionURL” value="appengine" />
    </properties>
</persistence-unit>




21.11.11    9    CloudConf 2011 - GAE/J
More on JPA


►   @ManyToMany is not supported

►   Join-Queries are not supported

►   You can not use
    > InheritanceType.SINGLE_TABLE

    > InheritanceType.JOINED

►   No support for aggregation queries
    > group by, having, sum, avg, min, max

►   No support for polymorphic queries




21.11.11   10   CloudConf 2011 - GAE/J
More to know about limits in JPA

►   Resultsets are not initialized, you have to do it!
    > resultSet.size();
►   Id Fields: don’t use long type
    > Unsupported primary key type: long
►   GenerationType.TABLE results in an error
    > javax.persistence.PersistenceEception: Transaction is still
           active.
►   Solution
    @Id
    GeneratedValue(strategy = GenerationType.IDENTITY)
    private com.google.appengine.api.datastore.Key key;




21.11.11      11   CloudConf 2011 - GAE/J
Agenda


►   Google App Engine

►   Persistence in Google App Engine

►   Limits in GAE/J

►   Quota and Performance

►   Build-Tools

►   Hands-On




21.11.11   12   CloudConf 2011 - GAE/J
Other Limits in GAE


►   The “JRE Whitelist” defines all supported JRE classes
    > http://code.google.com/intl/de-DE/appengine/docs/java/jrewhitelist.html

    > Only ~ 1500 classes

►   Your application should not
    > …start own threads (due to that, no Akka-Support if you use Scala)

    > …write files

    > …open network sockets




21.11.11   13   CloudConf 2011 - GAE/J
Will it play?


►   Overview about the support for frameworks and JVM languages:
    > http://code.google.com/p/googleappengine/wiki/WillItPlayInJava

►   No support for…
    > JAX-RPC
    > JDBC
    > JMS (!)
    > JNDI
    > …and much more!

►   A little bit support for JAX-WS, good support for REST

►   Scala, Groovy (look @ Gealky) etc. supported

►   Spring Core is supported

21.11.11   14   CloudConf 2011 - GAE/J
Spring support

►   Not all Spring Projects are supported - core is
►   Running: Spring MVC with Spring beans
►   Setup: JAR files into /WAR/WEB-INF/lib and add to Classpath
►   Example:
 <listener>
        <listener-class>
           org.springframework.web.context.ContextLoaderListener
       </listener-class>
 </listener>
 <servlet>
    <servlet-name>dispatcher</servlet-name>
        <servlet-class>
       org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
     <servlet-name>dispatcher</servlet-name>
     <url-pattern>/springgae/*</url-pattern>
 </servlet-mapping>



21.11.11   15   CloudConf 2011 - GAE/J
Why?




21.11.11   16   CloudConf 2011 - GAE/J
GAE and Android


►   Tight integration of GAE and Android via Android Cloud to Device
    Framework (C2DM)
    > http://code.google.com/android/c2dm/

►   C2DM enables Android Apps to use all GAE as the backend

►   ...e.g. use the GAE Data Store

►   ...e.g. send Mails from GAE

►   Example: Chrome to Phone-Extension and App
    > http://code.google.com/p/chrometophone/




21.11.11   17   CloudConf 2011 - GAE/J
More Reasons…


►   No one enforces you to use JPA or JDO on GAE!
    > Use the native Interface

    > You have a free, full distributed, NoSQL Key-Value DB!

►   Transparent scaling of your app
    > You have not to care about how many instances you have to start and

           then to start

    > GAE is not Beanstalk / CloudFoundry

    > In Beanstalk / CloudFoundry you have still to take care about LB and

           your infrastructure


21.11.11      18   CloudConf 2011 - GAE/J
Agenda


►   Google App Engine

►   Persistence in Google App Engine

►   Limits in GAE/J

►   Quota and Performance

►   Build-Tools

►   Hands-On




21.11.11   19   CloudConf 2011 - GAE/J
Quota

►   GAE with limits w/o fee
►   New Billing System to overcome limits
►   Quota exceeded: HTTP 403 Errors or Exceptions (bad if you not aware
    of quota)
►   Per minute quota = aprox. 500 Req./min.




21.11.11   20   CloudConf 2011 - GAE/J
Measured Performance




21.11.11   21   CloudConf 2011 - GAE/J
Agenda


►   Google App Engine

►   Persistence in Google App Engine

►   Limits in GAE/J

►   Quota and Performance

►   Build-Tools

►   Hands-On




21.11.11   22   CloudConf 2011 - GAE/J
Build-Tools


►   Ant is supported
    > Enhancement of entity classes

    > Deployment

►   Maven
    > Maven2 plug-in available (http://code.google.com/p/maven-gae-plugin/ )

    > Archetypes for JSP, GWT and Wicket-Projects

    > GAE SDK not available via Maven repositories anymore (?)




21.11.11   23   CloudConf 2011 - GAE/J
Agenda


►   Google App Engine

►   Persistence in Google App Engine

►   Limits in GAE/J

►   Quota and Performance

►   Build-Tools

►   Hands-On




21.11.11   24   CloudConf 2011 - GAE/J
Hands on?


►   Some slides to tell you that is needed

►   Ask me afterwards for a live demo

►   Get ready...




21.11.11   25   CloudConf 2011 - GAE/J
Getting started


►   Google App Engine Account activated?
    > You need your mobile number for activation

►   Eclipse with the Google Plug-in

►   Manual installation via Eclipse Market Place
    > http://marketplace.eclipse.org/content/google-plugin-eclipse

►   SDK with CLI and more resources at GAE-Homepage

       – http://code.google.com/appengine/




21.11.11   26   CloudConf 2011 - GAE/J
Create new project




21.11.11   27   CloudConf 2011 - GAE/J
Hello World




21.11.11   28   CloudConf 2011 - GAE/J
Test in the local sandbox

►   You can test your application in the local sandbox
►   http://localhost:8888/[your_project_name]




21.11.11   29   CloudConf 2011 - GAE/J
Create your cloud app


►   Register your application in your GAE account

►   https://appengine.google.com/ -> “Create Application”

►   Choose an Application Identifier and an Application Name (note them!)

►   Choose the Authentication Option
    > Default is “Open to all Google Account users”
    > User can sign in into your app using their Google Account

►   Choose Storage Option
    > High Replication (default) vs. Master/Slave
    > High Replication is “eventualy consistent” (latency in writes)




21.11.11   30   CloudConf 2011 - GAE/J
Deployment

►   Choose „Google – Deploy to App Engine“ from context menu
►   Provide your App Engine data




21.11.11   31   CloudConf 2011 - GAE/J
Calling now on the cloud


►   Call your Application now on the cloud!

►   [appid].appspot.com/[servletname] (Servletname = Projectname by
    default)

►   The servlet should greet you…

►   Check your Application-Dashboard

       – https://appengine.google.com/




21.11.11   32   CloudConf 2011 - GAE/J
Thank you for your attention!




info@adesso.de
www.adesso.de

Contenu connexe

Tendances

GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1SNEHAL MASNE
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 DevelopmentDuke Dao
 
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)Avoiding the domino effect in our [micro]services (SOLID at macro-design level)
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)CodelyTV
 
Microservices: Improving the autonomy of our teams with Event-Driven Architec...
Microservices: Improving the autonomy of our teams with Event-Driven Architec...Microservices: Improving the autonomy of our teams with Event-Driven Architec...
Microservices: Improving the autonomy of our teams with Event-Driven Architec...CodelyTV
 
Workshop: Building Vaadin add-ons
Workshop: Building Vaadin add-onsWorkshop: Building Vaadin add-ons
Workshop: Building Vaadin add-onsSami Ekblad
 
Hackathon - Building vaadin add on components
Hackathon - Building vaadin add on componentsHackathon - Building vaadin add on components
Hackathon - Building vaadin add on componentsJoonas Lehtinen
 
The journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersThe journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersGabriel Guarino
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenGeert Pante
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Vadym Kazulkin
 
JWebPane presentation at JavaOne 2009
JWebPane presentation at JavaOne 2009JWebPane presentation at JavaOne 2009
JWebPane presentation at JavaOne 2009Alexey Ushakov
 
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolMaven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolelliando dias
 

Tendances (12)

GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 Development
 
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)Avoiding the domino effect in our [micro]services (SOLID at macro-design level)
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)
 
Microservices: Improving the autonomy of our teams with Event-Driven Architec...
Microservices: Improving the autonomy of our teams with Event-Driven Architec...Microservices: Improving the autonomy of our teams with Event-Driven Architec...
Microservices: Improving the autonomy of our teams with Event-Driven Architec...
 
Workshop: Building Vaadin add-ons
Workshop: Building Vaadin add-onsWorkshop: Building Vaadin add-ons
Workshop: Building Vaadin add-ons
 
Hackathon - Building vaadin add on components
Hackathon - Building vaadin add on componentsHackathon - Building vaadin add on components
Hackathon - Building vaadin add on components
 
The journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersThe journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developers
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in Maven
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
 
JWebPane presentation at JavaOne 2009
JWebPane presentation at JavaOne 2009JWebPane presentation at JavaOne 2009
JWebPane presentation at JavaOne 2009
 
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolMaven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension tool
 

En vedette

A Business-Critical SharePoint Solution From adesso AG
A Business-CriticalSharePoint SolutionFrom adesso AGA Business-CriticalSharePoint SolutionFrom adesso AG
A Business-Critical SharePoint Solution From adesso AGadesso AG
 
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)adesso AG
 
Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5adesso AG
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?adesso AG
 
Scala 4 Enterprise
Scala 4 EnterpriseScala 4 Enterprise
Scala 4 Enterpriseadesso AG
 

En vedette (7)

Innovation matters and so does how you measure it
Innovation matters and so does how you measure itInnovation matters and so does how you measure it
Innovation matters and so does how you measure it
 
A Business-Critical SharePoint Solution From adesso AG
A Business-CriticalSharePoint SolutionFrom adesso AGA Business-CriticalSharePoint SolutionFrom adesso AG
A Business-Critical SharePoint Solution From adesso AG
 
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
 
Diabetes mellitus
Diabetes mellitusDiabetes mellitus
Diabetes mellitus
 
Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
 
Scala 4 Enterprise
Scala 4 EnterpriseScala 4 Enterprise
Scala 4 Enterprise
 

Similaire à CloudConf2011 Introduction to Google App Engine

Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOTVMware Tanzu
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textToma Velev
 
Getting Started: Google Glass Apps with GDK
Getting Started: Google Glass Apps with GDKGetting Started: Google Glass Apps with GDK
Getting Started: Google Glass Apps with GDKZi Yong Chua
 
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)Igalia
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
How to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentHow to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentMichelantonio Trizio
 
Andy Bosch - JavaServer Faces in the cloud
Andy Bosch -  JavaServer Faces in the cloudAndy Bosch -  JavaServer Faces in the cloud
Andy Bosch - JavaServer Faces in the cloudAndy Bosch
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshopJacobAae
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3Faiz Bashir
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitIMC Institute
 
Continuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsContinuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsMichael Kröll
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaAlexandre Gouaillard
 

Similaire à CloudConf2011 Introduction to Google App Engine (20)

Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 
Getting Started: Google Glass Apps with GDK
Getting Started: Google Glass Apps with GDKGetting Started: Google Glass Apps with GDK
Getting Started: Google Glass Apps with GDK
 
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
 
Ilog Ria2
Ilog Ria2Ilog Ria2
Ilog Ria2
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
How to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentHow to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environment
 
Slim3 quick start
Slim3 quick startSlim3 quick start
Slim3 quick start
 
Andy Bosch - JavaServer Faces in the cloud
Andy Bosch -  JavaServer Faces in the cloudAndy Bosch -  JavaServer Faces in the cloud
Andy Bosch - JavaServer Faces in the cloud
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
 
Gain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdfGain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdf
 
Continuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsContinuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with Jenkins
 
Gradle como alternativa a maven
Gradle como alternativa a mavenGradle como alternativa a maven
Gradle como alternativa a maven
 
Google Cloud Platform
Google Cloud Platform Google Cloud Platform
Google Cloud Platform
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
 

Plus de adesso AG

SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMPSNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMPadesso AG
 
Mythos High Performance Teams
Mythos High Performance TeamsMythos High Performance Teams
Mythos High Performance Teamsadesso AG
 
Was Sie über NoSQL Datenbanken wissen sollten!
Was Sie über NoSQL Datenbanken wissen sollten!Was Sie über NoSQL Datenbanken wissen sollten!
Was Sie über NoSQL Datenbanken wissen sollten!adesso AG
 
Continuous Delivery praktisch
Continuous Delivery praktischContinuous Delivery praktisch
Continuous Delivery praktischadesso AG
 
Agilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous DeliveryAgilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous Deliveryadesso AG
 
Getriebene Anwendungslandschaften
Getriebene AnwendungslandschaftenGetriebene Anwendungslandschaften
Getriebene Anwendungslandschaftenadesso AG
 
Google App Engine JAX PaaS Parade 2013
Google App Engine JAX PaaS Parade 2013Google App Engine JAX PaaS Parade 2013
Google App Engine JAX PaaS Parade 2013adesso AG
 
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)adesso AG
 
OOP 2013 NoSQL Suche
OOP 2013 NoSQL SucheOOP 2013 NoSQL Suche
OOP 2013 NoSQL Sucheadesso AG
 
NoSQL in der Cloud - Why?
NoSQL in der Cloud -  Why?NoSQL in der Cloud -  Why?
NoSQL in der Cloud - Why?adesso AG
 
Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.adesso AG
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
 
Zehn Hinweise für Architekten
Zehn Hinweise für ArchitektenZehn Hinweise für Architekten
Zehn Hinweise für Architektenadesso AG
 
Agile Praktiken
Agile PraktikenAgile Praktiken
Agile Praktikenadesso AG
 
Java und Cloud - nicht nur mit PaaS
Java und Cloud - nicht nur mit PaaS Java und Cloud - nicht nur mit PaaS
Java und Cloud - nicht nur mit PaaS adesso AG
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architektenadesso AG
 
HTML5 Storage
HTML5 StorageHTML5 Storage
HTML5 Storageadesso AG
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparisonadesso AG
 
Bedarfsorientiertes Qualitätsmanagement im Projektalltag
Bedarfsorientiertes Qualitätsmanagement im ProjektalltagBedarfsorientiertes Qualitätsmanagement im Projektalltag
Bedarfsorientiertes Qualitätsmanagement im Projektalltagadesso AG
 

Plus de adesso AG (20)

SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMPSNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
 
Mythos High Performance Teams
Mythos High Performance TeamsMythos High Performance Teams
Mythos High Performance Teams
 
Was Sie über NoSQL Datenbanken wissen sollten!
Was Sie über NoSQL Datenbanken wissen sollten!Was Sie über NoSQL Datenbanken wissen sollten!
Was Sie über NoSQL Datenbanken wissen sollten!
 
Continuous Delivery praktisch
Continuous Delivery praktischContinuous Delivery praktisch
Continuous Delivery praktisch
 
Agilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous DeliveryAgilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous Delivery
 
Getriebene Anwendungslandschaften
Getriebene AnwendungslandschaftenGetriebene Anwendungslandschaften
Getriebene Anwendungslandschaften
 
Google App Engine JAX PaaS Parade 2013
Google App Engine JAX PaaS Parade 2013Google App Engine JAX PaaS Parade 2013
Google App Engine JAX PaaS Parade 2013
 
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
 
OOP 2013 NoSQL Suche
OOP 2013 NoSQL SucheOOP 2013 NoSQL Suche
OOP 2013 NoSQL Suche
 
NoSQL in der Cloud - Why?
NoSQL in der Cloud -  Why?NoSQL in der Cloud -  Why?
NoSQL in der Cloud - Why?
 
Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
Zehn Hinweise für Architekten
Zehn Hinweise für ArchitektenZehn Hinweise für Architekten
Zehn Hinweise für Architekten
 
Agile Praktiken
Agile PraktikenAgile Praktiken
Agile Praktiken
 
Java und Cloud - nicht nur mit PaaS
Java und Cloud - nicht nur mit PaaS Java und Cloud - nicht nur mit PaaS
Java und Cloud - nicht nur mit PaaS
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
 
HTML5 Storage
HTML5 StorageHTML5 Storage
HTML5 Storage
 
Google Dart
Google DartGoogle Dart
Google Dart
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Bedarfsorientiertes Qualitätsmanagement im Projektalltag
Bedarfsorientiertes Qualitätsmanagement im ProjektalltagBedarfsorientiertes Qualitätsmanagement im Projektalltag
Bedarfsorientiertes Qualitätsmanagement im Projektalltag
 

Dernier

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Dernier (20)

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

CloudConf2011 Introduction to Google App Engine

  • 1. Introduction into Google App Engine Halil-Cem Gürsoy adesso AG Tw @hgutwit G+ http://goo.gl/hljRS 21.11.11
  • 2. The speaker ► More then 12 years development in Java ► Before getting a “consulting developer“ some years research (calculation of RNA folding with genetic algorithms using Pascal) ► Senior Software Engineer at adesso AG, Dortmund ► Speaker on some conferences: (W)-JAX, DOAG, HerbstCampus etc. ► Mostly EAI/SOA projects... with plain good old Java / JEE ► … and a bit Scala 21.11.11 2 CloudConf 2011 - GAE/J
  • 3. Agenda ► Google App Engine ► Persistence in Google App Engine ► Limits in GAE/J ► Quota and Performance ► Build-Tools ► Hands-On 21.11.11 3 CloudConf 2011 - GAE/J
  • 4. Agenda ► Google App Engine ► Persistence in Google App Engine ► Limits in GAE/J ► Quota and Performance ► Build-Tools ► Hands-On 21.11.11 4 CloudConf 2011 - GAE/J
  • 5. The Google App Engine ► A classic PaaS ► No control over the OS ► A runtime for Web Application ► At the start, only Python was supported ► Since 2009 Java, now Google Go > Java-Support is limited! 21.11.11 5 CloudConf 2011 - GAE/J
  • 6. Talking about GAE/J ► GAE/J = JRE6 > A Sandbox with restrictions ► Supports out of the box > Servlet API 2.4 (*) > JSF 1.1, 2.0 (*) > JSP (*) > JDO 2.3 (?!) > JPA 1(*) ► Support for Google Services und API‘s 21.11.11 6 CloudConf 2011 - GAE/J
  • 7. Agenda ► Google App Engine ► Persistence in Google App Engine ► Limits in GAE/J ► Quota and Performance ► Build-Tools ► Hands-On 21.11.11 7 CloudConf 2011 - GAE/J
  • 8. Persistence in GEA ► Default Store is a Key-Value NoSQL-DB (Google BigTable) ► JDO and JPA supported… partially > ORM via DataNucleus v1.1 ► JDO is still better documented than JPA in the GAE/J documentation ► You can use the low level API for Google BigTable ► You can use in-memory Databases ► Enhancement of Entity Classes needed (good to know for Build) ► MySQL-Support is upcoming (now in Beta, chosen accounts) 21.11.11 8 CloudConf 2011 - GAE/J
  • 9. GAE - JPA ► Transactional behavior is configured in the persistence.xml <persistence-unit name="transactions-optional"> <provider>org.datanucleus.store.appegine.jpa.DatastorePersistenceProvider </provider> <properties> <property name="datanucleus.NontransactionalRead” value="true" /> <property name="datanucleus.NontransactionalWrite” value="true" /> <property name="datanucleus.ConnectionURL” value="appengine" /> </properties> </persistence-unit> 21.11.11 9 CloudConf 2011 - GAE/J
  • 10. More on JPA ► @ManyToMany is not supported ► Join-Queries are not supported ► You can not use > InheritanceType.SINGLE_TABLE > InheritanceType.JOINED ► No support for aggregation queries > group by, having, sum, avg, min, max ► No support for polymorphic queries 21.11.11 10 CloudConf 2011 - GAE/J
  • 11. More to know about limits in JPA ► Resultsets are not initialized, you have to do it! > resultSet.size(); ► Id Fields: don’t use long type > Unsupported primary key type: long ► GenerationType.TABLE results in an error > javax.persistence.PersistenceEception: Transaction is still active. ► Solution @Id GeneratedValue(strategy = GenerationType.IDENTITY) private com.google.appengine.api.datastore.Key key; 21.11.11 11 CloudConf 2011 - GAE/J
  • 12. Agenda ► Google App Engine ► Persistence in Google App Engine ► Limits in GAE/J ► Quota and Performance ► Build-Tools ► Hands-On 21.11.11 12 CloudConf 2011 - GAE/J
  • 13. Other Limits in GAE ► The “JRE Whitelist” defines all supported JRE classes > http://code.google.com/intl/de-DE/appengine/docs/java/jrewhitelist.html > Only ~ 1500 classes ► Your application should not > …start own threads (due to that, no Akka-Support if you use Scala) > …write files > …open network sockets 21.11.11 13 CloudConf 2011 - GAE/J
  • 14. Will it play? ► Overview about the support for frameworks and JVM languages: > http://code.google.com/p/googleappengine/wiki/WillItPlayInJava ► No support for… > JAX-RPC > JDBC > JMS (!) > JNDI > …and much more! ► A little bit support for JAX-WS, good support for REST ► Scala, Groovy (look @ Gealky) etc. supported ► Spring Core is supported 21.11.11 14 CloudConf 2011 - GAE/J
  • 15. Spring support ► Not all Spring Projects are supported - core is ► Running: Spring MVC with Spring beans ► Setup: JAR files into /WAR/WEB-INF/lib and add to Classpath ► Example: <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/springgae/*</url-pattern> </servlet-mapping> 21.11.11 15 CloudConf 2011 - GAE/J
  • 16. Why? 21.11.11 16 CloudConf 2011 - GAE/J
  • 17. GAE and Android ► Tight integration of GAE and Android via Android Cloud to Device Framework (C2DM) > http://code.google.com/android/c2dm/ ► C2DM enables Android Apps to use all GAE as the backend ► ...e.g. use the GAE Data Store ► ...e.g. send Mails from GAE ► Example: Chrome to Phone-Extension and App > http://code.google.com/p/chrometophone/ 21.11.11 17 CloudConf 2011 - GAE/J
  • 18. More Reasons… ► No one enforces you to use JPA or JDO on GAE! > Use the native Interface > You have a free, full distributed, NoSQL Key-Value DB! ► Transparent scaling of your app > You have not to care about how many instances you have to start and then to start > GAE is not Beanstalk / CloudFoundry > In Beanstalk / CloudFoundry you have still to take care about LB and your infrastructure 21.11.11 18 CloudConf 2011 - GAE/J
  • 19. Agenda ► Google App Engine ► Persistence in Google App Engine ► Limits in GAE/J ► Quota and Performance ► Build-Tools ► Hands-On 21.11.11 19 CloudConf 2011 - GAE/J
  • 20. Quota ► GAE with limits w/o fee ► New Billing System to overcome limits ► Quota exceeded: HTTP 403 Errors or Exceptions (bad if you not aware of quota) ► Per minute quota = aprox. 500 Req./min. 21.11.11 20 CloudConf 2011 - GAE/J
  • 21. Measured Performance 21.11.11 21 CloudConf 2011 - GAE/J
  • 22. Agenda ► Google App Engine ► Persistence in Google App Engine ► Limits in GAE/J ► Quota and Performance ► Build-Tools ► Hands-On 21.11.11 22 CloudConf 2011 - GAE/J
  • 23. Build-Tools ► Ant is supported > Enhancement of entity classes > Deployment ► Maven > Maven2 plug-in available (http://code.google.com/p/maven-gae-plugin/ ) > Archetypes for JSP, GWT and Wicket-Projects > GAE SDK not available via Maven repositories anymore (?) 21.11.11 23 CloudConf 2011 - GAE/J
  • 24. Agenda ► Google App Engine ► Persistence in Google App Engine ► Limits in GAE/J ► Quota and Performance ► Build-Tools ► Hands-On 21.11.11 24 CloudConf 2011 - GAE/J
  • 25. Hands on? ► Some slides to tell you that is needed ► Ask me afterwards for a live demo ► Get ready... 21.11.11 25 CloudConf 2011 - GAE/J
  • 26. Getting started ► Google App Engine Account activated? > You need your mobile number for activation ► Eclipse with the Google Plug-in ► Manual installation via Eclipse Market Place > http://marketplace.eclipse.org/content/google-plugin-eclipse ► SDK with CLI and more resources at GAE-Homepage – http://code.google.com/appengine/ 21.11.11 26 CloudConf 2011 - GAE/J
  • 27. Create new project 21.11.11 27 CloudConf 2011 - GAE/J
  • 28. Hello World 21.11.11 28 CloudConf 2011 - GAE/J
  • 29. Test in the local sandbox ► You can test your application in the local sandbox ► http://localhost:8888/[your_project_name] 21.11.11 29 CloudConf 2011 - GAE/J
  • 30. Create your cloud app ► Register your application in your GAE account ► https://appengine.google.com/ -> “Create Application” ► Choose an Application Identifier and an Application Name (note them!) ► Choose the Authentication Option > Default is “Open to all Google Account users” > User can sign in into your app using their Google Account ► Choose Storage Option > High Replication (default) vs. Master/Slave > High Replication is “eventualy consistent” (latency in writes) 21.11.11 30 CloudConf 2011 - GAE/J
  • 31. Deployment ► Choose „Google – Deploy to App Engine“ from context menu ► Provide your App Engine data 21.11.11 31 CloudConf 2011 - GAE/J
  • 32. Calling now on the cloud ► Call your Application now on the cloud! ► [appid].appspot.com/[servletname] (Servletname = Projectname by default) ► The servlet should greet you… ► Check your Application-Dashboard – https://appengine.google.com/ 21.11.11 32 CloudConf 2011 - GAE/J
  • 33. Thank you for your attention! info@adesso.de www.adesso.de