0% found this document useful (0 votes)
52 views9 pages

Google App Engine Overview and Features

Google map engine

Uploaded by

mirzasaniya716
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views9 pages

Google App Engine Overview and Features

Google map engine

Uploaded by

mirzasaniya716
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

GOOGLE APPLICATION ENGINE (GAE)

🞂 Google App Engine is a PaaS cloud that provides a complete Web service
environment(Platform)
🞂 GAE provides Web application development platform for users.
🞂 All required hardware, operating systems and software are provided to clients.
🞂 Clients can develop their own applications, while App Engine runs the applications on
Google’s servers.
🞂 GAE helps to easily develop an Web Application
🞂 App Engine only supports the Java and Python programming languages.
🞂 The Google App Engine (GAE) provides a powerful distributed data storage service.
GOOGLE CLOUD INFRASTRUCTURE

🞂 Google has established cloud development by making use of large number of data centers.
🞂 Eg: Google established cloud services in
 Gmail
 Google Docs
 Google Earth etc.
🞂 These applications can support a large number of users simultaneously with High
Availability (HA).
🞂 In 2008, Google announced the GAE web application platform.
🞂 GAE enables users to run their applications on a large number of data centers.
🞂 Google App Engine environment includes the following features :
 Dynamic web serving
 Persistent(constant) storage with queries, sorting, and transactions
 Automatic scaling and load balancing
🞂 Provides Application Programming Interface(API) for authenticating users.
🞂 Send email using Google Accounts.
🞂 Local development environment that simulates(create) Google App Engine on your
computer.
🞂

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

GAE ARCHITECTURE

TECHNOLOGIES USED BY GOOGLE ARE

🞂 Google File System(GFS) ->for storing large amounts of data.


🞂 MapReduce->for application program development.
🞂 Chubby-> for distributed application lock services.
🞂 BigTable-> offers a storage service.
🞂 Third-party application providers can use GAE to build cloud applications for providing
services.
🞂 Inside each data center, there are thousands of servers forming different clusters.
🞂 GAE runs the user program on Google’s infrastructure.
🞂 Application developers now do not need to worry about the maintenance of servers.
🞂 GAE can be thought of as the combination of several software components.
🞂 GAE supports Python and Java programming environments.

FUNCTIONAL MODULES OF GAE

🞂 The GAE platform comprises the following five major components.


🞂 DataStore: offers data storage services based on BigTable techniques.
🞂 The Google App Engine (GAE) provides a powerful distributed data storage service.
🞂 This provides a secure data Storage.

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

GOOGLE SECURE DATA CONNECTOR (SDC)

FUNCTIONAL MODULES OF GAE

🞂 When the user wants to get the data, he/she will first send an authorized data requests to
Google Apps.
🞂 It forwards the request to the tunnel server.
🞂 The tunnel servers validate the request identity.
🞂 If the identity is valid, the tunnel protocol allows the SDC to set up a connection,
authenticate, and encrypt the data that flows across the Internet.
🞂 SDC also validates whether a user is authorized to access a specified resource.
🞂 Application runtime environment offers a platform for web programming and execution.
🞂 It supports two development languages: Python and Java.
🞂 Software Development Kit (SDK) is used for local application development.
🞂 The SDK allows users to execute test runs of local applications and upload application
code.
🞂 Administration console is used for easy management of user application development
cycles.
🞂 GAE web service infrastructure provides special guarantee flexible use and management of
storage and network resources by GAE.
🞂 Google offers essentially free GAE services to all Gmail account owners.

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

🞂 We can register for a GAE account or use your Gmail account name to sign up for the
service.
🞂 The service is free within a quota.
🞂 If you exceed the quota, extra amount will be charged.
🞂 Allows the user to deploy user-built applications on top of the cloud infrastructure.
🞂 They are built using the programming languages and software tools supported by the
provider (e.g., Java, Python)

GAE APPLICATIONS

Well-known GAE applications

🞂 Google Search Engine


