Google App Engine Mini Project

20
A AIT Report On GOOGLE APP E NGINE Submitted By KAUSTUBH DEWOOLKAR 081P013 GAURAV BHOLE 081P018 Under the guidance of Prof. Shiburaj Pappu Bachelor of Engineering [B. E. Computer Engineering] [2013 - 2014] at Department of Computer Engineering Rizvi College of Engineering New Rizvi Educational Complex, Off-Carter Road, Bandra(w), Mumbai - 400050 Affiliated to University of Mumbai

Transcript of Google App Engine Mini Project

AAIT Report On

GOOGLE APP ENGINE

Submitted By

KAUSTUBH DEWOOLKAR 081P013GAURAV BHOLE 081P018

Under the guidance of

Prof. Shiburaj Pappu

Bachelor of Engineering[B. E. Computer Engineering]

[2013 - 2014]at

Department of Computer Engineering

Rizvi College of EngineeringNew Rizvi Educational Complex, Off-Carter Road,

Bandra(w), Mumbai - 400050

Affiliated to

University of Mumbai

CERTIFICATEThis is to certify that

KAUSTUBH DEWOOLKARGAURAV BHOLE

of B.E. Computer Engineering have successfully completed AIT Mini project on “Google App En-gine ”, under my supervision at Rizvi College of Engineering, Mumbai under the University of Mumbai

Prof. Shiburaj Pappu Prof.Dinesh B. DeoreInternal Project Guide HOD, Computer Department

Internal Examiner External Examiner

Date:

Acknowledgement

I am profoundly grateful to Prof. Shiburaj Pappu for his expert guidance and continuous encour-agement throughout to see that this project rights its target since its commencement to its completion.

I would like to express deepest appreciation towards Dr. Varsha Shah, Principal RCOE, Mumbai andProf. Dinesh B. Deore, HoD Computer Branch whose invaluable guidance supported me in completingthis project.

At last I must express my sincere heartfelt gratitude to all the staff members of Computer Departmentwho helped me directly or indirectly during this course of work.

KAUSTUBH DEWOOLKAR

GAURAV BHOLE

ABSTRACT

Google App Engine (often referred to as GAE or simply App Engine) is a platform as a service (PaaS)cloud computing platform for developing and hosting web applications in Google-managed data centers.Applications are sandboxed and run across multiple servers.[1] App Engine offers automatic scaling forweb applicationsas the number of requests increases for an application, App Engine automatically al-locates more resources for the web application to handle the additional demand. Google App Engine isfree up to a certain level of consumed resources. Fees are charged for additional storage, bandwidth, orinstance hours required by the application. It was first released as a preview version in April 2008, andcame out of preview in September 2011 .

Keywords : App,GAE,Google.

Contents

1 Introduction 11.1 Motivation and Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Literature Survey 22.1 Paper1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.2.1 Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2.2 Reliability and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2.3 Security Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3.1 Violation of Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3.2 Forget Porting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3.3 It isnt Free! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Proposed Work 43.1 Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.2 Work Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4 SOFTWARE LANGUAGES 54.1 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54.2 CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

5 Project Design 65.1 Working and Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.3 Uploading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85.4 Registering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

6 Test Cases, Project Time Line & Task Distribution 106.1 Test Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6.1.1 Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106.1.2 Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6.2 Project Time Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

7 Conclusion 117.1 Future Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

References 12

APPENDICES 12

A Project Hosting 13

List of Figures

5.1 Google App Engine Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.3 Google App Engine Launcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85.4 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95.5 App Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95.6 Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Chapter 1 Introduction

Chapter 1

Introduction

Google App Engine gives you access to the same building blocks that Google uses for its own applica-tions, making it easier to build an application that runs reliably, even under heavy load and with largeamounts of data. The development environment includes the following features:

• Dynamic webserving, with full support of common web technologies.

• Persistent storage (powered by Bigtable and GFS with queries, sorting, and transactions).

• Automatic scaling and load balancing.

• Google APIs for authenticating users and sending email.

• Fully featured local development environment.

1.1 Motivation and Problem Statement

To put it simply, to remove the burden of being a system administrator from the developer. Using aLAMP stack involves choosing a distribution of Linux, choosing of the kernel version, etc., configuringPHP and an Apache web server. There is also the need to run and manage a database server (MySQLor otherwise) and other aspects of a running system (monitoring, load-balancing, reporting). The listcontinues with managing user authentication, applying software patches and performing upgrades, eachof 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 developersare trying to create for their customers. App Engine attempts to handle these complexities to let youfocus on your app(s). An app running on App Engine should be easy to build, manage, and scale.

