Multiplicity computing: a vision of software engineering for next-generation computing platform applications