🞂 Google Docs
🞂 Google Earth
🞂 Gmail
🞂 These applications can support large numbers of users simultaneously.
🞂 Users can interact with Google applications via the web interface provided by each
application.
🞂 Applications run in the Google data centers.
🞂 Inside each data center, there might be thousands of server nodes to form different clusters.
🞂 Each cluster can run multipurpose servers.

5. 3.1 Programming Support of Google App Engine

GAE programming model for two supported languages: Java and Python. A client
environment includes an Eclipse plug-in for Java allows you to debug your GAE on your local
machine. Google Web Toolkit is available for Java web application developers. Python is used
with frameworks such as Django and CherryPy, but Google also has webapp Python environment.

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

There are several powerful constructs for storing and accessing data. The data store is a
NOSQL data management system for entities. Java offers Java Data Object (JDO) and Java
Persistence API (JPA) interfaces implemented by the Data Nucleus Access platform, while Python
has a SQL-like query language called GQL. The performance of the data store can be enhanced by
in-memory caching using the memcache, which can also be used independently of the data store.
Recently, Google added the blobstore which is suitable for large files as its size limit is 2
GB. There are several mechanisms for incorporating external resources. The Google SDC Secure
Data Connection can tunnel through the Internet and link your intranet to an external GAE
application. The URL Fetch operation provides the ability for applications to fetch resources and
communicate with other hosts over the Internet using HTTP and HTTPS requests.

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

An application can use Google Accounts for user authentication. Google Accounts handles
user account creation and sign-in, and a user that already has a Google account (such as a Gmail
account) can use that account with your app. GAE provides the ability to manipulate image data
using a dedicated Images service which can resize, rotate, flip, crop, and enhance images. A GAE
application is configured to consume resources up to certain limits or quotas. With quotas, GAE
ensures that your application won’t exceed your budget, and that other applications running on GAE
won’t impact the performance of your app. In particular, GAE use is free up to certain quotas.
Google File System (GFS)
GFS is a fundamental storage service for Google’s search engine. GFS was designed for
Google applications, and Google applications were built for GFS. There are several concerns in GFS.
rate). As servers are composed of inexpensive commodity components, it is the norm rather than the
exception that concurrent failures will occur all the time. Other concerns the file size in GFS. GFS
typically will hold a large number of huge files, each 100 MB or larger, with files that are multiple
GB in size quite common. Thus, Google has chosen its file data block size to be 64 MB instead of
the 4 KB in typical traditional file systems. The I/O pattern in the Google application is also special.
Files are typically written once, and the write operations are often the appending data blocks to the
end of files. Multiple appending operations might be concurrent. The customized API can simplify
the problem and focus on Google applications.
Figure shows the GFS architecture. It is quite obvious that there is a single master in the
whole cluster. Other nodes act as the chunk servers for storing data, while the single master stores
the metadata. The file system namespace and locking facilities are managed by the master. The
master periodically communicates with the chunk servers to collect management information as well
as give instructions to the chunk servers to do work such as load balancing or fail recovery.

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

The master has enough information to keep the whole cluster in a healthy state. Google uses
a shadow master to replicate all the data on the master, and the design guarantees that all the data
operations are performed directly between the client and the chunk server. The controlmessages are
transferred between the master and the clients and they can be cached for future use. With the current
quality of commodity servers, the single master can handle a cluster of more than 1,000 nodes.

The mutation takes the following steps:


1. The client asks the master which chunk server holds the current lease for the chunk and the
locations of the other replicas. If no one has a lease, the master grants one to a replica it chooses (not
shown).

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

2. The master replies with the identity of the primary and the locations of the other (secondary)
replicas. The client caches this data for future mutations. It needs to contact the master again only
when the primary becomes unreachable or replies that it no longer holds a lease.
3. The client pushes the data to all the replicas. Each chunk server will store the data in an internal
LRU buffer cache until the data is used or aged out. By decoupling the data flow from the control
flow, we can improve performance by scheduling the expensive data flow based on the network
topology regardless of which chunk server is the primary.
4. Once all the replicas have acknowledged receiving the data, the client sends a write request to the
primary. The request identifies the data pushed earlier to all the replicas. The primary assigns
consecutive serial numbers to all the mutations it receives, possibly from multiple clients, which
provides the necessary serialization. It applies the mutation to its own local state in serial order.
5. The primary forwards the write request to all secondary replicas. Each secondary replica applies
mutations in the same serial number order assigned by the primary.
6. The secondaries all reply to the primary indicating that they have completed the operation.
7. The primary replies to the client. Any errors encountered at any replicas are reported to the client.
In case of errors, the write corrects at the primary and an arbitrary subset of the secondary replicas.
The client request is considered to have failed, and the modified region is left in an inconsistent state.
Our client code handles such errors by retrying the failed mutation

