Theses and Dissertations at Montana State University (MSU)
Permanent URI for this collectionhttps://scholarworks.montana.edu/handle/1/733
Browse
2 results
Search Results
Item An autonomic software architecture for distributed applications(Montana State University - Bozeman, College of Engineering, 2007) Fuad, Mohammad Muztaba; Chairperson, Graduate Committee: Michael J. OudshoornAutonomic computing is a grand challenge in computing that aims to produce software that has the properties of self-configuration, self-healing, self-optimization and self-protection. Adding such autonomic properties into existing applications is immensely useful for redeploying them in an environment other than they were developed for. Such transformed applications can be redeployed in different dynamic environments without the user making changes to the application. However, creating such autonomic software entities is a significant challenge not only because of the amount of code transformation required but also for the additional programming needed for such conversion. This thesis presents techniques for injecting autonomic primitives into existing user code by statically analyzing the code and partitioning it to manageable autonomic components. Experiments show that such code transformations are challenging, however they are worthwhile in order to provide transparent autonomic behavior. Software architecture to provide such autonomic computing support is presented and evaluated to determine its suitability for a fully fledged autonomic computing system. The presented architecture is a novel peer-to-peer distributed object-based management automation architecture.Item Achieving self-managed deployment in a distributed environment via utility functions(Montana State University - Bozeman, College of Engineering, 2008) Deb, Debzani; Chairperson, Graduate Committee: John Paxton; Michael Oudshoorn (co-chair)This dissertation presents algorithms and mechanisms that enable self-managed, scalable and efficient deployment of large-scale scientific and engineering applications in a highly dynamic and unpredictable distributed environment. Typically these applications are composed of a large number of distributed components and it is important to meet the computational power and network bandwidth requirements of those components and their interactions. However satisfying these requirements in a large-scale, shared, heterogeneous, and highly dynamic distributed environment is a significant challenge. As systems and applications grow in scale and complexity, attaining the desired level of performance in this uncertain environment using current approaches based on global knowledge, centralized scheduling and manual reallocation becomes infeasible. This dissertation focuses on the modeling of the application and underlying architecture into a common abstraction and on the incorporations of autonomic features into those abstractions to achieve self-managed deployment. In particular, we developed techniques for automatically identifying application components and their estimated resource requirements within an application and used them in order to model the application into a graph abstraction. We also developed techniques that allow the distributed resources to self-organize in a utility-aware way while assuming minimal knowledge about the system. Finally, to achieve self-managed deployment of application components to the distributed nodes, we designed a scalable and adaptive scheduling algorithm which is governed by a utility function. The utility function, which combines several application and system level attributes, governs both the initial deployment of the application components and their reconfigurations despite the dynamism and uncertainty associated with the computing environment. The experimental results show that it is possible to achieve and maintain efficient deployment by applying the utility function derived in this paper based solely on locally available information and without costly global communication or synchronization. The self-management is therefore decentralized and provides better adaptability, scalability and robustness.