I have multiple raspberry pi compute modules that will be placed in remote locations. If any of them shutdown unexpectedly, I can't travel and reboot them. They are connected via 3G modem to the internet. Is it possible that server sends them a message to boot up the system? How would this be implemented?
You would need a second device that can control the power state of the Pi and have that also talk over your 3G modem to the server.
You can't restart a system in software without a second system; if the whole system crashes. If you just mean your software you can simply use one of the many tools out there to auto restart software that crashed (f.e. forever).
If you need to have a hardware reset the only option without a second system would be to use the internal Watchdog of the BCM chipset. That wont make it possible to reset the pi over 3G but you can have the pi reset if your application or the whole system crashes.