SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
Google App Engine
Assoc.Prof. Dr.Thanachart Numnonda
 Asst.Prof. Thanisa Kruawaisayawan

        www.imcinstitute.com
             July 2012
Agenda
What is Cloud Computing?

What is Google App Engine?

Google App Engine for Java

Google App Engine Development cycle
What is Cloud Computing?
Cloud computing : Definition (Wikipedia)

   Cloud Computing is Internet-based computing,
whereby shared resources, software, and information
  are provided to computers and other devices on
          demand, like the electricity grid.
Cloud computing characteristics
Massive, abstracted infrastructure
Dynamic allocation, scaling, movement of applications
Pay per use
No long-term commitments
OS, application architecture independent
No hardware or software to install
Grid to Cloud Evolution
Web 2.0 & Cloud Computing
Web 2,0 concentrate on the private user and clouds
 are decscendents of data centers which services the
 enterprise
Web 2.0 promote SaaS
Web 2.0 needs massive scaling technologies
User centric Web 2.0 companies (Twitter, Slideshare)
 are relying on Cloud Services
ISP to Cloud Evolution
Software as a Service (SaaS)
SaaS is at the highest layer and features a complete
 application offered as a service, on-demand,
via multitenancy — meaning a single instance of the
 software runs on the provider’s infrastructure and
 serves multiple client organizations.
Platform as a Service (PaaS)
The middle layer, or PaaS, is the encapsulation of a
 development environment abstraction and the
 packaging of a payload of services
PaaS offerings can provide for every phase of software
 development and testing, or they can be specialized
 around a particular area, such as content management
Infrastructure as a Service (IaaS)
IaaS is at the lowest layer and is a means of delivering basic
 storage and compute capabilities as standardized services
 over the network.
Servers, storage systems, switches,routers, and other
 systems are pooled (through virtualization technology, for
 example) to handle specific types of workloads — from batch
 processing to server/storage augmentation during peak loads.
Deployment Model
Public Cloud: provider refers to the cloud platform that
 targets any types of customers.
Private Cloud: infrastructure that’s hosted internally, targeting
 specific customers or sometimes exclusively within an
 organization.
Hybrid Cloud: the combination of public and private clouds,
 or sometimes on-premise services.
IaaS & PaaS: Developer's Perspectives
IaaS normally provides up to O/S level as your choice; for
 example Amazon Web Services (AWS) offers several types of
 Operating Systems such as Windows Server, Linux SUSE, and
 Linux Red Hat. Developer need to install own middleware,
 database, etc.
PaaS, given that the database server, VM, and web server VM
 are readily provisioned,
Setting Up App in IaaS




Source:http://acloudyplace.com/2012/01/comparing-iaas-and-paas-a-developers-perspective/
Setting Up App in PaaS




Source:http://acloudyplace.com/2012/01/comparing-iaas-and-paas-a-developers-perspective/
PaaS for Java
Amazon Elastic Beanstalk
CloudBees
Cloud Foundry
Google App Engine
Heroku for Java
Red Hat OpenShift
PaaS for Java: Comparison
PaaS for Java: Comparison




Source: http://www.infoq.com/articles/paas_comparison
What is Google App Engine?
Google App Engine : Definition (Wikipedia)

It is a platform for hosting web applications in Google-
      managed data centers. It is cloud computing
    technology which virtualizes applications across
            multiple servers and data centers.
Google App Engine
Running your web application in Google infrastructure
Support different runtime environments
  Java (JRE 6 with limitation, Servlet 2.5, JDO, JPA)
  Python (2.5.2)
Apps run in sandbox.
Automatic scaling and load balancing
No server restart, no network issues
Hosting Java web apps traditionally
Not so popular except enterprise
High rates as compared to PHP hosting
Shared Tomcat instance among users
Restrictions on any time deployments due to shared
 server
Dedicated hosts works fine but they are costly
You end up with all this
Google Datacenters at Dallas, Oregon
GAE Architecture
GAE Physical Deployment Diagram
Architecture : Application Server
Distributed web hosting platform
Distributed Datastore
Distributed memcache
Specialized services
Google Apps + your apps
Google App Engine for Java
GAE/J
Was released on April 08 with Python support. Java
 included on August 09
