A Framework for Model-Driven Scientific Workflow Engineering