Arduino for custom home automation using cc3000 wifi

HI,
I am working on custom home automation project. In this project i need to control the home appliances over internet. If I use the Web server on Arduino, then i need to take a static IP for this so i can communicate with server over internet from anywhere. This is not convenient because for each server i have to have new static IP. I am working on product development so Static IP is not suitable for my application. I have thought the different way. Instead of the web server, i will make arduino a web client. Mobile application will communicate with some web server and then, Web server will give data to arduino over internet and Arduino will do switching as per server instruction.

I think this way is more suitable if i am developing a product.
but here i am confused, how to make arduino to listen to the server? how arduino will know if server give the message to it?what kind of server client communication i should use?
there are lots of questions in my mind. I have searched over internet about this. i found lots of project.
in all web client project arduino push get request to server and then server replies.
I need to make arduino to listen the server for the state change of the key and then report back to server when state has been changed. please someone provide me proper guidance on this project