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.
