Kashif Khan; Asar Jan , pp. 121. COM/School of Computing, 2011.
Context: Google App Engine (GAE) is a cloud computing platform, which allows developers to develop and deploy web based applications on it. It is composed of hundreds of thousands of commodity servers, distributed globally. GAE scales computing resources automatically, and developers only pay for the amount of time their application uses GAE resources. It imposes some restrictions and limitations on the design and development of applications such as execution time limit, lack of global transactions, way of communication with other applications etc.
Objectives: In this study, we evaluate Google App Engine from enterprise application development point of view. We analyzed the behavior and architecture of Google App Engine to evaluate its feasibility for enterprise application development and compared it with Amazon Elastic Compute 2 (Amazon cloud service). We also studied Google App Engine storage system, Bigtable, which is a distributed non-SQL based data store.
Methods: In this research study, we performed a literature study of the related cloud computing technologies and then a prototype enterprise application was developed for experiment.
Results: Our literature study showed that Google App Engine has some limitations and restrictions on the development tools and environment. It does not provide support for global transaction, lacks strict consistency mechanisms, and provides highly virtualized and abstract view of the platform to the developer. Despite these limitations, the literature study and our experiment showed that Google App Engine is suited for applications with high read, searching and large write-stream operations. Google App Engine showed consistent performance as compared to Amazon Elastic Compute 2 in our experiment.
Conclusions: We conclude that Google App Engine is a scalable platform while maintaining consistent performance but has some limitations due to its architecture and restrictions imposed on the development tools and environment. These limitations make it non-feasible for some types of enterprise applications, such as applications with high and intensive data computation requirement. But in other cases, such as simple data management and non-transactional applications, Google App Engine is an attractive platform.