What is the Complexity of a Distributed Computing System?

Anand Ranganathan, Computer Science, UIUC

Abstract: Distributed computing systems are getting bigger and more complex. While the complexity of large-scale distributed systems has been acknowledged to be an important challenge, there has not been much work in defining or measuring system complexity. Thus, today, it is very difficult to say that one system is more or less complex than another, or is easier to program, manage or use. In this paper, we try to understand the factors that cause computing systems to become very complex to people. We define different aspects of system complexity and propose metrics for measuring these aspects. We also show how these aspects affect different kinds of people - viz. developers, administrators and end-users. Based on the aspects and metrics of complexity that we identify, we propose general guidelines that can help reduce the complexity of systems. Finally, we briefly describe how we have used some of these guidelines to reduce complexity in our middleware for autonomic ubiquitous computing environments.