123ArticleOnline Logo
Welcome to 123ArticleOnline.com!
ALL >> Technology,-Gadget-and-Science >> View Article

Google App Engine

Profile Picture
By Author: Wisemonkeys
Total Articles: 277
Comment this article
Facebook ShareTwitter ShareGoogle+ ShareTwitter Share

INTRODUCTION
So what is Google App Engine? According Kevin Gibbs which is App Engine Tech Lead, Google App Engine is a system that exposes various pieces of Googles scalable infrastructure so that you can write server-side applications on top of them. Simply this is a platform which allows users to run and host their web applications on Googles infrastructure. These applications are easy to build, easy to maintain and easy to scale whenever traffic and data storage needed. By using Googles App Engine, there are no servers to maintain and no administrators needed. The idea is user just to upload his application and it is ready to serve its own customers. User has a choice either his product to be served by the free domain appspot.com or to allow Google Apps to serve it from domain chosen by the customer. Google also provide the user with the option to limit the access of the application within the members of his own organization or to share it with the rest of the world. The starting packet is free of charge and additional obligation. All the user has to do is to sign up for a free account, and then to develop and publish ...
... his own application. The starting package includes up to 500MB of storage and enough CPU power and bandwidth to Google App Engine lets you run your web applications on Google’s infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it’s ready to serve your users. You can serve your app from your own domain name (such as http://www.example.com/) using Google Apps. Or, you can serve your app using a free name on the appspot.com domain. You can share your application with the world, or limit access to members of your organization. Google App Engine supports apps written in several programming languages. With App Engine’s Java runtime environment, you can build your app using standard Java technologies, including the JVM, Java servlets, and the Java programming language or any other language using a JVM-based interpreter or compiler, such as JavaScript or Ruby. App Engine also features a dedicated Python runtime environment, which includes a fast Python interpreter and the Python standard library. The Java and Python runtime environments are built to ensure that your application runs quickly, securely, and without interference from other apps on the system. With App Engine, you only pay for what you use. There are no set-up costs and no recurring fees. The resources your application uses, such as storage and bandwidth, are measured by the gigabyte, and billed at competitive rates. You control the maximum amounts of resources your app can consume, so it always stays within your budget. App Engine costs nothing to get started. All applications can use up to 500 MB of storage and enough CPU and bandwidth to support an efficient app serving around 5 million page views a month, absolutely free. When you enable billing for your application, your free limits are raised, and you only pay for resources you use above the free levels.

HOW DOES IT WORK?
2.1 The Application Environment: With this new service provided by Google it is really easy to create reliably applications which runs under heavy load and which use large amounts of data. Several key features are included in the environment[1]:

Dynamic web serving, with full support for common web technologies.
Persistent storage with queries, sorting and transactions.
Automatic scaling and load balancing.
APIs for authenticating users and sending email using Google Accounts.
A fully featured local development environment that simulates Google App Engine on user’s computer.
Task queues for performing work outside of the scope of a web request.
Scheduled tasks for triggering events at specified times and regular intervals.
Implementation of Google App Engine applications is done under Python programming language. Full Python language support along with most of the Python standard library comes with standard runtime environment. Currently Python, Java, PHP and Go are the only supported language by Google App Engine, but improvements to support other languages are in progress.

2.2 Service Provided by GAE
google app engine

2.2.1 Google Cloud Computing Services Google App Engine: In the Platform as a Service (PaaS) space Google is a key player. App Engine is a platform to create, store and run applications on Googles servers using development languages as java and python. App Engine includes tools for managing the data store, monitoring the site and its resource consumption, and debugging and logging. A user can serve the app from his own domain name (such as http://www.example.com/) using Google Apps. Or, he can serve his app using a free name on the appspot.com domain. A user can share his application with the world, or limit access to members of organization. App Engine costs nothing to get started. All applications can use up to 1 GB of storage and enough CPU and bandwidth to support an efficient app serving around 5 million page views a month, absolutely free. Applications requiring more storage or bandwidth can purchase which is divided into five buckets: CPU time, bandwidth in, bandwidth out, storage, and outbound email. Google App Engine enables users to build a basic web application very quickly. Configuring and setting up an application is quick and easy. The Google App Engine Architecture provides a new approach without dealing with web servers and load balancers but instead deploying the applications on the Google App Engine cloud by providing instance access and scalability which is showing in the figure 2. The Google App Engine Software Development Kit (SDK) provides Java and Python programming languages. The languages have their own web server application that contains all Google App Engine services on a local computer. The web server also simulates a secure sandbox environment. The Google App Engine SDK has APIs and libraries including the tools to upload applications. The Architecture defines the structure of applications that run on the Google App Engine. 2.3 The Sandbox: All user applications operate in a secure environment. This environment has a limited access to the underlying operating system. Because of these limitations, App Engine is able to distribute applications web requests across various servers, which allows starting and stopping the servers to meet traffic demand. The sand- box separates the application in its own protected and reliable environment which is independent of the operating system, hardware or the physical location of the web server. Here are some of the restrictions which are included in the sandbox environment:

An application can only access other computers on the Internet through the provided URL fetch and email services and APIs. Other computers can only connect to the application by making HTTP (or HTTPS) requests on the standard ports.
An application cannot write to the file system and can read files, but only files uploaded with the application code. The application must use the App Engine datastore for all data that persists between requests.
Application code only runs in response to a web request, and must return response data within 30 seconds. A request handler cannot spawn a sub- process or execute code after the response has been sent.
2.4 The Languages Runtime: Your application can run in one of two runtime environments: the JAVA environment, and the PYTHON environment. Each environment provides standard protocols and common technologies for web application development. 2.4.1 The Java Runtime Environment: You can develop your application for the Java runtime environment using com- mon Java web development tools and API standards. Your app interacts with the environment using the Java Servlet standard, and can use common web application technologies such as Java Server Pages (JSPs). The Java runtime environment uses Java 6. The App Engine Java SDK supports developing apps using either Java 5 or 6. The environment includes the Java SE Runtime Environment (JRE) 6 platform and libraries. The restrictions of the sandbox environment are implemented in the JVM. An app can use any JVM bytecode or library feature, as long as it does not exceed the sandbox restrictions. For instance, bytecode that attempts to open a socket or write to a file will throw a runtime exception. Your app accesses most App Engine services using Java standard APIs. For the App Engine datastore, the Java SDK includes implementations of the Java Data Objects (JDO) and Java Persistence API (JPA) interfaces. Your app can use the Java Mail API to send email messages with the App Engine Mail service. The java.net HTTP APIs access the App Engine URL fetch service. App Engine also includes low-level APIs for its services to implement additional adapters, or to use directly from the application. See the documentation for the datastore, URL fetch, mail, images and Google Accounts APIs. Typically, Java developers use the Java programming language and APIs to implement web applications for the JVM. With the use of JVM-compatible compilers or interpreters, you can also use other languages to develop web applications, such as JavaScript, Ruby, or Scala. 2.4.2 The Python Runtime Environment: With App Engine’s Python runtime environment, you can implement your app using the Python programming language, and run it on an optimized Python interpreter. App Engine includes rich APIs and tools for Python web application development, including a feature rich data modeling API, an easy-to-use web application framework, and tools for managing and accessing your app’s data. You can also take advantage of a wide variety of mature libraries and frameworks for Python web application development, such as Django. The Python runtime environment uses Python version 2.5.2. Additional support for Python 3 is being considered for a future release. The Python environment includes the Python standard library. Of course, not all of the library’s features can run in the sandbox environment. For instance, a call to a method that attempts to open a socket or write to a file will raise an exception. For convenience, several modules in the standard library whose core features are not supported by the runtime environment have been disabled, and code that imports them will raise an error. Application code written for the Python environment must be written exclusively in Python. Extensions written in the C language are not supported. The Python environment provides rich Python APIs for the datastore, Google Accounts, URL fetch, and email services. App Engine also provides a simple Python web application framework called webapp to make it easy to start building applications. You can upload other third-party libraries with your application, as long as they are implemented in pure Python and do not require any unsupported standard library modules.

STORAGE MANAGEMENT
3.1 The Datastore: A powerful distributed data storage service is present by App Engine. A query engine and transactional storing accessible through a simple API, both running on Googles scalable infrastructure is provided with the App Engine datastore. This Python interface includes a data modeling API and similar to Structured Query Language (SQL) called GQL. Using these features developing data dependent applications should not be more difficult than creating it using normal web hosting service. Similar like distributed web servers which grow with the amount of traffic, the distributed datastore grows as well when the amount of data raise. Unlike other traditional datastore, the App Engine datastore supports set of properties in data objects also known as entities. Like any other data filters, data can be extracted from tables using queries filtered by property values. Data modeling interface which can define structure for datastore entities is included in the Python API for the datastore. This data model specifies if property value must be within a given preset range or will assign a default value to it if not given. User application supports as much as needed little structure of data. The Integrity of data is very well guaranteed. Each application can execute multiple datastore operations in a single transaction which either succeed or fail. Concurrency control is very well ensured as well. Up- date to the any single data record occurs if another process is trying to access the same data record in the same time. 3.2 Google Accounts: App Engine supports integrating an app with Google Accounts for user authentication. Your application can allow a user to sign in with a Google account, and access the email address and displayable name associated with the account. Using Google Accounts lets the user start using your application faster, because the user may not need to create a new account. It also saves you the effort of implementing a user account system just for your application. If your application is running under Google Apps, it can use the same features with members of your organization and Google Apps accounts. The Users API can also tell the application whether the current user is a registered administrator for the application. This makes it easy to implement admin-only areas of your site. 3.2.1 URL Fetch: Applications can access resources on the Internet, such as web services or other data, using App Engine’s URL fetch service. The URL fetch service retrieves web resources using the same high-speed Google infrastructure that retrieves web pages for many other Google products. 3.2.2 Mail: Applications can send email messages using App Engine’s mail service. The mail service uses Google infrastructure to send email messages. 3.2.3 Memcache: The Memcache service provides your application with a high performance in-memory key-value cache that is accessible by multiple instances of your application. Mem- cache is useful for data that does not need the persistence and transactional features of the data store, such as temporary data or data copied from the data store to the cache for high speed access. 3.2.4 Image Manipulation: Distributed in-memory data cache in front of or in place of reliable constant storage is often use by high performance scalable web applications for some tasks. Because of this reason Google App Engine supports memory cache service. The Memcache service assures user applications with a high performance in-memory key-value cache that is available by numerous instances of the applications. Data that does not need the persistence and transactional features of the datastore, like for example a temporary data or data copied from the datastore to the cache for high speed access, which makes most of the Memcache service usage. 3.2.5 Scheduled Tasks and Task Queues: An application can perform tasks outside of responding to web requests. Your application can perform these tasks on a schedule that you configure, such as on a daily or hourly basis. Or, the application can perform tasks added to a queue by the application itself, such as a background task created while handling a request. Scheduled tasks are also known as “Cron jobs” handled by the Cron service Task queues are currently released as an experimental feature. At this time, only the Python runtime environment can use task queues. A task queue interface for Java applications will be released in the near future. 3.3 Development Workflow: A web application which emulates all of the App Engine services on the local computer is included in the App Engine software development Kit (SDK). All of the APIs and the libraries available in App Engine are included in it. Simulations of the secure sandbox environment, which includes check for imports of disabled modules or attempt to access not allowed system resources, are supported by the web server. Implementation of the Python SDK is done in pure Python programming language and it is operate on any operating system, including Windows, Mac OS and Linux which supports Python 2.5 release. The Python software package is available on Python web page. The Google App Engine SDK can be obtained from the Google App Engine homepage, as a ZIP file, or as an installer available for Windows and Mac OS X. Tool for uploading the applications to App Engine infrastructure is included in the SDK. Each application consists two types of files, static files and configuration files. Once these files are ready, they can be uploaded by the tool, which also prompts the user about his Google account e-mail and password. Very useful feature is that Google App Engine supports version of the applications. If customer develops new major release of his product, he can upload the new release as a new version, while the old version is still in use. Final tests of the newer release can be done in same time, before it can be switched on. Management of the applications running on App Engine is done through an administration console. This a web-based interface which allows the customer to create new web-based interface which allows the customer to create new applications, configure domain names, change which version of the application is in use, examine access and error logs, and browse an applications datastore.

Wisemonkeys,(https://wisemonkeys.info/) is an LMS platform with unique features like “Ask a question” and get it answers by experts within no time . It’s a mass initiative to spread knowledge worldwide, truly believe in “When we know knowledge is free then why not spread it.” From various sectors to industries, write your heart out and get noticed.

Explore Wisemonkeys now.(https://me.wisemonkeys.info/login)

For the Monkeys | By the Monkeys.

Total Views: 137Word Count: 2876See All articles From Author

Add Comment

Technology, Gadget and Science Articles

1. What Are The Top Features That Make Casino Games Engaging For Players?
Author: josephprince

2. Understanding The Impact Of Dubai’s Real Estate Regulations On Property Management Software
Author: Dynamic Netsoft

3. Digital Media
Author: Tahir Lateef

4. How To Get Started With Quantum App Development: A Step-by-step Guide
Author: adrianevans

5. How To Develop On Demand Laundry App Like Washmen
Author: Deorwine Infotech

6. Innovative Series E Valve Technology Combines Sustainability With High Performance
Author: Pfeiffer Vacuum+Fab Solutions

7. Elevate Your Content Management With Wave
Author: 5Flow

8. How Automotive Supply Chain Software Enhances Operational Efficiency And Reduces Costs
Author: QSS Technosoft

9. How To Choose The Right Pcb Conformal Coating For Your Project
Author: David Ly

10. Technological Gadgets
Author: Tahir Lateef

11. Technology
Author: Tahir Lateef

12. Ultimate Guide To Circuit Card Assembly And Pcb Board Assembly
Author: circuitcardassembly

13. Building High Performance Websites With Progressive Web App Development
Author: Elite_m_commerce

14. Maximising Productivity With Odoo Erp: Drive Business Growth With A Customisable Solution
Author: Alex Forsyth

15. Digital Transformation In Construction: Shaping The Future
Author: QSS Technosoft

Login To Account
Login Email:
Password:
Forgot Password?
New User?
Sign Up Newsletter
Email Address: