Content Synchronization Applications for Aakash Tablets and Remote Educational Institutions
Total Page:16
File Type:pdf, Size:1020Kb
Content Synchronization Applications for Aakash Tablets and Remote Educational Institutions M.Tech. Stage II Report Submitted in partial fulfillment of the requirements for the degree of Master of Technology by Debashee Tarai Roll No : 113050078 under the guidance of Prof. D. B. Phatak Department of Computer Science and Engineering Indian Institute of Technology, Bombay June 2013 Abstract MHRD Sponsored project "Aakash", World's Cheapest Tablet, aims to make e- learning as the primary mode of learning in India. Tablet, being much cheaper than mobile phone with bigger screen size and lighter than laptop, is the most suitable medium to enforce E-learning in education. Aakash android tablets with Linux based operating system, are currently tested and new useful applications are developed at IIT Bombay. This entire project contains two individual applications, Local Synchro- nization and Remote Synchronization Application. Remote Content Synchronization application aims at distributing contents in a net- work efficient manner to remote Institutions distributed at different geographical loca- tions. It makes use of RSYNC tool for content transfer and RSA public private key pair to make the application more secured and fast. This report describes the architecture, implementation details and analyze the performance of the remote synchronization application. Several tests have been conducted and analysis of the obtained results shows that performance of the Remote Synchronization application is nearly three times better then conventional scp based transfer and RSA key pair reduce the total transfer time to a great extent. Local Content Synchronization application has been developed for Aakash tablets inorder to synchronize contents between students and teachers, providing the users an interface to submit files, download files and view the details of all submissions and sharing at real time. It offers the flexibility of storing the files according to user specified path and configuring IP Address as required. The work has been extended with Moodle database so that Student{Course{Teacher mapping can directly be done on the existing data. Acknowledgments Foremost, I would like to express my sincere gratitude to my advisor, Prof. D. B. Phatak for selecting me as a part of his valuable project, for motivating me to do better and for spending sufficient amount of time to instruct and encourage me with insightful comments on my project work, in-spite of his busy schedule. My sincere thanks also goes to Prof. Sridhar Iyer, who was my Internal examiner in satge 1 presentation, for his valuable suggestions and describing the appropriate approach for my project, guiding me in the right path. Furthermore, I would like to give my gratitude to Mr. Nagesh Karmali and Ms. Firuza Aibara for their guidance and help, staring from the beginning of the project to writing reports. Secondly, I would like to express my appreciation to all my friends working in several Android related Projects, who cooperated and guided me to complete this project. I thank my fellow labmates, for their discussions with me, suggestions and encouragements. Last but not the least, I would like to thank my family: my Mother, Nalini, my brother Bharadwaj and my friend Gopalakrishnan, for their unconditional support, encouragement and care throughout my life. Without their support, it would have been impossible for me to finish my masters education seamlessly. 1 Contents 1 Introduction 5 1.1 Synchronization of data and content . .5 1.2 Application for Content Synchronization . .7 1.3 RSA Key based protection . .8 1.4 Motivation . .8 2 Literature Review 9 2.1 Survey on Various synchronization tools . .9 2.1.1 RSYNC as sync. tool . 10 12 2.1.2 Study on DropBox as sync. software . 15 2.1.3 SyncBreeze File Synchronization Tool . 15 2.2 Study on E-learning through Mobile Devices . 17 3 Android Application Architecture Framework 18 3.1 Introduction and overview of Android . 19 3.2 A brief description on Dalvik VM . 20 3.3 Android Application Framework . 20 3.4 Android Application Functionalities . 24 4 Proposed Architecture 25 4.1 Push-Pull Framework for Content Forwarding . 25 4.1.1 Content Forwarding in Local Synchronization Application . 26 4.1.2 Content Forwarding in Remote Synchronization Application . 27 4.2 Detail Architectures of Local and Remote Synchronization Application . 28 4.2.1 Local Synchronization Application . 28 4.2.2 Remote Synchronization Application . 32 5 Implementation 37 5.1 Implementation details of Remote Synchronization . 37 5.2 Implementation of Local Synchronization Application . 47 6 Experiments and Analysis of Results 53 7 Conclusion and Future Work 60 2 List of Figures 1.1 Content Synchronization Scenario . .6 2.1 Rsync Algorithm Description with an example . 11 2.2 Rsync's network protocol . 13 3.1 Android System Architecture . 19 3.2 Life cycle of Activity . 21 3.3 Android Application Framework . 21 3.4 Application Architecture . 23 4.1 Pull Mechanism . 25 4.2 Push Mechanism . 26 4.3 Local Sync. Content Frwd Mechanism . 26 4.4 Remote Sync Content Frwd Mechanism . 27 4.5 Overview of Local Synchronization . 29 4.6 Update File: Details Steps . 30 4.7 Submit File: Detail steps . 31 4.8 Global view of Remote Sync . 33 4.9 Flow Chart for Remote Synchronization Application . 35 5.1 The main page . 39 5.2 Page containing options for faculty . 40 5.3 Faculty Registration . 41 5.4 Faculty adding courses . 41 5.5 Modifying existing Fields . 42 5.6 Login to View and Download the shared files . 43 5.7 Login to View and Download the shared files . 44 5.8 CASE 1 : Error Message when invalid inputs . 45 5.9 CASE 2 : Error Message when Empty fields entered . 45 5.10 CASE 3 : Success Message when values Updated . 46 5.11 CASE 4 : Success Message when user Registered . 46 5.12 Login screen . 48 5.13 Setting Screen . 48 5.14 User Validation from Server's Database . 49 5.15 Main Screen . 49 5.16 Screen after Clicking Submit button . 50 5.17 Screen showing File Browser with UP button . 50 5.18 Screen after selecting the file to send file . 50 5.19 Page Showing several Options for downloading appropriate file . 51 3 5.20 Page Displaying Last Transactions of the logged in User . 52 6.1 Results of various size of file transfer to various user sets . 54 6.2 Results of Retransmission time taken for the user sets of 75 and 100 . 55 6.3 Comparison of File Transfer time for various User sets . 57 6.4 File transfer via SCP vs Sync Application . 58 6.5 Retransmission time comparision . 58 6.6 Performance Comparison between Application, Rsync and SCP . 59 4 Chapter 1 Introduction E-Learning has the potential to support and enhance the traditional learning system and it has already become an integral part of learning. It makes the use of Internet to improve the qual- ity of learning by providing access to resources as well as educational contents and services from remote organizations in a collaborative manner[1],[2]. In educational environment Video lectures, pdfs, ppts, ebooks, study materials etc are the typical examples of content which are needed to be shared. An improved learning process needs techniques and tools to present, interact and share knowledge from variety of resources with others[3] . This can be possible if there is a automatic mechanism to share and distribute contents in between teachers and students inside an institution as well as in between institutions[4] . Content Synchronization is a data distribution technology, in which selected contents are automatically delivered from senders to receivers in real time or at prescribed intervals[5] . 1.1 Synchronization of data and content Synchronization vs Backup[6],[7] Synchronization is a bidirectional process. It ensures that two parties involves in the process, remain synchronized to each other while user may change files on both the sides. This is achieved by copying changes that have been made on one side to the other side and vice versa. As a result, both the parties involved in synchronization, end up with containing the mirror copy of the shared content. Backup on the other hand, is one-way synchronization, that is, changes those have been made on one side are propagated to the other side but not vice versa. In this case the receives are least interactive and receive only the contents forwarded by the sender. Educational environment needs both synchronization and backup mechanism depending on the situation they are being used. Figure 1.1 represents a generalized scenario for local and remote synchronization process. 5 Content synchronization means to keep data in two or more machines up-to-date so that each shared repository contains identical information which is essential in interactive student teacher communication inside the institution, on the other hand backup process is needed to share contents between institutions where the process is some what less interactive and one to many communica- tion happens transferring huge volume of data. Figure 1.1: Content Synchronization Scenario There are several important points in this context described as follows : Implementing file synchronization can take many forms and can address several shortcomings found with other content protection schemes Synchronization implies an automatic process of updation of data in all connected devices. In presence of distributed database, the ability to keep remote machines synchronized by routinely copying the entire or subsets of the whole content to them in the network is called Content Synchronization among remote machines. Synchronization of Data and Content offers the ability to preserve multiple copies of files across various educational and IT industries, helping to keep updated files available to students, teachers and employees under any circumstance. Regardless of whether the files are spreadsheets, documents, e-mail or contain other infor- mational elements classes based on these data, businesses related to those documents cannot operate without ready access to the data in those files creating a real time need of information and data synchronization in day to day life.