SlideShare a Scribd company logo
Google App Engine
Assoc.Prof. Dr.Thanachart Numnonda
 Asst.Prof. Thanisa Kruawaisayawan

    Mini Master of Java Technology
                KMITL
               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
  twitter.com/thanachart
www.facebook.com/thanachart

More Related Content

What's hot

Distributed System ppt
Distributed System pptDistributed System ppt
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
rajdeep
 
Task programming
Task programmingTask programming
Task programming
Yogendra Tamang
 
Levels of Virtualization.docx
Levels of Virtualization.docxLevels of Virtualization.docx
Levels of Virtualization.docx
kumari36
 
cloud computing:Types of virtualization
cloud computing:Types of virtualizationcloud computing:Types of virtualization
cloud computing:Types of virtualization
Dr.Neeraj Kumar Pandey
 
Architecture of Mobile Computing
Architecture of Mobile ComputingArchitecture of Mobile Computing
Architecture of Mobile Computing
JAINIK PATEL
 
Fault tolerance in distributed systems
Fault tolerance in distributed systemsFault tolerance in distributed systems
Fault tolerance in distributed systemssumitjain2013
 
Virtual machine security
Virtual machine securityVirtual machine security
Virtual machine security
Jacob Zvirikuzhe
 
Cloud computing system models for distributed and cloud computing
Cloud computing system models for distributed and cloud computingCloud computing system models for distributed and cloud computing
Cloud computing system models for distributed and cloud computing
hrmalik20
 
Common Standards in Cloud Computing
Common Standards in Cloud ComputingCommon Standards in Cloud Computing
Common Standards in Cloud Computing
mrzahidfaiz.blogspot.com
 
Overview of computing paradigm
Overview of computing paradigmOverview of computing paradigm
Overview of computing paradigm
Ripal Ranpara
 
Io t system management with
Io t system management withIo t system management with
Io t system management with
xyxz
 
Platform as a Service (PaaS)
Platform as a Service (PaaS)Platform as a Service (PaaS)
Platform as a Service (PaaS)
Halil Burak Cetinkaya
 
Event management by using cloud computing
Event management by using cloud computingEvent management by using cloud computing
Event management by using cloud computing
Logesh Waran
 
SLA Agreement, types and Life Cycle
SLA Agreement, types and Life Cycle SLA Agreement, types and Life Cycle
SLA Agreement, types and Life Cycle
Dr Neelesh Jain
 
Distributed computing
Distributed computingDistributed computing
Distributed computingshivli0769
 
Case study of amazon EC2 by Akash Badone
Case study of amazon EC2 by Akash BadoneCase study of amazon EC2 by Akash Badone
Case study of amazon EC2 by Akash Badone
Akash Badone
 
VIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docxVIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docx
kumari36
 

What's hot (20)

Distributed System ppt
Distributed System pptDistributed System ppt
Distributed System ppt
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Task programming
Task programmingTask programming
Task programming
 
Levels of Virtualization.docx
Levels of Virtualization.docxLevels of Virtualization.docx
Levels of Virtualization.docx
 
cloud computing:Types of virtualization
cloud computing:Types of virtualizationcloud computing:Types of virtualization
cloud computing:Types of virtualization
 
Architecture of Mobile Computing
Architecture of Mobile ComputingArchitecture of Mobile Computing
Architecture of Mobile Computing
 
Fault tolerance in distributed systems
Fault tolerance in distributed systemsFault tolerance in distributed systems
Fault tolerance in distributed systems
 
Virtual machine security
Virtual machine securityVirtual machine security
Virtual machine security
 
Cloud computing system models for distributed and cloud computing
Cloud computing system models for distributed and cloud computingCloud computing system models for distributed and cloud computing
Cloud computing system models for distributed and cloud computing
 
Common Standards in Cloud Computing
Common Standards in Cloud ComputingCommon Standards in Cloud Computing
Common Standards in Cloud Computing
 
Overview of computing paradigm
Overview of computing paradigmOverview of computing paradigm
Overview of computing paradigm
 
Io t system management with
Io t system management withIo t system management with
Io t system management with
 
Platform as a Service (PaaS)
Platform as a Service (PaaS)Platform as a Service (PaaS)
Platform as a Service (PaaS)
 
Event management by using cloud computing
Event management by using cloud computingEvent management by using cloud computing
Event management by using cloud computing
 
Cloud Reference Model
Cloud Reference ModelCloud Reference Model
Cloud Reference Model
 
SLA Agreement, types and Life Cycle
SLA Agreement, types and Life Cycle SLA Agreement, types and Life Cycle
SLA Agreement, types and Life Cycle
 
Distributed computing
Distributed computingDistributed computing
Distributed computing
 
