System of the cloud storage unification is a unique service of the cloud storage systems for basic desktop and mobile platforms. This service provides unlimited and endlessly scalable cloud space for information storage, full synchronization among different devices and the maximum level of data security for users. The product is realized on the base of its own algorithms of data storage and data encryption, which provide seamless, balanced distribution of users’ data in different data storage cloud accounts.
System of the cloud storage unification has a unique architecture, which allows users to use all benefits of the unlimited cloud space for the duration of the subscription, if they’ve registered only for once and pointed even one existing data storage cloud account. The system unifies all users’ accounts into one container and then unites it with other users’ containers to create almost endlessly scalable cloud storage in cloud spaces. The program can automatically create new account of cloud storages for meeting the growing system requirements.
In addition to the limitlessness of the data storage capacity, the system of the cloud storages unification has high-level specifications of the system fault tolerance and data storage security, that allows users to get access to data even if the original cloud account becomes unapproachable.
Here is an incomplete list of operations available for users:
- To upload, delete, rename, download files to a device.
- To sort by size, date and name.
- To view of log history.
- To exchange with a file/folder by sending a reference.
- To share data storage space with other people.
Since the first version, developed system is available for the following popular platforms: Windows Desktop, Mac OS, Linux, Windows Phone, IOS, Android.
Technologies: Spring, JDBC, Quartz, Camel, JavaFX, StealJS, MySql, SQLite, Maven, Gradle, TeamCity, MicrosoftAzure
- Multidisciplinary team of developers, business analysts and QA engineers has worked as a single solid team.
- There were no similar analogues at the time of the system creation.
- Test covering all modules of the application, including creation of UI tests.
- Formation of the complete software documentation (UML diagrams, graphs, descriptions etc.)
- Maintenance for multiplatformity, configuring and administrating servers with various OS (Linux, MacOSX, Windows).
- HTML5 filesystem API, File API, HTML5 Webworker, mobile platform definition mechanism and page adaptation according to the configurations of the mobile platform were used in the project.
- Working by Scrum processes, using JIRA Agile.
- All project works were finished successfully.
- Continuous Integration was successfully implemented into all project phases. A lot of processes were automated:
- code control – tests were carried out just after developer’s commits;
- configuration and installation of the server part of applications and web application to the server;
- night build system was implemented;
- system of client’s applications releasing;
- many other things.
- Encryption algorithms were used, which, when combined with decentralized storage methods, effectively eliminate the possibility of data stealing or unauthorised access.
- R&D analysis of the existing solutions for bi-directional distribution of data storage was conducted.
Company’s achievements during the project
- All layers and components of the application were covered with automated tests: Unit, Integration, UI for all parts of the application.
- Processes were formalized and adjusted by the Scrum/Agile terminology, that allowed working effectively in the distributed team and resulted in stable iterations.
- Our team suggested and then realized data encryption on the level of the client’s part, instead of server one. Splitting to equal data blocks and following encryption of these blocks (AES block encryption algorithm) were carried out, then downloading of the encrypted data blocks for following decryption and assembling to one target file, provided to a client (user).
- Prototypes of various algorithms for splitting and encryption of the big size files were created and implemented successfully.
- The project team suggested and integrated a large amount of architect decisions, which allowed stabilizing and extending of project functionality.
- The business analysis of requirements was carried out as a result of the face-to-face communication with the customer.
The project auctioneer
JazzTeam developers were involved in business analysis of our project requirements, implemented all the tasks completely and on time, and met our expectations of successful teamwork.
The product has been designed and implemented by JazzTeam experts based on unique data storage and encryption algorithms that ensure a smooth, uniform distribution of user data in various cloud storage accounts. А large number of architectural solutions have been implemented, that helped to stabilize and expand the functionality of the project.
Effective solution from JazzTeam was to establish processes in the team and implementation of Scrum/Agile methodology. As a result, everyone in the distributed team was interested in the effective implementation of the project, that allowed to reach the stable iterations.
From our point of view, it has a positive impact on improving the quality of our product: the unique cloud storage service has been created with excellent scalability and the most modern architecture.