A framework for cloud-aware development of bag-of-tasks scientific applications