This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
In todays world, across all levels of organisation one of the most common and critical requirement is storing, sharing and maintaining large volume of data. Most of these organisations use third party servers i.e. .the cloud to suffice such needs. Some examples of such organisations providing storage using cloud for customers are Amazon AWS, Rackspace Opencloud etc. All of these provide Infrastructure as a Service (IaaS) of the cloud to the organizations or to users who would like to store their data. The introduction to smart phones now allows people to do most of their work via the phones. Imagine the crucial aspect of storing, sharing and maintaining data to be done via phones! In this paper we propose an application for the Android Operating System which will be very helpful to the existing users of such third party servers to store and manage data, also execute administrative functionalities with the cloud using this application.
Keywords: administrator, account, android, authentication, container, cloud, object, user, security
In today's world across all levels of organisations there is a tremendous growth in data. With this the requirements of storing data is also increasing. Storing data on local storage incurs a lot of cost and time to the organisation. Storing data on the cloud is good option for the organisations. Some benefits of using the cloud as compared to local storage are:
1. No Investment: - Pay as per the space used on the cloud.
2. Easy to access anytime anywhere: - With the availability of internet cloud can be accessed anytime anywhere.
3. Reduction in the hardware resources: - No need to set up huge data center to store the data.
The introduction to smart phones now allows people to do most of their work via the phones. This gives rise to the need of making the data available to the phones as well. Users must be able to access, share and store their data onto the cloud via their smart phones. An important feature needed in the application is to provide administrative functionalities which involve account, user and container management. A particular organisation buys certain amount of space on the cloud from the third party server and this space would be used by various employees of the organisation. An Administrator is appointed to manage all the users, accounts and containers for the entire organisation. To make it easy for the users to accomplish all these various tasks anytime and anywhere an application available on their phones will serve the purpose. The reason to develop this application on the Android operating system (OS) is because Android as a Server Platform enables many users to use resources on remote cloud servers. Android is an open source mobile OS initiated by Google. The main reason to use Android as a server platform is that it is able to run not only for smart phones but also for the x86 platform including servers.
In the past years there have been application developed for the Android OS which provides users with some amount of free space on the cloud to store and share their data. Among these are DropBox, SugarSync, SkyDrive, EverNote and others. These applications are majorly used for personal data backups and sharing among a closed group of people. Again it depends on the user of the application how and with whom he would like to share the data in his space. These types of applications cannot be used by the organisations as they need to store their project ideas, private data, software and other resources on the cloud and share it among the hundreds of employees of the organisation. There are some third party servers which serve this purpose like Amazon CloudDrive, Rackspace Open cloud, Sify CloudInfinit, Cloud4Bizz and others. The services of most of the third party servers can be accessed via Web Browsers only, an application for the smart phones is not yet available (like Amazon CloudDrive). Some do have an application for the Android OS (like the Cloud4Bizz).
TABLE OF COMPARISON WITH EXISTING APPLICATIONS
Attribute of Comparison
RackSpace Open Cloud
Access and View files on cloud
Collaborate files with colleagues
Share to cloud
Link to Contact Cloud Server
API Key for security
Permission to Read Contacts
The administrator can perform the following functionalities (along with all other functions a user can perform)
When the admin selects this option a list of all the users available will be listed.
If the admin wishes to perform any operation on any user he has to tap and hold the account for about 2-3 seconds and the operation list will appear with the following options:
To create a new user the admin will have to provide the details like username, account to which the user belongs and the amount of space to be allocated to the user.
If admin needs to update a user the fields which can be updated are account of the user and the amount of space the user can use.
To delete any particular user the admin will have to prior notify the user. A user will be deleted if he is found to be trespassing other users' data.
If the admin selects the account management, he will get a list of all the accounts available as follows .If the admin wishes to perform any operation on any account he has to tap and hold the account for about 2-3 seconds and the operation list will appear with the following options:
If create operation is selected the admin will have to give the name and size of the account to be created.
If the name of a container or the amount of space has to be changed the admin can update the details of the account.
If any account is no longer required then the admin can delete the account. The data present in the account can be moved to another account or container if that data is of any use.
The admin can see the list of containers for any user he selects from the user list.
If the admin wishes to perform any operation on any container he has to tap and hold the account for about 2-3 seconds and the operation list will appear with the following options:
The users can perform the following functionalities:-
->See the list of containers he can access.
->Select any container to upload, copy, download and delete any files in/from that container.
->Move files from one container to the other.
After the user has selected a container the list of files present in that container will be displayed. The user is provided with an option button which has a list of operations that the user can perform on the files.
Upload a File :
When the user selects the option to upload, he will be given the choice to choose the location of file he wishes to upload.
Copy a file:
The user can create copies of a file in the same container or in another container. Thus when he selects the option of copy a duplicate of that file he wishes to copy is created.
Download a file:
The user can download a file to his/her mobile. When the download option for a particular file is selected the user will be given a choice to choose the location where to store the file he/she is downloading.
Delete a file:
The user can permanently delete files from a container. Once the file is deleted it cannot be retrieved.
Move a file:
Move a file from one container to other. The user can select the files he wishes to permanently move from one container to the other. When the move option is selected, list of containers to which the file can be moved is displayed, the user can select from these container to which he would want to move his file.
Authentication and Accessibility
Every user must be authenticated to perform any kind of transaction with the cloud. Every user internally has a set of API key and secret key. API key is unique and used to identify the user. API key must be passed in the query string of every request to the cloud. User will login using his email address and password and his signature is passed as well. The signature comprised of API key, secret key, email address password, current time stamp. The current timestamp is passed in UTC or GMT format. At the servers' end the server has the secret key of every user and will use this secret key to sign the data sent by the user using SHA-1 algorithm. If the signature matches then the user is authenticated and access is granted to perform transactions with the cloud.
Transfer of Data to Cloud
The communication between the android application and the cloud is done with the help of REST web services i.e. Representational State Transfer. A RESTful web service also called RESTful web API is a web service implemented using HTTP and the principles of REST. It has a set of operations supported by the web services using HTTP methods (e.g. GET, PUT, POST and DELETE).
For the user to be able to upload any data to the cloud the methodology used is as:
A temporary URL is obtained from the server using a POST method, on which users data can be uploaded. To obtain this the following parameters are required:
Size of file to upload
Destination where file has to be saved
Once this request is passed to the server, the server will give a response containing the following parameters.
StatusDesc ->State of task
Url -> To upload objects
After this the data is uploaded to the specified container.
The server will provide a response of the task completed, or if error occurred in file upload.
Receive Data from Cloud
When the user will get any data from the cloud, the server or the cloud will send this data in the form of XML. To store this data in the user's phone or any device the XML data has to be converted to object form. The process of converting this XML data to the object form can be done with the help of XML PULL PARSER. XML Pull Parser is an interface that defines parsing functionality provided in XMLPULL V1 API. The steps to convert the XML response to an object are as follows:
First the required tag (for instance <userinformation>) in the response of the XML is searched for. If required response is found the data within that Tag is checked.
This data is then stored in the form of objects (for instance <username> will be stored in a String variable named "user_name").
The process repeats until the end tag of the response in search (>).
Security of data is the most important aspect. The data being uploaded to or downloaded from the cloud must be protected from intrusion and theft. User authentication also provides security which is done with the help of API and secret keys. Every request being passed to the cloud is signed and verified with help of SHA-1 algorithm. The SHA-1 algorithm is Secure Hash Algorithm (SHA) developed by National Institute of Standards and Technology (NIST). SHA-1 produces a hash value of 160 bits. The algorithm enciphers the original text using a set of 80 32-bit keys in 80 rounds to produce a message digest of 160-bit long. The algorithm is secure as it is not vulnerable to any kind of attacks like cryptanalysis or brute force attack.
Thus when the user sends a request to the cloud it is signed using this algorithm and at the servers end the secret key of the user is used match the request being sent by the user. If both the signature would match only then the user can complete any kind of operation on the cloud. The server will accept the request sent by the sever for a period of plus or minus five seconds for security purpose, this means that the server which runs the client code must be in sync with the core time server of the world via NTP protocol. Therefore the data of ever user is secured and protected from intrusion, loss or theft.
The user interface of this application is developed using Eclipse (indigo) software. The Android Developer Tools (ADT) plugin for Eclipse provides a development environment for building Android applications. It's a full Java IDE with advanced features help build, test, debug, and package the Android applications.
Full Java IDE
Android-specific refactoring, quick fixes, integrated navigation between Java and XML resources.
Enhanced XML editors for Android XML resources.
Static analysis tools to catch performance, usability, and correctness problems.
Extensible Markup Language is used to design the interface which includes the screen layout, text fields, labels, button, menu and others. XML is used as it has various advantages:
It simplifies data transport, thus the data being uploaded to the cloud can be transferred easily from the android device to the cloud.
It simplifies platform changes, XML data is stored in text format thus upgrading to new operating systems, and new applications can be done without any overhead of data conversion.
It separates data from HTML; any dynamic content to be displayed can be done easily with XML.
A share menu option is available in Android devices. When this option is selected a pop-up appears showing various options to which a particular file can be shared. Similarly the users of this application will be able to view the option of sharing their files to the cloud. When the share option is selected the Login screen will appear if the user is not already logged in. Else the list of containers will be displayed which the user owns. The user can then add that particular file to the desired container. This share functionality provides user a more convenient way to upload any data to the cloud.
CONCLUSION AND FUTURE SCOPE
With the increasing volume of data and with it the increasing demand to secure and store the data is very important for all the organisations. To increase the accessibility and availability of the data to all the employees of the organisation a mobile Application for the Android OS which will allow to store, share and access data on cloud via the internet is a blessing for the various users who need to work from anywhere across the globe. The application allows user to perform operations on the data and can add, update, delete data accordingly. Administrative operations like account, user and container management are provided thus making it more convenient to
work for the Admin. The most crucial aspect of securing the data while transferring from the device to cloud or vice versa is done with a very efficient algorithm i.e. SHA-1. Thus the application developed provides the various requirements to take a backup of data from a Mobile Device to the cloud.
Further in this application more functionality can be added like:-
Allow the users to register via the application.
The feature of payment procedure. User should be able to pay via the application itself.
An inbuilt chat can also be provided for any kind of support from the service provider.
Automatic Backup of data.
In the process of completion of this paper a lot of individuals have supported and guided us in the right direction. We are grateful to these individuals whose encouragement and assistance has allowed us to successfully complete the paper. We would like to express our gratitude towards our guide Asst.Prof.A.A.Nikam for his guidelines. We are also thankful to our Head of Department Prof.S.R.Sakhare for providing an opportunity to present this paper and for the learning's gained during the creation of this paper.