characterization of distributed systems