Improving a Distributed Software System's Quality of Service via Redeployment
Professor Nenad Medvidovic

ABSTRACT:

The quality of service (QoS) provided by a distributed software system depends on many system parameters, such as network bandwidth, reliability of links, frequencies of software component interactions, and so on. A distributed system's deployment architecture (i.e., the mapping of software components onto hardware hosts) can have a significant impact on its QoS. Furthermore, the deployment architecture will influence user satisfaction, as users typically have varying QoS preferences for the system services they access. Finding a deployment architecture that will maximize the users' overall satisfaction is a challenging, multi-faceted problem. In this talk, I will present an extensible system model, a set of tailorable algorithms for estimating an improved redeployment, and a visual environment for automatically exploring large numbers of deployment options. I will discuss the evaluation of this approach, performed by applying this work on a large number of representative scenarios.

BIO:

Nenad Medvidovic is an Associate Professor in the Computer Science Department at the University of Southern California and is a faculty member of the USC Center for Software Engineering (CSE). He received his Ph.D. in 1999 from the Department of Information and Computer Science at the University of California, Irvine. He also received an M.S. in Information and Computer Science in 1995 from the University of California, Irvine, and a B.S. in Computer Science summa cum laude in 1992 from the Computer Science and Engineering Department at Arizona State University. Medvidovic is a recipient of the U.S. National Science Foundation CAREER (2000) and ITR (2003) awards, as well as the Okawa Foundation Research Grant (2005). Medvidovic's research interests are in the area of architecture-based software development. His work focuses on software architecture modeling and analysis; middleware facilities for architectural implementation; product-line architectures; architectural styles; and architecture-level support for software development in highly distributed, mobile, resource constrained, and embedded computing environments.