Architecture and Distributed Computing