Case study of amazon EC2 by Akash Badone
Case study of amazon EC2 by Akash BadoneCase study of amazon EC2 by Akash Badone
Case study of amazon EC2 by Akash Badone
 
VIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docxVIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docx
 
Mobile hci
Mobile hciMobile hci
Mobile hci
 

Viewers also liked

Managing Security and Delivering Performance in the Cloud
Managing Security and Delivering Performance in the Cloud Managing Security and Delivering Performance in the Cloud
Managing Security and Delivering Performance in the Cloud
Software Park Thailand
 
Business Strategy and Policy For Next Generation: Social Media Related DC
Business Strategy and Policy  For Next Generation: Social Media Related DCBusiness Strategy and Policy  For Next Generation: Social Media Related DC
Business Strategy and Policy For Next Generation: Social Media Related DC
Software Park Thailand
 
Driving Business Growth in the Age of Innovation
Driving Business Growth in the Age of InnovationDriving Business Growth in the Age of Innovation
Driving Business Growth in the Age of Innovation
Software Park Thailand
 
Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012
Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012
Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012
Software Park Thailand
 
Zero Downtime Migration
Zero Downtime MigrationZero Downtime Migration
Zero Downtime Migration
Software Park Thailand
 
Thai IT Delegation to Japan 2012
Thai IT Delegation to Japan 2012Thai IT Delegation to Japan 2012
Thai IT Delegation to Japan 2012
Software Park Thailand
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
Software Park Thailand
 
ซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overview
ซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overviewซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overview
ซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overview
Software Park Thailand
 
Thai Software Companies at CommunicAsia 2012
Thai Software Companies at CommunicAsia 2012Thai Software Companies at CommunicAsia 2012
Thai Software Companies at CommunicAsia 2012
Software Park Thailand
 
Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....
Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....
Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....Software Park Thailand
 
แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”
แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”
แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”
Software Park Thailand
 
Introduction to Datastore
Introduction to DatastoreIntroduction to Datastore
Introduction to Datastore
Software Park Thailand
 
List of CMMI's companies in Thailand
List of CMMI's companies in ThailandList of CMMI's companies in Thailand
List of CMMI's companies in Thailand
Software Park Thailand
 
Key success factors for managing software business
Key success factors for managing software businessKey success factors for managing software business
Key success factors for managing software business
Software Park Thailand
 
Software Park Thailand Newsletter (Thai) Vol2/2556
Software Park Thailand Newsletter (Thai) Vol2/2556Software Park Thailand Newsletter (Thai) Vol2/2556
Software Park Thailand Newsletter (Thai) Vol2/2556
Software Park Thailand
 
Technology Trends
Technology TrendsTechnology Trends
Technology Trends
Software Park Thailand
 
นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21
นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21
นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21
Software Park Thailand
 

Viewers also liked (20)

Managing Security and Delivering Performance in the Cloud
Managing Security and Delivering Performance in the Cloud Managing Security and Delivering Performance in the Cloud
Managing Security and Delivering Performance in the Cloud
 
Business Strategy and Policy For Next Generation: Social Media Related DC
Business Strategy and Policy  For Next Generation: Social Media Related DCBusiness Strategy and Policy  For Next Generation: Social Media Related DC
Business Strategy and Policy For Next Generation: Social Media Related DC
 
Driving Business Growth in the Age of Innovation
Driving Business Growth in the Age of InnovationDriving Business Growth in the Age of Innovation
Driving Business Growth in the Age of Innovation
 
Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012
Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012
Thai IT Trade Delegation to Tokyo, Japan 11-16 November 2012
 
Zero Downtime Migration
Zero Downtime MigrationZero Downtime Migration
Zero Downtime Migration
 
Backdrop ballroom c
Backdrop ballroom cBackdrop ballroom c
Backdrop ballroom c
 
Thai IT Delegation to Japan 2012
Thai IT Delegation to Japan 2012Thai IT Delegation to Japan 2012
Thai IT Delegation to Japan 2012
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
ซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overview
ซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overviewซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overview
ซอฟต์แวร์ไทยสู่เวทีโลกด้วย Windows azure overview
 
Thai Software Companies at CommunicAsia 2012
Thai Software Companies at CommunicAsia 2012Thai Software Companies at CommunicAsia 2012
Thai Software Companies at CommunicAsia 2012
 
Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....
Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....
Presentation ให้นักศึกษา ม.ขอนแก่น ที่มาเยี่ยมชม Software Park ในวันที่ 17 ต....
 
Spin intro-v6
Spin intro-v6Spin intro-v6
Spin intro-v6
 
แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”
แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”
แถลงข่าว “บริษัทซอฟต์แวร์ไทยผงาดขึ้นแท่นที่ 1 ในอาเซียน”
 
