A Service-Oriented Architecture enabling dynamic service grouping for optimizing distributed workflow execution