I'm currently working on a project where I'm trying to control an embedded device through an Internet facing website. The idea is is that a user can go to a website and tell this device to preform some kind of action. An action on the website would be translated into a series of CLI commands and then sent to the device. Communication could potentially go both ways in the future, but right now I'm focusing on server-to-device.
The web server is a LAMP stack using Python (Django) and the device I'm trying to communicate with is a Beagle Board running eLinux. There would be only one device existing at any time communicating to the server.
I have all the functional parts written on the server and device side, but I'm having a bit of trouble figuring out how to write the communication layer. One of my big issues is that the device will be mobile and will be moving locations every few days. So, I can't guarantee a static IP address for the device. My networking programming knowledge is pretty minimal so I don't have that great an idea on where to start.
Does anyone have any ideas/resources on how I can start developing this kind of communication?
Thanks!
the device will be mobile and will be moving locations every few days. So, I can't guarantee a static IP address for the device. 

Your device can be a client of the web site.
Your web site has two interfaces.

HTML interface to people.
A non-HTML interface to the device.  As a client of a web site, the device will need an HTTP client-side library to send a request to the web site.  This request will include the device's IP address, plus all the usual malarky buried in an HTTP request.  (There are a bunch of standard headers that are sent in a request)

Once the device has made it's initial request, then your web site can save the device's current status and communicate with it through another protocol if you want to do that.
(I'm guessing that "I have all the functional parts written on the server and device side" means you have some other protocol for controlling the device, and this protocol isn't based on HTTP.)
It might be simplest in the long run to have the device poll the web site for commands or updates or things.  That way the device is a pure web client using only HTTP, and your web site is a pure web server, using only HTTP.  Then you don't need your more specialized second protocol.  Using only HTTP means you can use SSL to assure a secure communication.
If your device uses HTTP to get commands and updates, you'll need to work out a usable representation for data that can easily be encoded into HTTP requests and responses.  Choices include XML, JSON and YAML.  You can always invent your own data format; however, you'll probably be happier debugging a standardized format like JSON.
Building these two interfaces in Django is pretty trivial.  You'll simply have some URL's which are for people and some which are for your device.  You'll have view functions for people that return HTML pages, and view functions for your device that return JSON or XML messages.
Creating a website to communicate with an embedded device