A Use case for efficient file uploads

Someone pointed out to me today that video is the future of 4G, quoting that at least 40% of traffic over 4G will be video, but that also videos taken by devices are gaining in popularity, and size. Well vine and the like aside that is. It is quite possible to have videos be hundred of megabytes in size.

The user would most likely want this video uploaded as soon as possible, except that such a chunky upload will be expensive for them.

A big slice of their Data allowance (because the truth is that most “normal” people are on a data tariff with a fixed data allowance)

3G and even more so 4G take up a lot of battery, and this can vary greatly depending on network conditions at the time of the transfer

It may be expensive in time too, because upload (to the internet) speeds are not the same as download (from the internet) speeds, and as such it could take quite some considerable amount of time to upload such a file. Further, most devices are not good at holding open multiple simultaneous diverse connections, and so other functions (eg browsing will be severely impacted during the time it takes to upload the file.

So the problem statement is:

How to make very large file transfers over 3G or 4G as resource efficient, and cost effective as possible, by providing control to the apps / servers partaking in the transfer.

This would be used to upload large files, for example video files taken on the device, to download content in advance of it’s use, eg movies, or larger collections of smaller files such as when syncing to a cloud.

Solution – Using ASPN – Application Service Platform for Networks

First of all what is ASPN, in a nutshell it is the ability to deploy a cloud type computing resource (virtual machine) to the cell towers at the edge of the mobile network, so that a part of your application can execute in the cell tower, as close to the device as it is possible to be. This means the mobile app can make use of a resource that is able to know a great deal about the radio part of the network, because the ASPN server can talk with the radio controllers to better understand the current status of the Radio Access Network.

In order to make the transfer of a file as efficient as possible, we would like to only use the radio network when conditions are at their best, that is when your device is not at the edge of the cell having to use maximum radio power, and when the cell is not congested. this provides these benefits:

– The lack of congestion means the file will transfer at maximum throughput, reducing the time necessary to be transmitting. This saves on battery power.

– Reduced retransmissions, this means that the efficiency of transferring the file in increased. A good thing for the radio network and the device’s battery usage.

– The device can use a lower level of radio power* to transfer the data, saving battery again.

Thus place an application in the base station that is able to monitor the real time situation with the cell and then provide control to the app on the device to tell it when to send the video, and when to pause.

The app in the base station will need to be able to access the stats from the cell however and this is not so easy as it stands, and would require an API to provide a sensible way to discover the cell conditions, or to ask for particular conditions to raise an alert / call back. However ASPN is ideally setup to provide that API and to ensure that the app is able to use it effectively.

*With 3G and 4G the devices attached to a cell tower share the range of frequencies, and so have to be able to transmit their signal with enough power that the base station can discern their signal amongst all the others. Thus if enough people, nearer to the cell tower site than you, start to use their devices, these will out compete your device, and you will not be able to connect to the tower. This shrinks the effective size of the cell, and is called cell breathing. Thus you could have a really good connection at one moment, and be kicked off the next, all because of other users.