PRINCIPLES OF CLOUD COMPUTING