App Engine for Java : One Year




Source: What’s Hot in Java for App Engine Google Con 2010
GAE Java Runtime Environment
Java 6 VM
Servlet 2.5 Container
HTTP Session support (need to enable explicitly)
JDO/JPA for Datastore API
JSR 107 for Memcache API
javax.mail for Mail API
javax.net.URLConnection for URLFetch API
Java Standards on GAE
Services by App Engine
Memcache API – high performance in-memory key-value cache
Datastore – database storage and operations
URLFetch – invoking external URLs
Mail – sending mail from your application
Task Queues – for invoking background processes
Images – for image manipulation
Cron Jobs – scheduled tasks on defined time
User Accounts – using Google accounts for authentication
Limitations
Programming Model : Application runs in sandbox and
 can not
  Write to file system
  Make arbitrary network connections
  Use multiple threads/processes
  Perform long-lasting processing
  Permissions
  Know about other instances/applications
Quotas (Requests, In/Out bandwidth, CPU time, API
 calls)
GAE Datastore
GAE Datastore
Storing data and manipulation
Based on Bigtable
Bigtable is proprietary and hidden from the app developers
Not a relational database (No SQL)
GQL (Google Query Language) to query
Stores data as entities
Distribution, replication, load balancing behind the scene
Need to use JDO/JPA
User Service : Google Accounts
Google Accounts are encouraged as the preferred
 authentication mechanism for App Engine
   – It assumes that all users have a Google Account
   – Google authentication for private domains isn’t available yet
Access to Google account data -> email, id
The Development Server simulates Google Accounts
Access constraints based on roles
User API : Example
import com.google.appengine.api.users.*;
 import com.google.appengine.api.users.*;

UserService userService == UserServiceFactory.getUserService();
 UserService userService    UserServiceFactory.getUserService();
User user == userService.getCurrentUser();
 User user    userService.getCurrentUser();
String navBar;
 String navBar;
if (user == null) {{
 if (user == null)
     navBar == "<p>Welcome! <a href="" ++ userService.createLoginURL("/")
      navBar    "<p>Welcome! <a href=""    userService.createLoginURL("/")
     +"">Sign in or register</a> to customize.</p>";
      +"">Sign in or register</a> to customize.</p>";
}} else {{
    else
    navBar == "<p>Welcome, "" ++ user.getEmail() ++ "! You can <a href=""
     navBar    "<p>Welcome,       user.getEmail()    "! You can <a href=""
    +userService.createLogoutURL("/") +"">sign out</a>.</p>";
     +userService.createLogoutURL("/") +"">sign out</a>.</p>";
}}
URLFetch API
Invoking external URLs from your application over HTTP and
 HTTPs
import java.net.*;
 import java.net.*;
import java.io.*;
 import java.io.*;

URL url == new URL("htp://...");
 URL url    new URL("htp://...");
InputStream inp == new InputStreamReader(url.openStream());
 InputStream inp    new InputStreamReader(url.openStream());
BufferedReader reader == new BufferedReader(inp);
 BufferedReader reader    new BufferedReader(inp);
String line;
 String line;
while ((line == reader.readLine()) != null) {{
 while ((line    reader.readLine()) != null)
 //do something
  //do something
}}
reader.close();
 reader.close();
Mail API
Send emails on the behalf of app administrator to the Google
 account use.
You can not receive emails
import javax.mail.*;
 import javax.mail.*;

Session session == Session.getDefaultInstance(new Properties(), null);
 Session session    Session.getDefaultInstance(new Properties(), null);
InternetAddress admins == new InternetAddress("admins");
 InternetAddress admins    new InternetAddress("admins");
Message msg == new MimeMessage(session);
 Message msg    new MimeMessage(session);
msg.setFrom(admins);
 msg.setFrom(admins);
