📜 ⬆️ ⬇️

Cloud in your pocket

A recent topic about Google Keep encouraged me to write about an idea that appeared shortly after Google Reader was closed.
This event clearly demonstrated the main lack of clouds - the lack of control over their own data. I, fortunately, did not rely especially on the “favorites”, commenting and other reader features, so the transition to Yandex.Subscription was relatively painless for me, but there are other services, the loss of which will cost me much more. By the way, the service will not necessarily be closed, it is possible that only my account will be closed for any reason, without any warnings for several months and the ability to upload data.
Of course, it would be possible to raise your VPS, install all the necessary services on it ... But it costs money, you need to find free alternatives (which is not always possible), administer, monitor security and backups, and just not everything is available. In addition, any social opportunities become problematic.
How could be solved the problem of controlling your own data, while maintaining the convenience of cloud services?

Infrastructure


Many of us have at least one computer at home, or even more, more than one mobile device, perhaps smart TVs or wifi routers with external drives. And there are more such devices, their capacities are growing, and each has its own processor, RAM and ROM, network interface, and almost everyone has an OS that allows you to run your own programs. This is quite enough to become a personalized platform for cloud services. Such a platform could store data and provide resources for processing.
Even when used by a single user, such a cloud could store personal data, contacts, mail, media content, giving access to all devices of family members via the Internet and local area network.
If, however, it is possible to create an infrastructure for uniting personal clouds into a distributed network with resource sharing, the capabilities of such a network will significantly expand. Personal data could be stored in encrypted form in multiple copies, which would save even in case of serious incidents, such as a fire. However, in case of loss of access attributes, you will lose such data irrevocably. There is no company to which you could send a letter or enter with a passport so that you can restore everything. This is a double edged sword.

Services


Well, the most interesting thing would be the possibility of raising truly free cloud services. Now you can’t just take and start a free cloud service - you need servers, which means monetization, or at least an idea for it to get invested. Therefore, obviously unprofitable ideas, no matter how useful they are, simply do not come out into the clouds, or quickly die out.
On the other hand, if you already have a free cloud, you can implement a service for it - software and an interaction protocol (API) - and all users who need this service will take all the costs of storing and processing data, receiving full control for it for the data they need.
Take, for example, an analogue of youtube in such a cloud. If the necessary software and protocol are written, everyone will be able to raise such an analog. Of course, at the same time, all videos will initially have to be stored and converted. But if other participants join the protocol, they will share this burden among themselves, and the more participants - the less the resources of each of them will be. At the same time, if someone suddenly seems that some video propagandizes suicide, the maximum that he can do is remove him from his network and politely ask other participants to do it.
One could put the same Wikipedia in the cloud and not hang banners with sad eyes, simultaneously solving the issue with censorship.
If it turns out that the service loses popularity, well, while you use it, all the data you need will be available to you, and you can, if you wish, transfer it to a more popular service, reducing resource costs. And this, I believe, is the main plus of such a scheme.
I note that such cloud services do not have to duplicate and try to force out existing clouds, rather, such a cloud will exist in parallel. However, user resources are limited, and everything will be sent straight to personal clouds.
Nothing prevents organizations from raising their internal clouds and running services on them for their own needs, reducing the costs of their own servers and developing / purchasing software.
')

Technical implementation


It is necessary to implement a protocol to find other participants in the distribution network between them load, it is possible to adapt bittorrent or BOINC. In addition, the protocol should provide guaranteed access to distributed data, taking into account the fact that not all participants are online 24/7, no one wants to wait for the "sider" to load the file from the cloud.
In this case, for example, mobile devices should have restrictions on the use of resources when running on batteries, and the Internet connection can be slow and / or expensive. All these details will have to be taken into account.
A search is needed for nodes implementing the same services so that they can synchronize data and share the load. It is necessary to share resources between different services running on the same devices.
Well, of course, you need an API that allows you to develop cloud services that, moreover, work on all compatible devices.
IOS support looks very problematic, most likely Apple will not allow so freely dispose of mobile device resources, which means only jailbreak. Although, of course, there is a miserable chance that she will join the initiative and add her own implementation.
In general, this is quite a lot of work, moreover, very highly qualified. It may turn out that all these tasks are not at all realizable, especially guaranteed access to data, but with the growth of personal devices and the number of network participants, these problems should be resolved in the future.
By the way, if you remember Opera Unite, take a pie from the shelf. It could well become such a network, or at least raise interest in the idea, but Opera seems to have lost interest in it :(

Who will do this?


Alas, I do not know. I have other worries now. In addition, it is very likely that you will have to write in Java, in which I am not strong, and I’m not very attracted to it. When there is more free time or money - then maybe I will start, or hire someone. It is unlikely that one developer will pull this.
It is obvious only that it will be a non-commercial open source development. Perhaps in some university decide to take? I think on such a project one can make more than one diploma. Or is someone already doing this? Maybe you have any original ideas of services for such a network? Share in the comments.

Source: https://habr.com/ru/post/178741/


All Articles