Programming in Google App Engine

Google App Engine (GAE) is a Platform as a Service (PaaS) cloud computing platform that enables developers to build and run scalable web applications on Google’s infrastructure. GAE supports several programming languages and provides built-in services for data storage, communication, and task execution.


Features of Programming in GAE:

1. Language Support:

  • GAE natively supports Java and Python.
  • Developers can also use other JVM-based languages like JavaScript, Groovy, or Ruby via supported interpreters.

2. Development Tools:

  • For Java, GAE provides an Eclipse plug-in with local debugging support.
  • The Google Web Toolkit (GWT) helps in building dynamic web apps in Java.
  • For Python, frameworks like Django and CherryPy are supported.
  • GAE also offers a built-in webapp framework for Python.

Data Storage:

Datastore (NoSQL):

  • Stores data as entities with schema-less properties (each entity ≤ 1MB).
  • Supports GQL (SQL-like language for Python) and JDO/JPA (for Java).
  • Based on the DataNucleus open-source platform.
  • Provides strong consistency and uses optimistic concurrency control.

Transactions:

  • Multiple datastore operations can be executed in a single transaction.
  • Transactions are limited to entities within a single group, known as entity groups.
  • Designed for safe concurrent updates.

Memcache:

  • An in-memory caching service to enhance performance.
  • Can be used independently or with the datastore.

Blobstore:

  • Suitable for storing and serving large files (up to 2 GB).

External Resource Access:

  • URL Fetch API: Allows HTTP/HTTPS communication with external web services.
  • Secure Data Connector (SDC): Connects GAE to enterprise intranet securely.
  • Mail API: For sending emails directly from the application.
  • Google Services Integration: Access to Maps, Calendar, Docs, YouTube, etc. using Google Data APIs.

User Management & Authentication:

  • Google Accounts can be used for authentication.
  • Eliminates the need to build a separate user registration/login system.

Image Processing:

  • GAE offers an Image Service to manipulate images (resize, rotate, crop, etc.).

Task Execution:

Cron Jobs:

  • For scheduled background tasks (daily, hourly, etc.).
  • Managed by Cron Service.

Task Queues:

  • For background processing initiated during web requests.
  • Helps decouple long-running tasks from user-facing operations.

Resource Quotas & Limits:

  • GAE is free up to certain quotas.
  • Quotas help manage resource usage and cost, and ensure fairness among applications.

Leave a Reply

Your email address will not be published. Required fields are marked *