Introduction to Datastore
Introduction to DatastoreIntroduction to Datastore
Introduction to Datastore
 
List of CMMI's companies in Thailand
List of CMMI's companies in ThailandList of CMMI's companies in Thailand
List of CMMI's companies in Thailand
 
Business model
Business modelBusiness model
Business model
 
Key success factors for managing software business
Key success factors for managing software businessKey success factors for managing software business
Key success factors for managing software business
 
Software Park Thailand Newsletter (Thai) Vol2/2556
Software Park Thailand Newsletter (Thai) Vol2/2556Software Park Thailand Newsletter (Thai) Vol2/2556
Software Park Thailand Newsletter (Thai) Vol2/2556
 
Technology Trends
Technology TrendsTechnology Trends
Technology Trends
 
นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21
นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21
นวัตกรรมที่ควรเรียนรู้ในศตวรรษที่ 21
 

Similar to Google App Engine

Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
IMC Institute
 
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
IMC Institute
 
Google Cloud Platform
Google Cloud Platform Google Cloud Platform
Google Cloud Platform
Francesco Marchitelli
 
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
Tahir Akram
 
Azure web apps
Azure web appsAzure web apps
Azure web apps
Vaibhav Gujral
 
Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)
Moch Nasrullah Rahmani
 
App Service Web
App Service WebApp Service Web
App Service Web
Lisa Muthukumar
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft Azure
David J Rosenthal
 
Azure Functions.pptx
Azure Functions.pptxAzure Functions.pptx
Azure Functions.pptx
YachikaKamra
 
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
 
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
CloudBees
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNET
Lorenzo 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
 
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
IBM
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
lynneblue
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Emerson Eduardo Rodrigues Von Staffen
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
Amazon Web Services
 

Similar to Google App Engine (20)

Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : 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
 
Azure web apps
Azure web appsAzure web apps
Azure web apps
 
Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)
 
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
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft Azure
 
Azure Functions.pptx
Azure Functions.pptxAzure Functions.pptx
Azure Functions.pptx
 
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...
 
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)
 
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
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 

More from Software Park Thailand

Smart industry Vol.33/2561
Smart industry Vol.33/2561Smart industry Vol.33/2561
Smart industry Vol.33/2561
Software Park Thailand
 
Softwarepark news Vol.7/2561
Softwarepark news Vol.7/2561Softwarepark news Vol.7/2561
Softwarepark news Vol.7/2561
Software Park Thailand
 
Software Park Newsletter Thai Vol 3/25561
Software Park Newsletter Thai Vol 3/25561Software Park Newsletter Thai Vol 3/25561
Software Park Newsletter Thai Vol 3/25561
Software Park Thailand
 
Smart Industry Vol.23
Smart Industry Vol.23Smart Industry Vol.23
Smart Industry Vol.23
Software Park Thailand
 
Solfware park Newsletter Vol 3/2013 Eng Version
Solfware park Newsletter Vol 3/2013 Eng VersionSolfware park Newsletter Vol 3/2013 Eng Version
Solfware park Newsletter Vol 3/2013 Eng VersionSoftware Park Thailand
 
Software Park Thailand Newsletter Vol 3/2556
Software Park Thailand Newsletter Vol 3/2556Software Park Thailand Newsletter Vol 3/2556
Software Park Thailand Newsletter Vol 3/2556
Software Park Thailand
 
Software Park Thailand Newsletter (Eng) Vol3/2012
Software Park Thailand Newsletter (Eng) Vol3/2012Software Park Thailand Newsletter (Eng) Vol3/2012
Software Park Thailand Newsletter (Eng) Vol3/2012
Software Park Thailand
 
Software Park Thailand Newsletter (Eng) Vol5/2013
Software Park Thailand Newsletter (Eng) Vol5/2013Software Park Thailand Newsletter (Eng) Vol5/2013
Software Park Thailand Newsletter (Eng) Vol5/2013
Software Park Thailand
 
Software Park Thailand Newsletter (Thai) Vol4/2555
Software Park Thailand Newsletter (Thai) Vol4/2555Software Park Thailand Newsletter (Thai) Vol4/2555
Software Park Thailand Newsletter (Thai) Vol4/2555
Software Park Thailand
 
Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)
Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)
Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)
Software Park Thailand
 
Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"
Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"
Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"Software Park Thailand
 
Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...
Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...
Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...Software Park Thailand
 
Software Park Newsletter Vol. 4/2012 English Version
Software Park Newsletter Vol. 4/2012 English VersionSoftware Park Newsletter Vol. 4/2012 English Version
Software Park Newsletter Vol. 4/2012 English Version
Software Park Thailand
 
Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012
Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012
Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012
Software Park Thailand
 