msg.addRecipient(Message.RecipientType.TO, admins);
 msg.addRecipient(Message.RecipientType.TO, admins);
msg.setSubject("subject");
 msg.setSubject("subject");
msg.setText("text");
 msg.setText("text");

Transport.send(msg);
 Transport.send(msg);
Memcache Service
Distributed in memory cache, better than DataStore
Key-value pair mapping
Configurable expiration time but
Unreliable might be vanished at any time
Supported Interfaces :
   – JACHE (JSR 107: JCACHE – Java Temporary Caching API)
   – The Low-Level Memcache API
Memcache API : Example

import static java.util.Collections.emptyMap;
 import static java.util.Collections.emptyMap;
import javax.cache.*;
 import javax.cache.*;

CacheFactory cacheFactory == CacheManager.getInstance().getCacheFactory();
 CacheFactory cacheFactory    CacheManager.getInstance().getCacheFactory();

Cache cache == cacheFactory.createCache(emptyMap());
 Cache cache    cacheFactory.createCache(emptyMap());

cache.put(key, value);
 cache.put(key, value);
cache.get(key);
 cache.get(key);
Task Queues API
Perform background processes by inserting tasks into queues.
Instructions need to be mention in file queue.xml, in the WEB-INF/ dir

import com.google.appengine.api.labs.taskqueue.Queue;
 import com.google.appengine.api.labs.taskqueue.Queue;
import com.google.appengine.api.labs.taskqueue.QueueFactory;
 import com.google.appengine.api.labs.taskqueue.QueueFactory;
import com.google.appengine.api.labs.taskqueue.TaskOptions;
 import com.google.appengine.api.labs.taskqueue.TaskOptions;

// ...
 // ...
TaskOptions taskOptions ==
 TaskOptions taskOptions
TaskOptions.Builder.url("/send_invitation_task")
 TaskOptions.Builder.url("/send_invitation_task")
   .param("address", "juliet@example.com")
    .param("address", "juliet@example.com")
   .param("firstname", "Juliet");
    .param("firstname", "Juliet");
Queue queue == QueueFactory.getDefaultQueue();
 Queue queue    QueueFactory.getDefaultQueue();
queue.add(taskOptions);
 queue.add(taskOptions);
Cron Jobs
Up to 20 scheduled tasks per app
Cron jobs (scheduled tasks) supported in cron.xml in WEB-INF dir
Schedule instructions contain Englis-like format
<?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
<cronentries>
 <cronentries>
<cron>
 <cron>
<url>/listbooks</url>
 <url>/listbooks</url>
<description>Repopulate the cache every day at
 <description>Repopulate the cache every day at
5am</description>
 5am</description>
<schedule>every day 05:00</schedule>
 <schedule>every day 05:00</schedule>
</cron>
 </cron>
</cronentries>
 </cronentries>
Images API
Manipulation of images
Transformation of images
Changing image formats
GAE Development Cycle
GAE Development Cycle
Getting Started
The application owner must have a Google Account to
 get the tools regardless of language.
Use Java 6 for development.
Eclipse and Netbeans have official plugins.
Both SDKs ship with a Development Web Server that
 runs locally and provides a sandbox almost identical to
 the real run-time.
Software Development Kit
App Engine SDK
  – Includes web server (Jetty)
  – Emulates all the GAE services
SDK includes an upload tool to deploy app to GAE
Command line tools included.
Google Plugin for Eclipse
Development Environment
Development Server
Application lifecycle
 management
Eclipse/NetBeans plugins /
 Firefox plugin (GWT).
Google Plugin for Eclipse
Development Server
   http://localhost:8888
Development Server Admin Console
       http://localhost:8888/_ah/admin
Deployment Environment
Application is deployed as .war which contains.
Deployment is integrated in IDE
Deploy multiple version of the application at the same
 time
Your app lives at
   – <app_id>.appspot.com or
   – Custom domain with Google Apps
Running your app on Google
http://<version>.<appid>.appspot.com/some/path
Managing Applications
Administration Console
 http://appengine.google.com/a/yourdomain.com
