GOOGLE APP ENGINE ABSTRACT Google App Engine was first released as a beta version in April 2008. It is a platform for developing and hosting web applications in Google-managed data centers. Google’s App Engine opens Google’s production to any person in the world at no charge. Much like Google gives us all free email with an amazing amount of long term storage, we now have the ability to run the software that we write in Google’s data centers.Google App Engine is cloud computing technology.Google App Engine is software that facilitates the user to run his web applications on Google infrastructure. It is more reliable because failure of any server will not affect either the performance of the end user or the service of the Google.It virtualizes applications across multiple servers and data centers. Table Of Content Introduction Cloud Computing Advantages of Cloud computing Era of Google App Engine About Google App Engine Languages Used Services Applications Future Scope References Chapter 1 Introduction About Google App Engine 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 users. 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 systems. App Engine manages infrastructure for users. It provides a development platform for users to create apps,and it leverages the infrastructure as a hosting platform. Before explaining google app engine in detail we are explaining Cloud computing in brief Chapter 1.1 CLOUD COMPUTING: Cloud Computing is a term that is often bandied about the web these days and often attributed to different things. It is a platform, and even an operating system. Some even link it to such concepts as grid computing which is a way of taking many different computers and linking them together to form one very big computer. However, this may not be the complete definition. As a developer, we need a more detailed definition. We may be outsourcing actual hardware, application development and hosting, or only wish to run online software from other providers. In other words, what we outsource to cloud vendors may and will be different from what other people or companies do every situation is different, as are the cloud service levels. Several reasons drive companies to investigate or adopt cloud computing services, with the primary reason being cost. Small companies can't afford a large amount of hardware nor the staff that goes along with it. Large companies may find the costs of maintaining and managing their own datacenters to be prohibitive, or perhaps they have made a significant investment only to discover that much of their resources idling away. Now explaining what Google App Engine is, and even more importantly, what it isn't.here we’ll explain how App Engine came into picture and what problems it aimed to solve,also discussing which cloud service level it operates at. Describing how to use App Engine as well as what are it's services & APIs, discussing what types of apps it's suited for. Chapter 2 Chapter 2.1 Era of Google App Engine Google App Engine made a splash when it launched in the spring of 2008. It was different from most other cloud systems backin the day because it was neither IaaS (Infrastructure-as-a-Service, e.g., Amazon EC2) nor SaaS (Software-as-a-Service, e.g., Salesforce). It was something in-between and ushered in the era of PaaS (Platform-as-a-Service). Instead of a fixed application (SaaS) or raw hardware (IaaS),App Engine managed your infrastructure for users. Furthermore, it provided a development platform users get to create apps, not used the one provided by the cloud vendor, and it leveraged the infrastructure as a hosting platform. Chapter 2.2 What is App Engine? The development-to-release cycle is minimized because high-level services that developers would normally have to build are already available via an App Engine API. A development server is provided to let users test their code (with certain limitations) before running in production. And finally deployment is simplified as Google handles that all. Outside of setting up an account and billing structure, there is no machine setup or administration as Google takes care of all logistics there too. Even as your app is running with fluctuating network traffic, the App Engine system auto-scales up to allocate more instances of your app as needed, then similarly releases resources when no longer needed.A web developer can now use Google's infrastructure, finely tuned for speed and massive scaling, instead of trying to build it themselves. In the past, developers would create an app, generally need a machine or web hosting service that could host a LAMP stack, administer each of the "L", "A", "M", and "P" components, and somehow made the app globally accessible. Moreover, developers were also generally responsible for the load-balancing, monitoring, and reporting of their systems, and to reiterate one of the most difficult and expensive things to build scaling. All of these are taken care of by App Engine. Chapter 3 Why App Engine Exist? By now, you have a good idea as to why Google developed App Engine. To put it simply, to remove the burden of being a system administrator from the developer. Using a LAMP stack involves choosing a distribution of Linux, choosing of the kernel version, etc., configuring PHP and an Apache web server. There is also the need to run and manage a database server (MySQL or otherwise) and other aspects of a running system (monitoring, load-balancing, reporting). The list continues with managing user authentication, applying software patches and performing upgrades, each of which may break your app, bringing even more headaches for developers/sysadmins. Other than the actual application, everything else is nearly orthogonal to the solution that developers are trying to create for their customers. App Engine attempts to handle these complexities to let you focus on your app(s). An app running on App Engine should be easy to build, manage, and scale. Chapter 3.1 What is’nt App Engine? Some users confuse Google App Engine with Amazon's EC2 service. The problem is that this is an apples to oranges comparison. Both operate at different cloud service levels, and each have their strengths and minuses. With App Engine, you only need to worry about your application and let Google take care of hosting and running it for you. With EC2, you're responsible for the app, but also its database server, web server, operating system, monitoring, load-balancing, upgrades, etc. This is the reason why typically, the costs for IaaS services run lower than that of PaaS services because with PaaS, you're "outsourcing" more work/responsibility. Chapter 3.3 Language Runtime App Engine lets engineers use familiar development tools and environments to build their applications. This includes the Python, Java, and Go languages. Because App Engine supports Java, a host of other languages which run on the Java Virtual Machine (JVM) are also supported... these include (but are not limited to): Scala, Ruby (JRuby), Groovy, PHP (Quercus), JavaScript (Rhino), and Python (Jython). (If you're curious about the Jython support (running Python on the Java runtime vs. the pure Python runtime), it's a great way to leverage a legacy Java codebase while developing new code in Python as Jython code can work with both Python and Java objects.) Sandbox Security is gravely important. Developers (typically) would not be interested in letting other applications/users get any kind of access to their application code or data. To ensure this, all App Engine applications run in a restricted environment known as a sandbox. Chapter 4 Services "To make useful apps with!" You want to use outbound sockets to talk to other processes, and perhaps you may want inbound sockets to listen for service requests.That's what the e-mail and XMPP APIs are for.Google provides both its traditional NoSQL scalable datastore or access to the relational MySQL-compatible Google Cloud SQL service.The list of all the services that are available to users changes quite often as new APIs are created. At the time of this writing, the following services/APIs are available to developers: App Identity Appstats Backend XMPP Cloud Storage Conversion Datastore (Full-Text) Search Images Mail Memcache Namespaces/Multitenancy NDB (new database) Auth (authorization) Pipeline Prospective Search Chapter 4.1 Advantages Of GAE A pre-configured architecture that makes app development easier (once you know the concept) Automatic scalability Multi-site replication as the default RDBMS or NoSQL databases available Disadvantages Of GAE Vendor dependency - relatively hard to port applications to other platforms Only three languages supported out of the box (Java, Python and Go) Chapter 4.2 Application Step 1: Select the File menu > New > Web Application Project (If you do not see this menu option, select the Window menu > Reset Perspective..., click OK, then try the File menu again.) Alternatively, click the New Web Application Project button on the toolbar. Click 'Next' Unselect 'Use option.(note). Google The following screen appears. Web Toolkit' Step 2: 2)The "Create a Web Application Project" wizard opens. For "Project name," enter a name for your project, such as 'CodeLabEx0' for the project described in the Code Lab Exercise 0. For "Package," enter an appropriate package name, such as com.google.appengine.codelab. Step 3: Run Application Open a browser instance and type 'http://localhost:8888/' to launch application deployed. Step 4: Uploading Chapter 5 Future Scope GAE is a premium service, providing massive scalability for low effort. That's difficult to get elsewhere in the market. GAE serves more than 1.5 billion pages views a day across all applications. They will be focusing on supporting other languages in AppEngine (I would bet on Java being the next one available) rather than extending Python frameworks support. References cloud.google.com/appengine .wikipedia.org/wiki/Google_App_Engine www.softlayer.com/Cloud/Asia-Pacific