Thai IT Business Development Delegation to Tokyo, Japan: November 2012
Thai IT Business Development Delegation to Tokyo, Japan: November 2012 Thai IT Business Development Delegation to Tokyo, Japan: November 2012
Thai IT Business Development Delegation to Tokyo, Japan: November 2012
Software Park Thailand
 
Smart industry Vol. 20/2555
Smart industry Vol. 20/2555Smart industry Vol. 20/2555
Smart industry Vol. 20/2555
Software Park Thailand
 
Technology Trends : Impacts to Thai Industries
Technology Trends : Impacts to Thai IndustriesTechnology Trends : Impacts to Thai Industries
Technology Trends : Impacts to Thai Industries
Software Park Thailand
 
Cloud Thailand Alliance
Cloud Thailand AllianceCloud Thailand Alliance
Cloud Thailand Alliance
Software Park Thailand
 

More from Software Park Thailand (20)

Smart industry Vol.33/2561
Smart industry Vol.33/2561Smart industry Vol.33/2561
Smart industry Vol.33/2561
 
Softwarepark news Vol.7/2561
Softwarepark news Vol.7/2561Softwarepark news Vol.7/2561
Softwarepark news Vol.7/2561
 
Software Park Newsletter Thai Vol 3/25561
Software Park Newsletter Thai Vol 3/25561Software Park Newsletter Thai Vol 3/25561
Software Park Newsletter Thai Vol 3/25561
 
Smart Industry Vol.23
Smart Industry Vol.23Smart Industry Vol.23
Smart Industry Vol.23
 
Solfware park Newsletter Vol 3/2013 Eng Version
Solfware park Newsletter Vol 3/2013 Eng VersionSolfware park Newsletter Vol 3/2013 Eng Version
Solfware park Newsletter Vol 3/2013 Eng Version
 
Software Park Thailand Newsletter Vol 3/2556
Software Park Thailand Newsletter Vol 3/2556Software Park Thailand Newsletter Vol 3/2556
Software Park Thailand Newsletter Vol 3/2556
 
Software Park Thailand Newsletter (Eng) Vol3/2012
Software Park Thailand Newsletter (Eng) Vol3/2012Software Park Thailand Newsletter (Eng) Vol3/2012
Software Park Thailand Newsletter (Eng) Vol3/2012
 
Software Park Thailand Newsletter (Eng) Vol5/2013
Software Park Thailand Newsletter (Eng) Vol5/2013Software Park Thailand Newsletter (Eng) Vol5/2013
Software Park Thailand Newsletter (Eng) Vol5/2013
 
Software Park Thailand Newsletter (Thai) Vol4/2555
Software Park Thailand Newsletter (Thai) Vol4/2555Software Park Thailand Newsletter (Thai) Vol4/2555
Software Park Thailand Newsletter (Thai) Vol4/2555
 
Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)
Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)
Thai ICT Trad Mission CommunicAsia 2013 (18-21 June 2013)
 
Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"
Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"
Smart Industry Vo.22/2556"E-transaction กระตุ้นธุรกิจอีคอมเมิร์สโต"
 
Software newsletter
Software newsletterSoftware newsletter
Software newsletter
 
Smart industry Vol. 21/2556
Smart industry Vol. 21/2556Smart industry Vol. 21/2556
Smart industry Vol. 21/2556
 
Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...
Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...
Software Park Newsletter 2/2554 "แท็บเล็ต สมาร์ทโพน โมบายแอพพลิเคชั่น ดาวเด่น...
 
Software Park Newsletter Vol. 4/2012 English Version
Software Park Newsletter Vol. 4/2012 English VersionSoftware Park Newsletter Vol. 4/2012 English Version
Software Park Newsletter Vol. 4/2012 English Version
 
Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012
Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012
Thai IT Business Develop,emt Delegation to Tokyo, Japan, 2012
 
Thai IT Business Development Delegation to Tokyo, Japan: November 2012
Thai IT Business Development Delegation to Tokyo, Japan: November 2012 Thai IT Business Development Delegation to Tokyo, Japan: November 2012
Thai IT Business Development Delegation to Tokyo, Japan: November 2012
 
Smart industry Vol. 20/2555
Smart industry Vol. 20/2555Smart industry Vol. 20/2555
Smart industry Vol. 20/2555
 
Technology Trends : Impacts to Thai Industries
Technology Trends : Impacts to Thai IndustriesTechnology Trends : Impacts to Thai Industries
Technology Trends : Impacts to Thai Industries
 
Cloud Thailand Alliance
Cloud Thailand AllianceCloud Thailand Alliance
Cloud Thailand Alliance
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 

Google App Engine

  • 1. Google App Engine Assoc.Prof. Dr.Thanachart Numnonda Asst.Prof. Thanisa Kruawaisayawan Mini Master of Java Technology KMITL 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 twitter.com/thanachart www.facebook.com/thanachart