Abbas Attarwala/Dhawal Shah/Arun Kutty/Ruchi Goswami CS 8803 AIA CS 8803 Project Proposal Ubiquitous Blogging Abbas Attarwala CoC Georgia Institute of Technology MS Student Dhawal Shah CoC Georgia Institute of Technology MS Student Arun Kutty CoC Georiga Institute of Technology MS Student Ruchi Goswami CoC Georgia Institute of Technology MS Student Abbas Attarwala/Dhawal Shah/Arun Kutty/Ruchi Goswami CS 8803 AIA 1.0 Goal: There are four main objectives and goals that we plan to accomplish through the completion of the project. 1.1) Allow bloggers to perform location based blogging using Android devices when bloggers are on the move. 1.2 Allow users to update their Twitter status message on the move. 1.3) Allow users to change their ringtone based on location. 1.4) Provide the functionality as mentioned in 1.1 to 1.3 as a service deployed on Amazon E2/S3 cloud. 2.0 Motivation: Bloggers are constantly on the move. Bloggers attend various events such as Mac Expo World, Tech Events and Microsoft/Google events and blog from these events so that their loyal followers can keep themselves updated with instant information. At this time, there are no viable tools or services that combine together the power of Android devices with Google Blogger. What we propose is to create an application on Android that has presets templates of various blogs that user can choose from. Each template is sophisticated enough to allow users to drop images, videos and text and instantly start blogging right from their Android device. Secondly, users through this project will be able to instantly change their status update on Twitter or their cell phone ringtone based on the location. Users constantly move from one place to another and we will provide a seamless, elegant method of allowing them to change it based on their current location. This will be very convenient when users move from home to office or a meeting where the ringtone should change to sleep or vibration mode automatically and update their Twitter status message accordingly. Cloud computing infrastructure provides on demand service, data availability, scalability and reliability thus proving to be fit for deploying large scale mobile applications and services. 3.0 Background: Cloud computing is the usage of storage capacity, processing power and various other resources remotely mostly via the Internet. It is a way of providing developers a platform to host their products without the need to invest into infrastructure thereby providing cost-benefits. The benefits of deploying Abbas Attarwala/Dhawal Shah/Arun Kutty/Ruchi Goswami CS 8803 AIA applications on the cloud and providing services is that a cloud provides a single point of access for a service and it is accessible from anywhere in the world thereby proving suitable for mobile applications and services which is our focus for this project. Google Blogger is a blog publishing system by Google. Blogs provide commentary and news on a particular subject and can also function as an online diary. Major portion of Android SDK is available as open source to mobile application developers. Android is based on the Linux kernel developed by Google and later the Open Handset Alliance. Android’s popularity skyrocketed because of its solid documentation, references and huge support community on the Internet. It is also popular among researches and students trying to leverage the accelerometer and GPS in the handset with the variety of API such as Open Social, Google Maps and Facebook to create exciting mobile applications. We believe that by using Android for the client, we perhaps stand on the crossroads to market and put forward this application for a wider global audience. 4.0 Proposed Work: The project has two main components: The client (Android device) and the server side (Amazon E2 Cloud). 1) Client Side: The client side is an Android device. The application developed on the client will be a sophisticated yet an easy to use Blogging template. This application will allow the users to select a template, drop text, images or video files and instantly start blogging. The clients is responsible for collecting this information and send it to our server (Amazon E2 cloud). The server will then update the user's profile with the new information. The client in conjunction also sends the location coordinates to the server. The location coordinates aid in determining how the user's ringtone and Twitter status update message will change. 2) Server Side: The server side for this project is 3 tier architecture. 1) Apache Web server, 2) Apache Tomcat (Application Server) and 3) MySQL (database server). This three tier architecture will be deployed on Amazon E2 cloud. Amazon S3 will facilitate for storing per user blog. This data can be of type media, text and location. Abbas Attarwala/Dhawal Shah/Arun Kutty/Ruchi Goswami CS 8803 AIA On the client side, the application will be developed using libraries provided by the Android SDK. In addition to Android SDK, we will be using relevant libraries from Google Code such as (Google Maps, Google Bloggers). The server side will be implemented in Java. More specifically, it will be developed using J2EE as servlets and deployed on Apache Tomcat. The interaction between Apache Tomcat and MySQL server will be performed using JDBC. The three tier architecture initially will be hosted on our local machines and incrementally deployed on Amazon E2 and S3. The servlets will also extract the location coordinates from the GPS and update the online message status accordingly on social networking sites. Figure 1: Top level view of the architecture and the interaction between the client and the server 5.0 Plan of Action: Feb 16- Feb 23 • Study the API documentation and run some programs to get an idea. • The feasibility study of the approaches to be used. • To get acquainted with the Application Server and various technologies like XML/ Abbas Attarwala/Dhawal Shah/Arun Kutty/Ruchi Goswami CS 8803 AIA SOAP. Feb 23-Feb 30 March 1- March 12 March 13- March 20 • Deploy simple application on Tomcat Application server on Amazon E2 cloud. • Write the test cases. • Study Android SDK from www.code.google.com and segregate the relevant libraries for development • Writing a small prototype for middleware • Start coding the application on the android device and implement the various message types that will be sent to the cloud. • Design of Front End. • Write the test case for front end. • Implementation of the Front End. • Iterate the UI design. • Develop the client application for Twitter integrate the mock GPS service to query location coordinates from the emulator. • Integration of the front end and the middle ware • Integration testing Fix the bugs which occurred during Integration Testing. Regression Testing. March 20- March 31 • Develop servlets that offer Software as Service (SOA) that are deployed on Apache Tomcat and the relevant JDBC to integrate the servlets with the SQL server. • Work to improve efficiency and performance Abbas Attarwala/Dhawal Shah/Arun Kutty/Ruchi Goswami CS 8803 AIA • Try to remove bottlenecks if any in the project • Write documentation and slides. Prepare and make the final presentation. Table 1: Tentative Plan of action for implementation of the project. 6.0 Deliverables: a) Final Report b) Demonstration 7.0 Future Work: There are two goals to this project. 1) We will be developing a location based service that utilizes and harness the power of the Android SDK. Consumers consume the software at the backend as a service. This service is available 24/7 as it is deployed on Amazon’s E2 cloud. 2) With this framework as shown in figure 1, we encourage and invite other developers to make use of our architecture to develop and deploy their own location based services applications. This architecture is not only limited to clients using Android devices. As mentioned in the proposal, the client is responsible only to send/receive user's request. All the heavy business logic residing on the application server is responsible for performing the majority and essential duty work. This essentially means, that other developers can develop the client on other mobile devices and connect to our cloud to receive the same set of service as Androids client will receive after the completion of the project. 8.0 Works Cited: 1) http://code.google.com/android/ 2) http://code.google.com/apis/maps/ 3) http://aws.amazon.com/ec2/