Rizvi College of Engineering, Bandra, Mumbai. 1

Chapter 2 Literature Survey

Chapter 2

Literature Survey

2.1 Paper1

Google App Engine made a splash when it launched in the spring of 2008. It was different from mostother cloud systems back in the day because it was neither IaaS (Infrastructure-as-a-Service, e.g., Ama-zon EC2) nor SaaS (Software-as-a-Service, e.g., Salesforce). It was something in-between and usheredin 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 infras-tructure as a hosting platform.

The development-to-release cycle is minimized because high-level services that developers wouldnormally have to build are already available via an App Engine API. A development server is provided tolet users test their code (with certain limitations) before running in production. And finally, deploymentis simplified as Google handles that all. Outside of setting up an account and billing structure, thereis no machine setup or administration as Google takes care of all logistics there too. Even as yourapp is running with fluctuating network traffic, the App Engine system auto-scales up to allocate moreinstances of your app as needed, then similarly releases resources when no longer needed.

A web developer can now use Googles 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 amachine or web hosting service that could host a LAMP stack, administer each of the L, A, M, and Pcomponents, and somehow made the app globally accessible. Moreover, developers were also generallyresponsible for the load-balancing, monitoring, and reporting of their systems, and to reiterate one ofthe most difficult and expensive things to build yourself: scaling. All of these are taken care of by AppEngine.

2.2 Advantages

2.2.1 Scalability

This is one of the deciding factors for the success of any application. When you are using Google AppEngine you will make use of technologies such as BigTable and GFS which are used by Google to createits own apps. The App Engine has an automatic scaling feature that requires you to merely write theapplication code and Google takes care of testing. The App Engine can scale to meet your requirementsirrespective of the number of users or the amount of data that the application stores thus ensuring youcomplete stability.

Rizvi College of Engineering, Bandra, Mumbai. 2

Chapter 2 Literature Survey

2.2.2 Reliability and Performance

When we talk about reliability and performance of the web applications we need to keep in mind theunmatched reputation of Google as one of the leading brand names in the world cutting across Industries.Over the last decade and half the company has set new benchmarks with the reliability and excellentperformance of its products and services. The Google App Engine offers you the same performance andreliability as any other product of Google.

2.2.3 Security Infrastructure

Google has perhaps the most secured Internet infrastructure across the world. The code and the appli-cation data are store in highly secured servers that prevent any kind of unauthorized access to them.With hundreds of server spread across the globe you can trust your app to be usable to your customerswhenever you want it. The privacy and security policies of Google shall apply to all the applications thatare built using this infrastructure.

2.3 Disadvantages

2.3.1 Violation of Policies

When you upload an application on Google you have to agree to a long page of privacy policies. Howmany developers do actually read these policies and even if they read how many can really make outfrom what they read. Even if unknowingly you violate on of the policies of Google your applicationstands to be banned. In the past many users have unknowingly violated the polices of Google AdSenseand had to lose all their revenue at one go. Here your entire application stands to be banned if you violateany of the policies.

2.3.2 Forget Porting

Application developers have all these while been used to porting their applications between differentplatforms. But with Google App Engine you can forget porting as most of the infrastructure that you aregoing to use is proprietary and thus all your data will be locked into BigTable that isnt how traditionalrelational databases worked and allows you to port the application from one technology to another. Soif you plan to opt out of Google in the future you will have to create your application from the scratch.

2.3.3 It isnt Free!

Though Google is advertising App Engine as a free platform it isnt free if you are planning to developan advanced application as you will need to purchase resources. Also you will be at the complete mercyof Googles future pricing plans if you join the network.

Rizvi College of Engineering, Bandra, Mumbai. 3

Chapter 3 Proposed Work

Chapter 3

Proposed Work

3.1 Proposal

The following is our proposed system, Our project is contained with HTML page integrated withstylesheet,with player information,css header and fonts.

3.2 Work Flow

It uses CSS inside or integrated inside the html page.

Rizvi College of Engineering, Bandra, Mumbai. 4

Chapter 4 SOFTWARE LANGUAGES

Chapter 4

SOFTWARE LANGUAGES

4.1 HTML

HTML markup consists of several key components, including tags (and their attributes), character-baseddata types, character references and entity references. Another important component is the documenttype declaration, which triggers standards mode rendering. HTML elements form the building blocksof all websites. HTML allows images and objects to be embedded and can be used to create interactiveforms. It provides a means to create structured documents by denoting structural semantics for text suchas headings, paragraphs, lists, links, quotes and other items. It can embed scripts written in languagessuch as JavaScript which affect the behavior of HTML web pages.