Application Dashboard
Multiple application versions
Analyzing log files (including admin)
Analyzing resource usag
GAE Dashboard
Resources
Google App Engine at a glance, Stefan Christoph
Developing Java Based Web Applications in
Google App Engine, Tahir Akram, Dec. 2009
Google App Engine, Patrick Chanezon, Mar 2010
Thank you

   thananum@gmail.com
www.facebook.com/imcinstitute
   www.imcinstitute.com

Mais conteúdo relacionado

Mais procurados

Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Tuna Tore
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...SPTechCon
 
How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!David Gibbons
 
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Kazuyuki Kawamura
 
The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)David Gibbons
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Atlassian
 
ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)Lucas Jellema
 
An Introduction to Django Web Framework
An Introduction to Django Web FrameworkAn Introduction to Django Web Framework
An Introduction to Django Web FrameworkDavid Gibbons
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineAlexander Zamkovyi
 
Android intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.comAndroid intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.comMohamed Rimzan
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2Geoffrey Fox
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet backdoor
 
REST Architecture with use case and example
REST Architecture with use case and exampleREST Architecture with use case and example
REST Architecture with use case and exampleShailesh singh
 

Mais procurados (20)

Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
Advanced SharePoint 2010 and 2013 Web Part Development by Rob Windsor - SPTec...
 
How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
 
The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
 
netbeans
netbeansnetbeans
netbeans
 
ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)ADF Gold Nuggets (Oracle Open World 2011)
ADF Gold Nuggets (Oracle Open World 2011)
 
An Introduction to Django Web Framework
An Introduction to Django Web FrameworkAn Introduction to Django Web Framework
An Introduction to Django Web Framework
 
4. jsp
4. jsp4. jsp
4. jsp
 
Google app engine by example
Google app engine by exampleGoogle app engine by example
Google app engine by example
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App Engine
 
Struts N E W
Struts N E WStruts N E W
Struts N E W
 
Android intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.comAndroid intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.com
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet
 
REST Architecture with use case and example
REST Architecture with use case and exampleREST Architecture with use case and example
REST Architecture with use case and example
 

Destaque

๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App Engine๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App EngineIMC Institute
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010Chris Schalk
 
วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013
วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013
วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013พัน พัน
 
Cloud computing and Grid Computing
Cloud computing and Grid ComputingCloud computing and Grid Computing
Cloud computing and Grid Computingprabathsl
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Enginerajdeep
 

Destaque (6)

๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App Engine๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App Engine
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010
 
วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013
วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013
วิธีลบภาพพื้นหลังรูปด้วย Microsoft word 2007 2013
 
Cloud computing and Grid Computing
Cloud computing and Grid ComputingCloud computing and Grid Computing
Cloud computing and Grid Computing
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 

Semelhante a Google App Engine Java Overview

Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10IMC Institute
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineTahir Akram
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...WebStackAcademy
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
Managing Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the CloudManaging Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the CloudCloudBees
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETLorenzo Barbieri
 
The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)Dave Bost
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureDavid J Rosenthal
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapShay Hassidim
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Docker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a MinuteDocker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a Minutedchq
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overviewjimliddle
 

Semelhante a Google App Engine Java Overview (20)

Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10
 
Google Cloud Platform
Google Cloud Platform Google Cloud Platform
Google Cloud Platform
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 
Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)
 
Azure web apps
Azure web appsAzure web apps
Azure web apps
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
App Service Web
App Service WebApp Service Web
App Service Web
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
Managing Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the CloudManaging Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the Cloud
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNET
 
The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft Azure
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 Xap
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Docker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a MinuteDocker Java App with MariaDB – Deployment in Less than a Minute
Docker Java App with MariaDB – Deployment in Less than a Minute
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overview
 

Mais de IMC Institute

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14IMC Institute
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019IMC Institute
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AIIMC Institute
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12IMC Institute
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital TransformationIMC Institute
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIMC Institute
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมIMC Institute
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon ValleyIMC Institute
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)IMC Institute
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง IMC Institute
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9 IMC Institute
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016IMC Institute
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger IMC Institute
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.orgIMC Institute
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgIMC Institute
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital TransformationIMC Institute
 

