heterogeneous distributed system