Big Table
BigTable was designed to provide a service for storing and retrieving structured and
semistructured data. BigTable applications include storage of web pages, per-user data, and
geographic locations. The database needs to support very high read/write rates and the scale might
be millions of operations per second. Also, the database needs to support efficient scans over all or
interesting subsets of data, as well as efficient joins of large one-to-one and one-to-many data sets.
The application may need to examine data changes over time.
The BigTable system is scalable, which means the system has thousands of servers, terabytes
of in-memory data, petabytes of disk-based data, millions of reads/writes per second, and efficient
scans. BigTable is used in many projects, including Google Search, Orkut, and Google Maps/Google
Earth, among others.

CS8791 CLOUD COMPUTING


ROHINI COLLEGE OF ENGNEERING AND TECHNOLOGY

The BigTable system is built on top of an existing Google cloud infrastructure. BigTable uses the
following building blocks:
1. GFS: stores persistent state
2. Scheduler: schedules jobs involved in BigTable serving
3. Lock service: master election, location bootstrapping
4. MapReduce: often used to read/write BigTable data.

CS8791 CLOUD COMPUTING

Common questions

Powered by AI

The Google File System (GFS) handles failures and maintains data consistency using a combination of replication, master-slave architecture, and efficient message handling. GFS expects hardware failures as a standard behavior due to its use of commodity hardware, so it incorporates replication of data across multiple chunk servers to ensure data availability even if one server fails . The single master node maintains metadata, guides data operations, and coordinates tasks like load balancing and failover recovery to manage these failures efficiently . By creating a shadow master, GFS ensures that the master’s metadata and operations can be replicated, further enhancing reliability . Data consistency is maintained through a strict mutation protocol that ensures write operations are serialized and replicated across all copies of the data . This approach allows GFS to maintain a consistent state while providing resilience against hardware failures .

GAE ensures efficient resource management and application performance through automatic scaling, load balancing, and quota-enforced resource allocation. The platform’s automatic scaling dynamically adjusts the number of application instances based on demand, ensuring that resources are allocated efficiently without manual intervention . Load balancing across Google’s extensive data centers further ensures that application traffic is distributed evenly, maintaining performance under varying load conditions . To govern usage, GAE operates within a quota system, providing free usage up to specified limits and thereby preventing resource overconsumption that could impact service performance . These measures ensure that even free applications benefit from high availability and performance, as GAE's underlying infrastructure optimizes resource usage and prioritizes critical application operations within quota constraints .

Google App Engine (GAE) supports application development in Java and Python by offering a tailored programming model and development tools for each language. For Java, GAE includes a development environment with Eclipse plug-in support, allowing developers to debug applications locally using Google Web Toolkit . It also provides Java interfaces such as Java Data Object (JDO) and Java Persistence API (JPA) through the Data Nucleus Access platform for data management . For Python, developers can utilize frameworks like Django and CherryPy as well as a dedicated webapp environment offered by Google . The Google Web Toolkit in Java and GQL—a SQL-like query language in Python—streamlines data access and manipulation . These tools, along with the SDK for testing and deploying applications, provide comprehensive support for developers in Java and Python environments, fostering efficient application development .

GAE provides several mechanisms for integrating with external resources, which facilitate the development and operations of web applications by extending their capabilities. The Google SDC (Secure Data Connector) allows applications to tunnel through the Internet securely, linking internal sources with external GAE applications for seamless data access . The URL Fetch service enables applications to communicate with other web services via HTTP and HTTPS requests, integrating external data and functionality directly into GAE applications . By providing a URL Fetch service, developers can incorporate data from various online resources, enhancing application functionality with real-time data handling capabilities . These mechanisms, together with the use of Google Accounts for authentication, ensure that GAE applications can efficiently leverage external services and frameworks, aiding in robust web application development .

