Software Architecture Concepts: [ Part 5] Key Characteristics of Distributed Systems