4.2 CSS

Cascading Style Sheets (CSS) is a style sheet language used for describing the look and formatting ofa document written in a markup language. While most often used to style web pages and interfaceswritten in HTML and XHTML, the language can be applied to any kind of XML document, includingplain XML, SVG and XUL. CSS is a cornerstone specification of the web and almost all web pagesuse CSS style sheets to describe their presentation. CSS can also allow the same markup page to bepresented in different styles for different rendering methods, such as on-screen, in print, by voice (whenread out by a speech-based browser or screen reader) and on Braille-based, tactile devices. It can alsobe used to allow the web page to display differently depending on the screen size or device on which itis being viewed.

Rizvi College of Engineering, Bandra, Mumbai. 5

Chapter 5 Project Design

Chapter 5

Project Design

5.1 Working and Installation

Google App Engine applications can be written in the PHP, Java, Python or Go programming languages.This tutorial covers PHP. If you would prefer to use Java, Python or Go to build your applications,see the Java,Python 2.7 or Go guides. In this tutorial, you will learn how to: build an App Engineapplication using PHP integrate an App Engine application with Google Accounts for user authenticationuse Google Cloud SQL to store your data upload your app to App Engine By the end of the tutorial,you will have implemented a working application, a simple guest book that lets users post messages toa public message board.

Figure 5.1: Google App Engine Setup

Rizvi College of Engineering, Bandra, Mumbai. 6

Chapter 5 Project Design

5.2 Example

Figure 5.2: Example

Rizvi College of Engineering, Bandra, Mumbai. 7

Chapter 5 Project Design

5.3 Uploading

You create and manage applications in App Engine using the Administration Console. Once youhave registered an application ID for your application, you upload it to your website usingappcfg.py,a command-line tool provided in the SDK.

5.4 Registering

Sign in to App Engine using your Google account. If you do not have a Google account, you cancreate a Google account with an email address and password. To create a new application, click theCreate an Application button. Follow the instructions to register an application ID, a name unique to thisapplication. If you elect to use the free appspot.com domain name, the full URL for the application willbe http://yourappid.appspot.com/. You can also purchase a top-level domain name for your app, or useone that you have already registered. Edit the app.yaml file, then change the value of the application:setting from helloworld to your registered application ID. If your application uses Google Cloud SQLfor data storage (none of the examples in the PHP Getting Started tutorial do) then you must also requesta Google Cloud SQL instance.

Figure 5.3: Google App Engine Launcher

Rizvi College of Engineering, Bandra, Mumbai. 8

Chapter 5 Project Design

Open the Google Sdk App and run the file.

Figure 5.4: Deployment

Browse the file and check for any errors,if works fine then click deploy and enter your google user-name and password.Your will see your file running check for the link.

Figure 5.5: App Running

Figure 5.6: Main

Rizvi College of Engineering, Bandra, Mumbai. 9

Chapter 6 Test Cases, Project Time Line & Task Distribution

Chapter 6

Test Cases, Project Time Line & TaskDistribution

6.1 Test Cases

6.1.1 Coding

Kaustubh Dewoolkar & Gaurav Bhole.

6.1.2 Report

Kaustubh Dewoolkar & Gaurav Bhole.

6.2 Project Time Line

The following table shows the expected flow of work for the accomplishment of the required result.

Table 6.1: Project Time Line

No. Describtion Duration Status

1 Learning web page programming 1 day Done2 Implementing coding 1 day Done3 Testing, debugging and error removal 1 day Done4 Preparation of final report 2 day Done

Rizvi College of Engineering, Bandra, Mumbai. 10

Chapter 7 Conclusion

Chapter 7

Conclusion

7.1 Future Scope

By the realization of our project one can learn many aspects of a web based application. This will give thegood knowledge of designing a web page, working with databse and developing useful application. Onewill also learn the webpage development strategies and various programming techniques for interactionvarious softwares.

Rizvi College of Engineering, Bandra, Mumbai. 11

References

References

[1] https://developers.google.com/appengine/docs/php/gettingstarted/introduction

[2] https://developers.google.com/appengine

Rizvi College of Engineering, Bandra, Mumbai. 12

Project Hosting

Appendix A

Project Hosting

The report is shared at Academia. The complete report is uploaded here for future reference.

Project Link : https://code.google.com/p/proquiz

QR CODE:

Rizvi College of Engineering, Bandra, Mumbai. 13