Golf ScoreCard w/ PhoneGap (aka Cordova) and jQuery mobile phone application
Eugene Bell – M.Sc Cloud Computing
Research Proposal
Investigation of the development lifecycle of a SAAS application using RAD technology and using PAAS/IAAS to host said Service.
By Eugene Bell
1.2 Research Project Title Investigation of the development lifecycle of a SAAS application using RAD technology and using PAAS/IAAS to host said Service.
1.3 Research Area This project will develop an application that will allow us to investigate the development lifecycle of a SAAS application as well as the Rapid Application Development (RAD) methodology and its phases. It will also allow us to research and use RAD technologies like Spring Roo and Grails to develop the application. The SAAS application will need to be hosted in the Cloud, so a comparison of deploying to PAAS and IAAS will be carried out. This project will allow us to conclude as to why we would develop this application following a SAAS lifecycle, using RAD to create the service, and operating it in the Cloud environment.
1.4 Research Objectives The aim of this research project is to gain a deeper understanding of the SAAS lifecycle and RAD from both a practical and methodology standpoint. The project will be a practical research project and will be using the SAAS application as a real world example to prove that the combination of the SAAS lifecycle and applying RAD technologies and methodology will prove that this combination is valid in producing a Cloud product.
1.5 Actual Research The Application will allow us to look at the development lifecycle of a SAAS application that will be developed using RAD technologies and methodology. By developing this application, we will gain a better understanding of the processes and techniques required to deliver an application following the SAAS development lifecycle. These steps will include product concepts, the type of platform to deploy to e.g. Traditional or Cloud, the planning phase, subscribing to the Cloud services, development of the application and the running of the application once developed. By following the RAD methodology, we will be researching an important way of delivering software where rapid delivery to market is critical. We will research and compare IAAS offering, including Amazon AWS, Rack Space and others in the IAAS area including running an OpenStack environment. We will also look at researching and installing the PAAS Cloud Foundry micro on the selected IAAS/OpenStack, which will allow us to run our SAAS product.
The Application will be a Golf management service, allowing the user to record and update their scorecard for any course they play that is configured within the service. This application will have a management component, which is hosted in the cloud as a SAAS component (Spring ROO). It will also have a client component which will allow a user (i.e. Golfer) to update their scorecard as they play, this client component will run on Android enabled devices. There will also be a management GUI for users (Grails). Users will be able to subscribe/register to the service from this interface. The user will be able to view and update their records. The Golf Admin user will be able to manage the users in their groups. The admin user will be able to manage Golf Users and Golf Clubs/Societies.
The RAD methodology (Business Modelling, Data Modelling, Process Modelling, Application Generation and Testing and Turn over) will be applied to the development part of the SAAS lifecycle. RAD is a software development methodology where structured techniques and prototyping are used to compile the requirements and design the application. The process goes from the requirements phase to the creation of data and processes to test and release. CloudFoundry gives us a platform for deploying, and running our SAAS application using the Spring Framework and Groovy & Grails or Spring ROO. The Micro CloudFoundry edition will allow us to have a complete version of the Cloud Foundry that runs in a virtual machine(s). This will allow us to select our IAAS provider to install this PAAS product. For example Amazon EC2 offers us an IAAS product that will allow us to install our preferred PAAS to enable us to deliver our SAAS product.
1.6 Research Questions This research will allow us to look at the SAAS lifecycle and RAD to attempt to answer some important questions such as:
Why we would develop this application following a SAAS lifecycle? Why use RAD to create the service? For a Cloud Service Provider what is the strategy to deliver the service? Why would we operate it in a Cloud environment? Does RAD make development faster in a Cloud deployment? How do RAD technologies fit into the SAAS development lifecycle? How easy is it to deploy this SAAS application? How does PAAS/IAAS influence the software architecture and will the product scale as a result? Was the deployment time improved and does it reduce time to market over traditional methods and technologies? What is the real development lifecycle of a SAAS product? Is the system truly elastic?
1.7 Research Deliverables
The deliverables from the Research Project are:
Source Code for SAAS component. Source Code for mobile device component. Binary files for SAAS component (WAR) and mobile device component (Android). Installer for IAAS (Cloud Foundry micro). Installation and setup instructions for SAAS, PAAS and IAAS layers. Access to Android application through Market. A complete end-to-end service that users can register with and use, which is hosted entirely in a Cloud environment. A report detailing how the development lifecycle worked in delivering the product as a SAAS application. Conclusions and Findings from using RAD and hosting the service through the Cloud including the setup and configuration of OpenStack/Cloudfoundry. Conclusion and Finding on the Development Lifecycle of a SAAS application.