Upload Arduino sketch over-the-air (GPRS SIM900)

I have an Arduino in a remote location and would like to upload new code via GPRS (a SIM900 is connected to the Arduino via tx/rx serial interface). I was thinking about putting the .hex file (or some format) on a webserver and Arduino will automatically check once a day if there is a new sketch available. If a newer sketch is available, the Arduino will download and update itself. I am clueless of how to accomplish this.

Can anyone point me in the right direction? Maybe even someone have accomplished this already and can share their knowledge?