distributed computing fundamentals 3565584