Design and Implementation of An Efficient Multi Cloud Storage Approach For Resource Constrained Mobile Devices
Design and Implementation of An Efficient Multi Cloud Storage Approach For Resource Constrained Mobile Devices
https://doi.org/10.1007/s10586-017-1296-3
Received: 28 July 2017 / Revised: 13 September 2017 / Accepted: 26 October 2017 / Published online: 6 November 2017
© Springer Science+Business Media, LLC 2017
123
S13144 Cluster Comput (2019) 22:S13143–S13157
– End mobile user, who will store his valuable data on 3 Literature survey
cloud. He will get privacy benefit and economic benefit.
– Application developer, who will connect their application In this section, different multi cloud storage architectures
to our proposed system. He will get platform and pro- proposed by different authors with their objectives and limi-
gramming language independence, save time and money. tations are discussed.
– CSP, which will allow us to connect to their service. Ser- Duro and Blas [8] proposed a hierarchical cloud storage
vice provider will be benefited ad there is no need to system (CoSMIC) based on multiple I/P caching layers for
write application programming interface (API) in every resource-constrained mobile devices as shown in Fig. 1. This
programming language they can simply provide API in design is based on the Memcached cache system. The authors
one language rest will be abstracted from programmer. designed this to minimize input/output latency of existing
Another benefit is that, user will not change cloud ser- mobile cloud solutions.
vice if he require some more free space and do not want Reddy and Raju [23] proposed a multi cloud storage
to spend on paid service. model, which is secured and cost-effective as shown in Fig. 2.
– Service provider that is us. We will get benefit as we can It divides the data among the available service providers, to
push advertisements like Google Ad words which can improve data availability and security. The objective of paper
leads to much higher revenues. is to provide a decision model to the cloud computing user
that he can secure his data by dividing the data to different
Hence, the main objective of our proposed system is cloud service providers.
Luan and Gao [21] proposed a Fog Computing architec-
– To develop an efficient and secure multi cloud storage ture, which extends the cloud computing concept by adding
approach for mobile device users that will consume less an extra layer (Fog layer) b/w cloud and mobile devices and
123
Cluster Comput (2019) 22:S13143–S13157 S13145
created a three layer Cloud-Fog-Mobile hierarchy to provide Wi-Fi network. In this, a file of size 50.11 MB taken to upload
fast services to mobile users. The intermediate layers (Fog on three cloud storage supported by different MCS systems
layer) contain servers and are deployed at local premises of as Drop Box, G Drive and Media Fire and compare above
mobile users as coffee houses, parks, railway stations, bus mentioned multi cloud storage systems on the basis of param-
stands, etc., so that they can provide storage, communication eters CPU usage, data usage, battery consumption and time
and computational resources in the nearby location of mobile consumption. It was concluded that none of the existing multi
users and provide fast services to mobile users. cloud storage systems is best in terms of all the resources.
Alqahtani and Mostefaoui [2] proposed an approach based Multi cloud storage prototype is performing better in terms
on a multi-cloud scheme that provides secure data storage of data usage, ES File Explorer is efficient in case of bat-
for MCC users. Techniques like cryptography and compres- tery consumption. It shows that different multi cloud storage
sion are used in this approach for the security of distributed applications are better in terms of different parameters.
data. In this, data is divided into parts which are distributed Bedi et al. [6] studied and analysed four MCS systems,
to different clouds and one part is stored on mobile device Otixo, UnClouded, Cloud Fuze and Clouds and evaluate their
memory, which will prevent unauthorized access to data if performance on the basis of CPU usage, battery consumption,
other distributed parts have been captured or phished. time consumption and data usage parameters on 4G network
Slamanig and Hanser [25] discussed distributed cloud using three mobile phones Nexus 5, Moto G and Nexus 7
storage systems which provide a combination of different tablet. In this, a file of size 116 MB has been taken to upload
CSPs called multi-cloud or cloud of cloud approach. In this on a cloud storage system as Drop Box, G Drive, etc., and
paper, the author discussed two approaches for storing data compares the above mentioned multi cloud storage systems
(a) to copy the same data on all CSPs to improve the availabil- for parameters battery consumption, CPU usage, data usage
ity of data by increasing redundancy. (b) To split the data and and time consuming. Finally, open research challenges and
store the splitter n parts onto different CSPs. The authors also future scope are discussed. From results, it may be concluded
discussed that even with many advantages of cloud storage; that if one multi cloud storage system is consuming less bat-
there are still some problems that hinder the user from using tery, at the same time it is consuming more other resources as
their services. One of them is security and privacy. As per CPU, data, etc. So, it is clear from above comparison that an
the authors, despite the high availability guarantee of cloud, efficient multi cloud storage system is required for resource
outages occur in practice and to avoid this risk, the concept constrained mobile devices, which will devour less resources
of multi-cloud introduced. of mobile devices and give better results.
Pasupuleti and Ramalingam [22] described that as out-
sourcing data on the cloud has many advantages but it
has many issues like the privacy of sensitive data. As per 4 Features of existing multi cloud storage systems
the author, one way to protect the privacy of data is to
encrypt it before outsourcing but the application of encryp- In this section, some of the existing multi cloud storage sys-
tion algorithms on resource constrained mobile devices tems for mobile devices are discussed with their features [4].
is very resource consuming that will degrade the device
performance. So author proposed an efficient and secure 4.1 ES File Explorer
privacy preserving model based on probabilistic public key
encryption and ranked multi keyword search for resource It is a multi cloud storage system for Android mobile devices
constrained mobile devices. Using which users data stored and desktop PC, which is used to manage files and programs.
in the cloud is safe regarding privacy concerns. In this, a list It has a lot of features and support G Drive, Drop Box, One
of files and an index for files is prepared and encrypted for Drive, etc., cloud storage services [11]. Different features are
storage in the cloud. Then a list of trapdoors is generated and
sent to the cloud for search of required keywords. The server – The GUI is very simple just like Windows PC.
will check the encrypted files according to the trapdoors sent – It supports simultaneous uploading/downloading from
by the authorized user and return the required files to the user. multiple cloud services.
Kavitha and Kumar [20] observed that in the case of single – User can perform create and delete operations to cre-
CSP, there are drawbacks of non-availability of data, vendor ate/delete new files or folders.
lock-in problem, security, and privacy problem. So author – User has the facility to cancel the command for files in
proposed a security mechanism for secure cloud storage with queue.
multi-cloud architecture. – It allows users to create password for a file or folder.
Bedi et al. [5] studied and analysed three MCS systems – User has the facility to hide the files.
multi cloud storage prototype, ES File Explorer, Cloud Cube, – It provides the facility that user can transfer the files via
by installing them on Sony Xperia mobile phone and by using local area network.
123
S13146 Cluster Comput (2019) 22:S13143–S13157
4.2 Cloud Cube 5 Issues in the existing multi cloud storage systems
for mobile devices
Cloud Cube is a multi cloud storage system for Android
devices, which supports G Drive, One Drive and Drop Box In this section, issues of existing multi cloud storage systems
cloud storage services [12]. Different features are are discussed. The major issues are
123
Cluster Comput (2019) 22:S13143–S13157 S13147
123
S13148 Cluster Comput (2019) 22:S13143–S13157
rity management, concurrency control and load balancing. Read files FLi from CLi ;
Different components of this layer are discussed below. If FLi already exists in CLi then
Display File available in CLi ;
else
– File upload upload FLi to CLi ;
User’s data will be uploaded to cloud from mobile device end if
via middle level layer, i.e., web service layer. Algorithm 1 end for
is designed for this purpose. In this algorithm, following end if
variables are used.
Dt represents users data, CL is used to represent cloud, – File splitting
STr stores authorization token returned by cloud after Data uploaded by users is not stored at one server. It is
authentication of user an Send function is used to send rather stored at different server locations using data split-
data and authorization token to cloud. ting. Data is split in order to prevent of loss of data. If data
Algorithm 1: File Uploading on one location is deleted or not available, other locations
can be used to render data. Algorithm 3 is designed for
Input: Data from user (Dt). this purpose. In this algorithm, following variables are
Output: Secure uploading and storage of data on Cloud. used.
Read Data (Dt) from user. Dt represents users data, n is number of clouds, CL rep-
Read Cloud information (CL), which is selected by user? resents a cloud, Bt represents byte information of data,
STr = GetAuth (CL); SP(x0…xn) represents free space available on different
If STr is equal to NULL then clouds.
Display Authentication failed for Cloud CL; Algorithm 3: Data in parts [Data Splitting]
else
Send (Dt , STr) to CL; Input: Users Data (Dt)
end if Output: Secure uploading and storage of splitted data
Dt(x0, x1.xn-1) on Clouds CL(x0, x1,..xn). Read byte
– Duplication manager information (Bt) of Data (Dt)
To avoid replication in uploaded data, duplication man- Read the number of Clouds (CLn) available on Server.
ager is used. This makes sure that same data is not being Check free space SP(x0 , x1 ,…xn ) available on Clouds
duplicated again and again. It provides data integrity and CL(x0 , x1 , . . . xn ).
data accuracy. Algorithm 2 is designed for this purpose. Boolean bbytes;
In this algorithm, following variables are used. SOF = Bt/CLn + Bt mod CLn;
FL represents user file, Flatr represents file attributes, double FIB[ ] = new double [CLn];
CL is used to represent cloud. double rbyets = Bt;
Algorithm 2: Duplicate File Manager for all SP i <= n–1 do
if ( SOF < SPi) then
if ( bbytes is equal to true) then
Requirement: Check the option that user selected i.e. FIB [i] = SOF;
either Single Cloud or Multiple Cloud. else
Input: Users File FIB [i] = Bt/CLn;
Output: Is File Unique or Not end if
Read file (FL) from user. end if
Read all attributes (FLatr) from FL. else
If single cloud selected then If (Bt / CLn > SPi ) then
Read all files from cloud (CL) Long n = ABS (SPi − Bt/CLn);
If FL already exists in CL then FIB [i] = n;
Display File already exists; Else
Else FIB [i] = Bt/CLn;
Upload FL to CL; end if
end if rbytes = rbytes − FIB [i];
end if if ( rbyte is NOT Equal to Zero)
else if multiple cloud selected CL(x0 …xn−1 ) then then
for all CL i <= n−1 do
123
Cluster Comput (2019) 22:S13143–S13157 S13149
for all SP <= n–1 do used to store authorization token returned by cloud after
if( SP > (FIB [i] + rbytes) ) then user’s authentication.
FIB [i] = FIB [i] + rbytes; Algorithm 5: Download File from Cloud
rbytes = 0;
break; Input: User’s Request for File.
end if Output: Requested File.
end for Read the file (FL) requested by user;
end if Read the Cloud (CL) requested by user;
if( rbyte > than 0) then STr = GetAuth(CL);
Display No Space available on Cloud; If STr is equal to NULL then
else Display Unable to Download File;
Int offset = 0; else
for all CL, i <= n–1 do FL = GetFile(STr);
upload (Dt, offset, FIB [i]); Response (FL);
offset = offset + FIB [i]; End if
end for
end if – Download file in parts
If user wishes to download the splitted file from clouds.
– File replication Algorithm 6 is designed for this purpose. In this algo-
If user wishes to upload same file to all available clouds. rithm, following variables are used.
Algorithm 4 is designed for this purpose. In this algo- FL represents the file requested by user, n is number
rithm, following variables are used. of clouds, CL represents a cloud, Str is used to store
Dt represents users data, n is number of clouds, CL rep- authorization token returned by cloud after user’s authen-
resents a cloud, Str is used to store authorization token tication and UAK is used to store users credentials.
returned by cloud after user’s authentication and Msg is
used to store message string. Algorithm 6: Download Splitted File from Cloud
Algorithm 4: File Replication [To upload same data
Input: User request for file.
on all clouds]
Output: Download file in parts.
Read user file (FL);
Input: Users Data
Read users credentials UAK;
Output: Uploading and Storage of same data on all
Read number of available clouds (CLn) for UAK;
Clouds
byte [ ] b = new byte[100000];
Let n is number of clouds.
int offset = 0;
Read all clouds information CL(x0 , x1 ,…xn )
For all clouds CL, i <= n–1 do
Read data (Dt) from user.
STr = GetAuth (CL[i]) from cloud i;
For all CL, i <= n–1 do
If STr is equal to NULL then
STr = GetAuth (CL[i]) from Cloud I;
Display Unable to download File;
If STr is equal to NULL then
Break;
Msg = Msg + CL[i];
else
else
tempbytes = download(b,offset,b.length);
Send (Dt , STr) to cloud i(CL[i] );
Response ( b,offset,tempbytes);
End for
End if
If Msg is empty then
End for
Display File uploaded to cloud;
else
– View all files
Display Msg;
If user wishes to view all files from available clouds.
End if
Algorithm 7 is designed for this purpose. In this algo-
– File download
rithm, following variables are used.
If user wishes to download the file from any of the avail-
FL represents the file requested by user, n is num-
able cloud. Algorithm 5 is designed for this purpose. In
ber of clouds, CL represents a cloud, Str is used to store
this algorithm, following variables are used.
authorization token returned by cloud after user’s authen-
FL represents users file, CL represents a cloud, Str is
tication and UAK is used to store users credentials.
123
S13150 Cluster Comput (2019) 22:S13143–S13157
Table 3 Hypervisors description Table 4 Protocols used to access cloud storage service
Hypervisor Cloud solution Platform Protocols Description
XEN Express Amazon Cloud Linux SSH/Putty SSH is used for secure access of text based Linux
ESXi VMWare Cloud Linux Cloud machine from Linux client and Putty is used
for secure access of Linux Cloud machine from
KVM Red Hat, HP, DELL Linux windows client
HYPER-V Microsoft Azure Windows VNC If Linux machine is in graphical mode VNC is used
RDP To access Windows Cloud machine, we have to use
RDP (remote desktop protocol)
Algorithm 7: View all Files from available Clouds GIT It is used in PAAS (platform as a service) to deploy
code
Input: Users Credentials
Output: Files of all Clouds
Read users credentials UAK; console XEN centre, it is a Windows 7 system, which is used
CL[] = Get available clouds with UAK; for management. Any CSP, who is providing IAAS, [17]
For all CL, I <= n–1 do using following protocols or tools as shown in Table 4.
STr = GetAuth(CL[i]) from Cloud i; Overall working of proposed approach is described in
If STr is equal to NULL then Algorithm 8. In this algorithm, following variables are used.
Display No File Available; Dt is used to store sign up data of user, FL represents the
else file requested by user, n is number of clouds, CL represents
FL[] = GetFiles(STr); a cloud, STr is used to store authorization token returned by
Response(FL[]); cloud after user’s authentication and UAK is used to store
End if users credentials.
End for
Algorithm 8: An Efficient Multi Cloud Storage Sys-
6.3 Cloud storage layer tem for Mobile Devices
This is third layer of proposed architecture, which includes Let GDb is the database for G Drive.
different CSPs as Drop Box, G Drive and One Drive, etc., Let MDb is the database for Media Fire.
where users data will be stored. There can be n CSPs. The Let DDb is the database for Drop Box.
main idea behind cloud storage is virtualization. With the Let UDb is users database.
help of virtualization, you can run multiple operating systems Input: User File
simultaneously [14]. There are different virtualization solu- Output: Efficient Operations on File as Uploading,
tions available in market as VMWare, Virtual Box, etc., with Downloading, Splitting, Replication Management.
the help of which, you can create multiple virtual machine Read Users signup data Dt;
and can run multiple operating systems simultaneously. The If Dt already exists in UDb then
main disadvantage of virtualization is that if the host operat- Display User already exists;
ing system gets corrupted, all VMs will be corrupted. So to else
avoid this situation, the concept of hypervisors introduced. Store Dt into UDb;
[16] Hypervisor is basically a robust operating system that Display Signup Successful;
is installed directly on robust hardware. Hypervisors used by End if
different companies are shown in following Table 3. Read login credentials (UP) from User;
As in case of virtualization, all things as processor, RAM, Int n;
HDD, OS are on one system, so in case of failure of one, If UP exists in UDb then
whole system gets crashed. However, in case of hypervisors, Set n=0;
all these things are on different systems. For example, in If UP already exists in GDb then
this, Amazon is the biggest cloud company, around 60% of Set n=1;
cloud market share is with Amazon and they are using XEN End if
Express Hypervisor. To implement XEN Express, we need If UP exists in MDb then
to implement four systems. First is storage area network, it Set n=2;
provides HDD remotely, second is network attached storage), End if
it provides .iso images, third is XEN Express Cloud OS, If UP exists in DDb then
it provides processor and RAM and last one is Microsoft Set n=3;
123
Cluster Comput (2019) 22:S13143–S13157 S13151
123
S13152 Cluster Comput (2019) 22:S13143–S13157
– It is fast.
– It supports different versions of Android, H/W properties.
– It is free with Microsoft Visual Studio 2015.
123
Cluster Comput (2019) 22:S13143–S13157 S13153
Table 5 Specification of mobile devices Table 6 Comparison for Micromax Canvas E352 mobile device
Micromax Canvas E352 Redmi Note 4 MCS system Data usage CPU usage Battery usage
(MB) (min) (%)
OS Android Android
CPU Octa Core 1.4 GHz Octa Core 2.0 GHz Mult Cloud 160 9 7
RAM (GB) 2 4 ES File Explorer 166 11 10
Clouds 154 9 8
Otixo 158 10 9
Cloud Fuze 162 10 9
By using this emulator, two Android Virtual Devices
UnClouded 155 9 8
(AVDs) Micromax Canvas E 352 and Redmi Note 4 with
MWC: proposed 52 3 2
configuration given below in Table 5 have been created to exe- approach
cute the implemented mobile application on these devices.
For results, a video file of size 50 MB has been taken and
uploaded on three CSPs G Drive, Drop Box and Media Fire
using these devices and reading of data usage, battery con-
sumption and CPU usage have been recorded by using third
party Apps data usage monitor, battery widget and CPU mon-
itor on 4G network. These third party Apps are installed on
AVDs by using their APKs. The reading of data usage is
recorded in MB, CPU usage in minutes and battery usage in
percentage.
After upload request from mobile device, the file will reach
to proposed approach (web service), which is placed on HP
server having four 2.5 GHz processors and 16 GB RAM.
9.1 Comparison for Micromax Canvas E352 This section is recitating the graphical results in Figs. 6, 7 and
8 for parameters data usage, CPU usage and battery usage
In this section, Table 6 is describing the results of seven parameters while uploading a 50 MB video file on Micromax
multi cloud storage systems for mobile devices Mult Cloud, Canvas E352 mobile device and using 4G network.
123
S13154 Cluster Comput (2019) 22:S13143–S13157
Fig. 8 Battery usage for Micromax Canvas E352 mobile device Fig. 9 Data usage for Redmi Note 4 mobile device
10 Results for mobile devices in mobility mode 10.1 Comparison for Redmi Note 4 mobile device in
mobility mode
To check results while nodes in mobility, two real mobile
devices Redmi Note 4 and Micromax Canvas E352 of same In this section, Table 8 is describing the results of seven multi
configuration as shown in Table 5 as AVDs have been taken. cloud storage systems for mobile devices Mult Cloud, ES
The proposed algorithm has been executed for the moving Files Explorer, Clouds, Otixo, UnClouded, Cloud Fuze and
mobile devices at the velocity of 60 km/h on 4G JIO network MWC (proposed approach) on Redmi Note 4 mobile device
and the following results have been obtained. in mobility mode.
123
Cluster Comput (2019) 22:S13143–S13157 S13155
Fig. 13 CPU usage for Redmi Note 4 mobile device in mobility mode Fig. 15 Data usage for Micromax Canvas E352 mobile device in
mobility mode
10.1.1 Results for Redmi Note 4 mobile device in mobility 10.2 Comparison for Micromax Canvas E352 in
mode mobility mode
This section is describing the graphical results in Figs. 12, In this section, Table 9 is describing the results of seven
13 and 14 for parameters data usage, CPU usage and bat- multi cloud storage systems for mobile devices Mult Cloud,
tery usage parameters while uploading a 50 MB video file ES Files Explorer, Clouds, Otixo, UnClouded, Cloud Fuze
on Redmi Note 4 mobile device and Micromax Canvas E352 and MWC (proposed approach) on Micromax Canvas E352
using 4G network. mobile device in mobility mode.
123
S13156 Cluster Comput (2019) 22:S13143–S13157
References
123
Cluster Comput (2019) 22:S13143–S13157 S13157
24. Ross, C.: Best Full HD Smartphones. www.pcworld.idg.com.aw/ Sunil Kumar Gupta did B.E. in
roundup/453755/bestfullhdsmartphones Computer Science from Gorakh-
25. Slamanig, D., Hanser, C.: On cloud storage and cloud of clouds pur University, Gorakhpur, India
approach. In: IEEE 7th International Conference on Internet Tech- in 1988, M.S. in 1991 and com-
nology and Secure Transactions, London, 10–12 December, pp. pleted Ph.D. in Computer Sci-
649–655 (2012) ence from Kurukshetra Univer-
26. Spillner, J., Muller, J., Schill, A.: Creating optimal cloud storage sity, Kurukshetra, India. He pos-
systems. Future Gener. Comput. Syst. 29(4), 1062–1072 (2013) sesses 28 years of teaching expe-
27. Yeo, H.-S., Phang, X.-S., Lee, H.-J., Lim, H.: Leveraging client- rience. He has worked as teach-
side storage techniques for enhanced use of multiple consumer ing faculty in many reputed insti-
cloud storage services on resource-constrained mobile devices. J. tutions in India including N.I.T.,
Netw. Comput. Appl. 43, 142–156 (2014) Hamirpur (HP). Presently, he is
working as Associate Professor
in Computer Science & Engg.
department at Beant College of
Engineering and Technology, Gurdaspur (India). He has more than 40
Rajeev Kumar Bedi received research publications. His work is published and cited in highly reputed
the B.Tech and M.Tech. degrees journals of Elsevier, Springer, Taylor and Francis and IEEE. His areas
in Computer Science and Engi- of interest include database management systems, distributed systems,
neering from Punjab Technical cloud computing and mobile computing, security.
University, Jalandhar in 2000
and 2008 respectively. Presently,
he is working as Assistant Pro-
fessor, Department of CSE at
Beant College of Engineering
and Technology, Gurdaspur and
Research Scholar (Part-Time)
at Department of Computer
Engineering, Punjabi University,
Patiala. His work is published
and cited in highly reputed jour-
nals of Elsevier and Springer. His research interest includes Cloud
Computing, Mobile Computing and Mobile Cloud Computing.
123