Distributed System Concept and Design