Cloud computing theory