In recent years, cloud hosting services gained significant ground in IT, both from the side of the developers, as well as users. Storing the data on a cloud system provides location independence, makes communication, as well as file sharing easier and resources are free to be sized according to the demands.
Due to the additional functions, the cloud-based data storage is required to face new challenges. The expectation is a cloud service that can safely store your files while it provides low data access time.
The basic idea of the thesis is to divide the file into several parts and place the sets of the individual pieces in separate cloud services. Because portions of the file is stored redundantly, we increase data secure. The data access speed is increased by using an algorithm that is capable of requesting more packages from the clouds which have faster response time, so our application does not have to keep the speed limit provided by the slowest server. To protect the data against unauthorized access and to store it safely, when breaking up the file into parts, an error correction coding algorithm, Network Coding technique is performed.
In the thesis we create a server-centric architecture that is able to operate on several cloud services. Files uploaded by the client are divided into pieces, on which Network Coding algorithm is performed and are uploaded to independent clouds. It regains these parts during the download and recovers the original file. Due to that, on the client side we work with a lower amount of resources, we would like these operations to be done by a server which has higher capacity and free to be sized.
With data measurements, we manage to find out the number of cloud services on which we must operate in parallel to reach the packet number, from that we can recreate our previously uploaded file in order to maximize access speed. Technology side, the system is developed in PHP and C++ languages, using an Ubuntu server.