Mais de IMC Institute (20)

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AI
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to Work
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon Valley
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.org
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.org
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
 

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Google App Engine Java Overview

  • 1. Google App Engine Assoc.Prof. Dr.Thanachart Numnonda Asst.Prof. Thanisa Kruawaisayawan www.imcinstitute.com July 2012
  • 2. Agenda What is Cloud Computing? What is Google App Engine? Google App Engine for Java Google App Engine Development cycle
  • 3. What is Cloud Computing?
  • 4. Cloud computing : Definition (Wikipedia) Cloud Computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid.
  • 5. Cloud computing characteristics Massive, abstracted infrastructure Dynamic allocation, scaling, movement of applications Pay per use No long-term commitments OS, application architecture independent No hardware or software to install
  • 6. Grid to Cloud Evolution
  • 7. Web 2.0 & Cloud Computing Web 2,0 concentrate on the private user and clouds are decscendents of data centers which services the enterprise Web 2.0 promote SaaS Web 2.0 needs massive scaling technologies User centric Web 2.0 companies (Twitter, Slideshare) are relying on Cloud Services
  • 8. ISP to Cloud Evolution
  • 9. Software as a Service (SaaS) SaaS is at the highest layer and features a complete application offered as a service, on-demand, via multitenancy — meaning a single instance of the software runs on the provider’s infrastructure and serves multiple client organizations.
  • 10. Platform as a Service (PaaS) The middle layer, or PaaS, is the encapsulation of a development environment abstraction and the packaging of a payload of services PaaS offerings can provide for every phase of software development and testing, or they can be specialized around a particular area, such as content management
  • 11. Infrastructure as a Service (IaaS) IaaS is at the lowest layer and is a means of delivering basic storage and compute capabilities as standardized services over the network. Servers, storage systems, switches,routers, and other systems are pooled (through virtualization technology, for example) to handle specific types of workloads — from batch processing to server/storage augmentation during peak loads.
  • 12.
  • 13. Deployment Model Public Cloud: provider refers to the cloud platform that targets any types of customers. Private Cloud: infrastructure that’s hosted internally, targeting specific customers or sometimes exclusively within an organization. Hybrid Cloud: the combination of public and private clouds, or sometimes on-premise services.
  • 14. IaaS & PaaS: Developer's Perspectives IaaS normally provides up to O/S level as your choice; for example Amazon Web Services (AWS) offers several types of Operating Systems such as Windows Server, Linux SUSE, and Linux Red Hat. Developer need to install own middleware, database, etc. PaaS, given that the database server, VM, and web server VM are readily provisioned,
  • 15. Setting Up App in IaaS Source:http://acloudyplace.com/2012/01/comparing-iaas-and-paas-a-developers-perspective/
  • 16. Setting Up App in PaaS Source:http://acloudyplace.com/2012/01/comparing-iaas-and-paas-a-developers-perspective/
  • 17. PaaS for Java Amazon Elastic Beanstalk CloudBees Cloud Foundry Google App Engine Heroku for Java Red Hat OpenShift
  • 18. PaaS for Java: Comparison
  • 19. PaaS for Java: Comparison Source: http://www.infoq.com/articles/paas_comparison
  • 20. What is Google App Engine?
  • 21. Google App Engine : Definition (Wikipedia) It is a platform for hosting web applications in Google- managed data centers. It is cloud computing technology which virtualizes applications across multiple servers and data centers.
  • 22. Google App Engine Running your web application in Google infrastructure Support different runtime environments Java (JRE 6 with limitation, Servlet 2.5, JDO, JPA) Python (2.5.2) Apps run in sandbox. Automatic scaling and load balancing No server restart, no network issues
  • 23. Hosting Java web apps traditionally Not so popular except enterprise High rates as compared to PHP hosting Shared Tomcat instance among users Restrictions on any time deployments due to shared server Dedicated hosts works fine but they are costly
  • 24. You end up with all this
  • 25.
  • 26. Google Datacenters at Dallas, Oregon
  • 34. Google Apps + your apps
  • 35. Google App Engine for Java
  • 36. GAE/J Was released on April 08 with Python support. Java included on August 09
  • 37. App Engine for Java : One Year Source: What’s Hot in Java for App Engine Google Con 2010
  • 38. GAE Java Runtime Environment Java 6 VM Servlet 2.5 Container HTTP Session support (need to enable explicitly) JDO/JPA for Datastore API JSR 107 for Memcache API javax.mail for Mail API javax.net.URLConnection for URLFetch API
  • 40. Services by App Engine Memcache API – high performance in-memory key-value cache Datastore – database storage and operations URLFetch – invoking external URLs Mail – sending mail from your application Task Queues – for invoking background processes Images – for image manipulation Cron Jobs – scheduled tasks on defined time User Accounts – using Google accounts for authentication
  • 41. Limitations Programming Model : Application runs in sandbox and can not Write to file system Make arbitrary network connections Use multiple threads/processes Perform long-lasting processing Permissions Know about other instances/applications Quotas (Requests, In/Out bandwidth, CPU time, API calls)
  • 43. GAE Datastore Storing data and manipulation Based on Bigtable Bigtable is proprietary and hidden from the app developers Not a relational database (No SQL) GQL (Google Query Language) to query Stores data as entities Distribution, replication, load balancing behind the scene Need to use JDO/JPA
  • 44. User Service : Google Accounts Google Accounts are encouraged as the preferred authentication mechanism for App Engine – It assumes that all users have a Google Account – Google authentication for private domains isn’t available yet Access to Google account data -> email, id The Development Server simulates Google Accounts Access constraints based on roles
  • 45. User API : Example import com.google.appengine.api.users.*; import com.google.appengine.api.users.*; UserService userService == UserServiceFactory.getUserService(); UserService userService UserServiceFactory.getUserService(); User user == userService.getCurrentUser(); User user userService.getCurrentUser(); String navBar; String navBar; if (user == null) {{ if (user == null) navBar == "<p>Welcome! <a href="" ++ userService.createLoginURL("/") navBar "<p>Welcome! <a href="" userService.createLoginURL("/") +"">Sign in or register</a> to customize.</p>"; +"">Sign in or register</a> to customize.</p>"; }} else {{ else navBar == "<p>Welcome, "" ++ user.getEmail() ++ "! You can <a href="" navBar "<p>Welcome, user.getEmail() "! You can <a href="" +userService.createLogoutURL("/") +"">sign out</a>.</p>"; +userService.createLogoutURL("/") +"">sign out</a>.</p>"; }}
  • 46. URLFetch API Invoking external URLs from your application over HTTP and HTTPs import java.net.*; import java.net.*; import java.io.*; import java.io.*; URL url == new URL("htp://..."); URL url new URL("htp://..."); InputStream inp == new InputStreamReader(url.openStream()); InputStream inp new InputStreamReader(url.openStream()); BufferedReader reader == new BufferedReader(inp); BufferedReader reader new BufferedReader(inp); String line; String line; while ((line == reader.readLine()) != null) {{ while ((line reader.readLine()) != null) //do something //do something }} reader.close(); reader.close();
  • 47. Mail API Send emails on the behalf of app administrator to the Google account use. You can not receive emails import javax.mail.*; import javax.mail.*; Session session == Session.getDefaultInstance(new Properties(), null); Session session Session.getDefaultInstance(new Properties(), null); InternetAddress admins == new InternetAddress("admins"); InternetAddress admins new InternetAddress("admins"); Message msg == new MimeMessage(session); Message msg new MimeMessage(session); msg.setFrom(admins); msg.setFrom(admins); msg.addRecipient(Message.RecipientType.TO, admins); msg.addRecipient(Message.RecipientType.TO, admins); msg.setSubject("subject"); msg.setSubject("subject"); msg.setText("text"); msg.setText("text"); Transport.send(msg); Transport.send(msg);
  • 48. Memcache Service Distributed in memory cache, better than DataStore Key-value pair mapping Configurable expiration time but Unreliable might be vanished at any time Supported Interfaces : – JACHE (JSR 107: JCACHE – Java Temporary Caching API) – The Low-Level Memcache API
  • 49. Memcache API : Example import static java.util.Collections.emptyMap; import static java.util.Collections.emptyMap; import javax.cache.*; import javax.cache.*; CacheFactory cacheFactory == CacheManager.getInstance().getCacheFactory(); CacheFactory cacheFactory CacheManager.getInstance().getCacheFactory(); Cache cache == cacheFactory.createCache(emptyMap()); Cache cache cacheFactory.createCache(emptyMap()); cache.put(key, value); cache.put(key, value); cache.get(key); cache.get(key);
  • 50. Task Queues API Perform background processes by inserting tasks into queues. Instructions need to be mention in file queue.xml, in the WEB-INF/ dir import com.google.appengine.api.labs.taskqueue.Queue; import com.google.appengine.api.labs.taskqueue.Queue; import com.google.appengine.api.labs.taskqueue.QueueFactory; import com.google.appengine.api.labs.taskqueue.QueueFactory; import com.google.appengine.api.labs.taskqueue.TaskOptions; import com.google.appengine.api.labs.taskqueue.TaskOptions; // ... // ... TaskOptions taskOptions == TaskOptions taskOptions TaskOptions.Builder.url("/send_invitation_task") TaskOptions.Builder.url("/send_invitation_task") .param("address", "juliet@example.com") .param("address", "juliet@example.com") .param("firstname", "Juliet"); .param("firstname", "Juliet"); Queue queue == QueueFactory.getDefaultQueue(); Queue queue QueueFactory.getDefaultQueue(); queue.add(taskOptions); queue.add(taskOptions);
  • 51. Cron Jobs Up to 20 scheduled tasks per app Cron jobs (scheduled tasks) supported in cron.xml in WEB-INF dir Schedule instructions contain Englis-like format <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?> <cronentries> <cronentries> <cron> <cron> <url>/listbooks</url> <url>/listbooks</url> <description>Repopulate the cache every day at <description>Repopulate the cache every day at 5am</description> 5am</description> <schedule>every day 05:00</schedule> <schedule>every day 05:00</schedule> </cron> </cron> </cronentries> </cronentries>
  • 52. Images API Manipulation of images Transformation of images Changing image formats
  • 55. Getting Started The application owner must have a Google Account to get the tools regardless of language. Use Java 6 for development. Eclipse and Netbeans have official plugins. Both SDKs ship with a Development Web Server that runs locally and provides a sandbox almost identical to the real run-time.
  • 56. Software Development Kit App Engine SDK – Includes web server (Jetty) – Emulates all the GAE services SDK includes an upload tool to deploy app to GAE Command line tools included.
  • 57. Google Plugin for Eclipse
  • 58. Development Environment Development Server Application lifecycle management Eclipse/NetBeans plugins / Firefox plugin (GWT).
  • 59. Google Plugin for Eclipse
  • 60. Development Server http://localhost:8888
  • 61. Development Server Admin Console http://localhost:8888/_ah/admin
  • 62. Deployment Environment Application is deployed as .war which contains. Deployment is integrated in IDE Deploy multiple version of the application at the same time Your app lives at – <app_id>.appspot.com or – Custom domain with Google Apps
  • 63. Running your app on Google http://<version>.<appid>.appspot.com/some/path
  • 64. Managing Applications Administration Console http://appengine.google.com/a/yourdomain.com Application Dashboard Multiple application versions Analyzing log files (including admin) Analyzing resource usag
  • 66. Resources Google App Engine at a glance, Stefan Christoph Developing Java Based Web Applications in Google App Engine, Tahir Akram, Dec. 2009 Google App Engine, Patrick Chanezon, Mar 2010
  • 67. Thank you thananum@gmail.com www.facebook.com/imcinstitute www.imcinstitute.com