ABSTRACT

The advances in computing and communication technologies and software tools have resulted in an explosive growth in networked applications and information services that cover all aspects of our life. These services and applications are inherently complex, dynamic, and heterogeneous. In a similar way, the underlying information infrastructure, for example, the Internet, is large, complex, heterogeneous, and dynamic, globally aggregating large numbers of independent computing and communication resources, data stores, and sensor networks. The combination of the two results in application development, configuration, and management complexities that break current computing paradigms, which are based on static behaviors, interactions, and compositions of components and services. As a result, applications, programming environments, and information infrastructures are rapidly becoming brittle, unmanageable, and insecure. This has led researchers to consider alternative programming paradigms and management techniques that are based on strategies used by biological systems to deal with complexity, dynamism, heterogeneity, and uncertainty.