The Google File System (GFS) is designed to provide efficiency and high performance by managing large-scale data loads typical of Google applications. Key design considerations for GFS include using inexpensive commodity hardware for cost-effectiveness while expecting and managing hardware failures as part of standard operations . GFS organizes data into large blocks of 64MB, significantly larger than traditional systems, to optimize read/write operations for large files . The system adopts a write-once-read-many approach, with operations typically involved in appending data to the end of files, accommodating Google's specific application needs . GFS's architecture involves a single master that maintains metadata and multiple chunk servers that store the actual data. This design streamlines processing and improves fault tolerance by decoupling control from data flow . Additionally, the GFS employs replication strategies and a shadow master to ensure data reliability and consistency across the cluster .

Google App Engine (GAE) employs several security mechanisms to protect data and authenticate users. These include the Secure Data Connector (SDC), which establishes encrypted connections to transmit data securely over the Internet, validating user authorization for resource access . Additionally, GAE applications can utilize Google Accounts for user authentication, leveraging existing Google account credentials for account creation and sign-in . The data store service uses BigTable, which provides secure and distributed data storage with robust access controls . By enforcing a quota system, GAE also ensures that applications consume resources within predefined limits, preventing accidental abuse and ensuring service availability for all users . These security measures collectively ensure data integrity, confidentiality, and proper access control in GAE applications .

BigTable plays a critical role in Google's cloud infrastructure, serving as a scalable database system for managing structured and semi-structured data. Its design supports extremely high read/write rates and efficient data scans over large datasets, making it suitable for use cases like web page storage, per-user data, and geographic information . BigTable integrates with other Google infrastructure components, such as GFS for storing persistent data states and MapReduce for processing data . It uses a distributed architecture with thousands of servers capable of managing terabytes of in-memory data and petabytes of disk-based data, allowing for millions of operations per second . By supporting efficient joins of large datasets and examining data changes over time, BigTable suits applications requiring robust data retrieval and analysis capabilities . Its integration with foundational Google services like Google Search and Google Earth underscores its importance in managing large-scale data operations efficiently .

Google App Engine (GAE) provides automatic scaling and load balancing by utilizing its extensive network of data centers and distributed infrastructure to dynamically allocate resources based on application demand . This infrastructure allows GAE to automatically adjust the number of running application instances in response to traffic load, ensuring optimal resource utilization without manual intervention . For developers, these features offer significant benefits by simplifying application deployment and management—developers are freed from the complexities of capacity planning and server configuration, allowing them to focus on application functionality and user experience . Additionally, the high availability and fault-tolerant design of Google’s data centers ensure that applications remain performant under varying loads, providing a consistent user experience .

MapReduce plays a crucial role in Google's application program development by providing a framework for processing large data sets in parallel across distributed computing resources. It enhances the capabilities of Google App Engine (GAE) by enabling the efficient execution of compute-intensive tasks that involve large-scale data processing . By splitting tasks into smaller sub-tasks and distributing them across multiple nodes, MapReduce facilitates robust data analysis and transformation processes that are integral to applications requiring high-performance computing . This capability is further complemented by GAE's integration with BigTable and GFS, which provide scalable data storage and retrieval . As a result, developers can leverage MapReduce to build applications that efficiently process and analyze vast amounts of data, extending the functional capabilities of applications running on GAE .

Google App Engine (GAE) is supported by several key architectural components that together enable it to provide a robust platform for web application development. These components include the dynamic web serving capability, persistent storage managed through Google's BigTable, automatic scaling and load balancing, application programming interfaces (API) for authentication and communication, and a local development environment that mimics the Google App Engine environment . These features allow users to deploy applications without worrying about hardware maintenance and provide seamless integration with other Google services, ensuring high availability and performance . Additionally, GAE's use of the Google File System (GFS) for storage and MapReduce for app program development, along with supporting Python and Java programming languages, ensures the platform's flexibility and scalability .

You might also like