I am currently developing a Python program for a Raspberry Pi. This Raspberry is meant to control a solar panel. In fact, there will be many Raspberry Pis controlling solar panels and they will be connected to each others by RJ wires. The idea is that every Raspberry has the same status; there is not any "server" Raspberry and "client" Raspberry.
The program will receive GPS data, i.e. position, time...
Except for the GPS data, the Raspberry Pis will not have direct internet access. However, it will be possible to plug a 3G key in order to gain access to internet.
The problem is the following: I want to update my python program remotely, by internet provided by my 3G key (the solar panels are in a field, and I'm home for instance so I do not want to drive a hundred miles to get my Raspberry Pis back and update them manually...).
Is it possible to make the update remotely considering that I do not have a real "server" in my network of Raspberry Pis?