Philip McKinley | Michigan State University (original) (raw)
Papers by Philip McKinley
In this dissertation, we describe a study in the evolution of distributed behavior, where evoluti... more In this dissertation, we describe a study in the evolution of distributed behavior, where evolutionary algorithms are used to discover behaviors for distributed computing systems. We define distributed behavior as that in which groups of individuals must both cooperate in working towards a common goal and coordinate their activities in a harmonious fashion. As such, communication among individuals is necessarily a key component of distributed behavior, and we have identified three classes of distributed behavior that require communication: data-driven behaviors, where semantically meaningful data is transmitted between individuals; temporal behaviors, which are based on the relative timing of individuals’ actions; and structural behaviors, which are responsible for maintaining the underlying communication network connecting individuals. Our results demonstrate that evolutionary algorithms can discover groups of individuals that exhibit each of these different classes of distributed behavior, and that these behaviors can be discovered both in isolation (e.g., evolving a purely data-driven algorithm) and in concert (e.g., evolving an algorithm that includes both data-driven and structural behaviors). As part of this research, we show that evolutionary algorithms can discover novel heuristics for distributed computing, and hint at a new class of distributed algorithm enabled by such studies. The majority of this research was conducted with the Avida platform for digital evolution, a system that has been proven to aid researchers in understanding the biological process of evolution by natural selection. For this reason, the results presented in this dissertation provide the foundation for future studies that examine how distributed behaviors evolved in nature. The close relationship between evolutionary biology and evolutionary algorithms thus aids our study of evolving algorithms for the next generation of distributed computing systems.
The need for adaptability in software is growing, driven in part by the emergence of pervasive an... more The need for adaptability in software is growing, driven in part by the emergence of pervasive and autonomic computing. In many cases, it is desirable to enhance existing programs with adaptive behavior, enabling them to execute effectively in dynamic environments. In this paper, we propose a general programming model called transparent shaping to enable dynamic adaptation in existing programs. We describe an approach to implementing transparent shaping that combines four key software development techniques: aspect-oriented programming to realize separation of concerns at development time, behavioral reflection to support software reconfiguration at run time, component-based design to facilitate independent development and deployment of adaptive code, and adaptive middleware to encapsulate the adaptive functionality. After presenting the general model, we discuss two specific realizations of transparent shaping that we have developed and used to create adaptable applications from existing programs.
An overlay network is a logical abstraction of the underlying physical network, comprising end no... more An overlay network is a logical abstraction of the underlying physical network, comprising end nodes and paths between end-node pairs. Many applications, such as multicast and content distribution, can exploit the high flexibility, deployability, and computing capability of end systems to provide better network services. Overlay networks provide a software infrastructure on which to build such applications. A fundamental issue in overlay network management is the construction of the overlay topology. The performance and reliability of an overlay topology depends on the structure of the underlying physical topology, the characteristics of the end nodes, and the qualities of the end-to-end paths connecting those nodes. We define the set of comprised physical links of the end-to-end paths as the underlay of the overlay network. In this research, we investigate the potential costs and benefits of exploiting underlay information to facilitate overlay network construction and adaptation. Our contributions can be summarized in the following two areas. First, we propose several algorithms that exploit underlay information to conduct efficient path monitoring and construct high-quality overlay topologies. (1) We exploit the overlap among overlay paths in sparse networks to design an underlay-aware monitoring approach that trades probing overhead for estimation accuracy in such environments. The approach uses network-level path composition information to infer path quality without full-scale pairwise probing. It can significantly reduce probing overhead while providing bounded quality estimations for all n × ( n - 1) overlay paths. (2) We introduce an underlay-aware spanning tree construction algorithm for endsystem multicast. The algorithm uses network-level path composition information to build an overlay spanning tree that minimizes maximum link-stress while satisfying diameter constraints. (3) We study the problem of multipath overlay routing. We propose an underlay-aware algorithm that uses network-level path composition and quality information to select multiple paths between source and destination nodes. The algorithm can be used to improve communication quality in systems where data traffic on different paths interacts with each other. Second, we address the implementation issues associated with the proposed algorithms. (1) We propose a distributed implementation of the underlay-aware monitoring approach. The implementation uses a minimum diameter, link-stress bounded overlay spanning tree constructed by the underlay-aware spanning tree algorithm to disseminate path quality information. This implementation can reduce probing overhead while balancing link stress on the spanning tree. (2) We investigate practical issues of implementing the underlay-aware monitoring approach in peer-to-peer networks where participating nodes may be selfish. We propose pricing mechanisms to charge nodes that request monitoring results, with payments to the nodes that conduct monitoring. These mechanisms can encourage truthful collaboration among peer nodes and help to achieve optimality of the proposed underlay-aware monitoring approach. (3) We design a distributed multipath chassis for overlay network applications that use the underlay-aware multipath algorithm. The chassis combines the dissemination of path quality and composition information with parallel path exploration to facilitate joint path quality computation and path selection. In summary, this research reveals that overlay network applications can exploit network underlay information to conduct efficient path monitoring and construct high-quality overlay topologies such as spanning trees and multipath plans. The proposed approaches can be used in practical overlay systems to improve communication efficiency and adaptability.
Multicasting of compressed video streams over wireless networks demands significantly different a... more Multicasting of compressed video streams over wireless networks demands significantly different approaches to error control than those used in wired networks, due to high packet loss rate. This paper describes an experimental study of a proxy service to enhance interactive MPEG-I video streams when multicast across wireless local area networks. The architecture and operation of the proxy service are presented, followed by results of a performance study conducted on a mobile computing testbed. The main contribution of the paper is to show that a combination of forward and backward error control is eflective when applied to video streams f o r mobile collaborating users. * This work was supported in part by the NSF grants CDA-9617310.
International Conference on Parallel Processing, 1991
ABSTRACT More recently, multicast communication has been included in multicomputer systems. Multi... more ABSTRACT More recently, multicast communication has been included in multicomputer systems. Multicast communication refers to the delivery of the same message from a source node to an arbitrary number of destination nodes. The performance of multicomputers is highly dependent on the message routing scheme and the communication mechanism. Wormhole routing is the most promising switching technique used in the new generation multicomputers. The authors propose a multicast wormhole routing algorithm for 2D-torus multicomputers. The multicast routing algorithm is based on a path-like routing scheme and offers a deadlock-free routing. Comparing with the 2D-mesh multicomputers, the authors simulation show that the multipath routing algorithm for 2D-torus multicomputers can reduce the communication traffic and the maximum distance in multicast communication
IEEE Transactions on Parallel and Distributed Systems, 1997
A new approach to the design of collective communication operations in wormhole-routed mesh netwo... more A new approach to the design of collective communication operations in wormhole-routed mesh networks is described. The approach extends the concept of dominating sets in graph theory by accounting for the relative distance-insensitivity of the wormhole switching strategy and by taking advantage of a multiport communication architecture, which allows each node to simultaneously transmit messages on different outgoing channels. Collective
IEEE Transactions on Parallel and Distributed Systems, 1995
Absfrucf-This paper presents efficient algorithms that implement one-tbmany, or multicast, commun... more Absfrucf-This paper presents efficient algorithms that implement one-tbmany, or multicast, communication in wormholerouted torus networks. By exploiting the properties of the switching technology and the use of virtual channels, a minimumtime multicast algorithm is presented for n-dimensional torus networks that use deterministic, dimension-ordered routing of unicast messages. The algorithm can deliver a multicast message to m-1 destinations in hog2 ml nkage-passing steps, while avoiding contention among the constituent unicast messages. Performance results of a simulation study on torus networks with up to 4096 nodes are also given.
Understanding the evolution of cooperation as part of an evolutionary stable strategy (ESS) is a ... more Understanding the evolution of cooperation as part of an evolutionary stable strategy (ESS) is a difficult problem that has been the focus of much work. The associated costs of cooperation may lower the fitness of an organism below that of its non-cooperating counterpart, allowing the more fit organism to persist and outcompete the cooperator. Insight into these behaviors can help provide a better understanding of many aspects of the natural world, as well as provide future avenues for fighting disease. In this study, we use digital evolution to examine how the abundance of a required resource affects the cooperative production of a public good in an adverse environment. Evolutionary computation is an excellent tool for examining these problems, as it offers researchers complete access to organisms and total control over their environment. We find that stable cooperation can occur in otherwise competitive environments at discrete levels corresponding to the availability of a required resource. When resource levels are low, organisms focus solely on competitive behaviors. However, once resource levels cross a critical threshold, cooperation persists in populations. Further, this cooperation occurs in patches, where it is most likely to benefit relatives. Finally, we find that in some cases this cooperative behavior allows organisms to increase their competitive abilities as well.
Over the past few decades, evolutionary computation (EC) has grown substantially in use for biolo... more Over the past few decades, evolutionary computation (EC) has grown substantially in use for biologists and engineers alike. Its transparency makes it an indispensable tool for studying evolutionary- and ecological dynamics, and it has provided researchers with new insights that would be tremendously difficult, if not impossible, to gain using natural systems. In addition, EC has proven to be a powerful search algorithm for engineering applications, and has produced numerous novel and human-competitive solutions to complex problems. Although several well-established packages are readily available, it seems that when most users harness the power of evolutionary computation, they do so using "home-grown" solutions. This can likely be attributed to the ease with which simple models are created, the user's need for customization, and the sizeable learning barrier imposed by available solutions, as well as difficulties in extending them. We present SEEDS, a modular, open-source platform for conducting evolutionary computation experiments. SEEDS provides a simple, flexible, and extensible foundation that enables users with minimal programming experience to perform complex evolutionary and ecological simulations without having to first implement core functionality. In addition, SEEDS provides the tools necessary to make sharing data and reproducing experiments both easy and convenient.
Software Engineering and Knowledge Engineering, 2008
Identifying design patterns within an existing software system can support understandability and ... more Identifying design patterns within an existing software system can support understandability and reuse of the system's core functionality. In this context, incorporating behavioral features into the design pattern recovery would enhance the scalability of the process. The main advantage of the new approach in this paper over the existing approaches is incorporating dynamic analysis and feature localization in source code. This allows us to perform a goal-driven design pattern detection and focus ourselves on patterns that implement specific software functionality, as opposed to conducting a general pattern detection which is susceptible to high complexity problem. Using a new pattern description language and a matching process we identify the instances of these patterns within the obtained classes and interactions. We use a two-phase matching process: i) an approximate matching of class attributes generates a list of candidate patterns; and ii) a structural matching of classes identifies exact matched patterns. One target application domain can be software product line which emphasizes on reusing core software artifacts to construct a reference architecture for several similar products. Finally, we present the result of a case study.
RAPIDware is a collection of software design techniques for constructing adaptive middleware to s... more RAPIDware is a collection of software design techniques for constructing adaptive middleware to support collaborative computing. This paper describes an experimental study in the design of adaptive proxy services for resource-limited mobile hosts. The approach is based on detachable Java I/O streams, which enable proxy filters and transcoders to be dynamically inserted, deleted, and reordered on a given data stream. Unlike conventional Java I/O streams, detachable streams can be stopped, disconnected, reconnected, and restarted. As such, they provide the "glue" needed to to support the dynamic composition of proxy services. The operation and implementation of detachable streams are described, followed by a discussion of their use in demanddriven forward error correction services for wireless hosts.
Journal of Parallel and Distributed Computing, Sep 1, 1994
In massively parallel computers (MPCs), efficient communication among processors is critical to p... more In massively parallel computers (MPCs), efficient communication among processors is critical to performance. This paper describes the initial implementation of the ComPaSS communication library to support scalable software development in MPCs. ComPaSS provides high-level global communication operations for both data manipulation and process control, many of which are based upon a small set of low-level communication primitives. The low-level operations
Journal of Parallel and Distributed Computing, Jul 1, 1995
We study the issues of adaptive multicast wormhole routing in 2D mesh multicomputers. Three adapt... more We study the issues of adaptive multicast wormhole routing in 2D mesh multicomputers. Three adaptive multicast wormhole routing strategies ;Lre proposed and studied~ which include miaitaal partial adaptive, minima] fuity adaptive anti nonminimal multicast routing methods. All the algorithms are shown to be deadlock-free. These are the first deadlock-free adaptive multicast wormhole routing algorithms ever proposed. A simulation study has been conducted that compares the performance of these multicast algorithms. The results show that the minimal fully adaptive routing method creates the least traffic~ however, double vertical channels are required in order to avoid deadlock. The nonminimal routing algorithin exhibit~ the best adaptivity, although it creates more network traffic than tile otlaer mettmds.
This paper presents a case study in the use of reliable multicasting in Web-based multi-party app... more This paper presents a case study in the use of reliable multicasting in Web-based multi-party applications. To carry out this study, we have designed and implemented WEBCLASS, a multicast browser tool written in Java. In WEBCLASS, all the actions of a "master" Web browser are mimicked on a set of client browsers. Monitoring of the master browser is performed by
Future Generation Computer Systems, Aug 1, 2020
Security certification establishes that a given system satisfies properties and constraints as sp... more Security certification establishes that a given system satisfies properties and constraints as specified in the system security profile. Mechanisms and techniques have been developed to assess if and how well the system complies with the properties, thereby providing a degree of confidence in the security certification. Generally, certification of security controls defined by NIST SP800-53 is performed at design time to provide confidence in a system's trustworthiness to achieve the organization's mission and business requirements. Assuring confidence in a self-adaptive system's security profile is challenging when both functional and security conditions may change at run time. Static security solutions are insufficient, given that dynamic application of defense mechanisms often needs to dynamically adapt security functionality at run time as part of self-protection. This security adaptation may hinder maintaining functional constraints or vice versa. In addition, adaptation capabilities may give rise to the need for dynamic certification, which can be a difficult procedure given the complexity of the security dependencies. Confidence in an information system's compliance with security constraints can be expressed using security assurance cases (SACs). NIST security controls are defined with a hierarchical structure that makes them amenable to being specified in terms of SACs. A collection of SACs for related security controls form a network that can be used to measure the confidence of security compliance through certification-based evidence. Once the system is deployed, environmental and functional uncertainties may require the coordination of functional and security adaptations. This paper introduces the MAPE-SAC, a security-focused feedback control loop, and its interaction with a MAPE-K, function and performance-focused control loop, to dynamically manage run-time adaptations in response to changes in functional and security conditions. We illustrate the use of both control loops and their interaction with an example of two independent systems that need to cooperate to facilitate autonomous search and rescue in the aftermath of a natural disaster.
Artificial Life, Feb 1, 2017
We investigate a hierarchical approach to robot control inspired by joint-level control in animal... more We investigate a hierarchical approach to robot control inspired by joint-level control in animals. The method combines a high-level controller, consisting of an artificial neural network (ANN), with joint-level controllers based on digital muscles. In the digital muscle model (DMM), morphological and control aspects of joints evolve concurrently, emulating the musculoskeletal system of natural organisms. We introduce and compare different approaches for connecting outputs of the ANN to DMM-based joints. We also compare the performance of evolved animats with ANN-DMM controllers with those governed by only high-level (ANN-only) and low-level (DMM-only) controllers. These results show that DMM-based systems outperform their ANN-only counterparts while also exhibiting less complex ANNs in terms of the number of connections and neurons. The main contribution of this work is to explore the evolution of artificial systems where, as in natural organisms, some aspects of control are realized at the joint level.
In this dissertation, we describe a study in the evolution of distributed behavior, where evoluti... more In this dissertation, we describe a study in the evolution of distributed behavior, where evolutionary algorithms are used to discover behaviors for distributed computing systems. We define distributed behavior as that in which groups of individuals must both cooperate in working towards a common goal and coordinate their activities in a harmonious fashion. As such, communication among individuals is necessarily a key component of distributed behavior, and we have identified three classes of distributed behavior that require communication: data-driven behaviors, where semantically meaningful data is transmitted between individuals; temporal behaviors, which are based on the relative timing of individuals’ actions; and structural behaviors, which are responsible for maintaining the underlying communication network connecting individuals. Our results demonstrate that evolutionary algorithms can discover groups of individuals that exhibit each of these different classes of distributed behavior, and that these behaviors can be discovered both in isolation (e.g., evolving a purely data-driven algorithm) and in concert (e.g., evolving an algorithm that includes both data-driven and structural behaviors). As part of this research, we show that evolutionary algorithms can discover novel heuristics for distributed computing, and hint at a new class of distributed algorithm enabled by such studies. The majority of this research was conducted with the Avida platform for digital evolution, a system that has been proven to aid researchers in understanding the biological process of evolution by natural selection. For this reason, the results presented in this dissertation provide the foundation for future studies that examine how distributed behaviors evolved in nature. The close relationship between evolutionary biology and evolutionary algorithms thus aids our study of evolving algorithms for the next generation of distributed computing systems.
The need for adaptability in software is growing, driven in part by the emergence of pervasive an... more The need for adaptability in software is growing, driven in part by the emergence of pervasive and autonomic computing. In many cases, it is desirable to enhance existing programs with adaptive behavior, enabling them to execute effectively in dynamic environments. In this paper, we propose a general programming model called transparent shaping to enable dynamic adaptation in existing programs. We describe an approach to implementing transparent shaping that combines four key software development techniques: aspect-oriented programming to realize separation of concerns at development time, behavioral reflection to support software reconfiguration at run time, component-based design to facilitate independent development and deployment of adaptive code, and adaptive middleware to encapsulate the adaptive functionality. After presenting the general model, we discuss two specific realizations of transparent shaping that we have developed and used to create adaptable applications from existing programs.
An overlay network is a logical abstraction of the underlying physical network, comprising end no... more An overlay network is a logical abstraction of the underlying physical network, comprising end nodes and paths between end-node pairs. Many applications, such as multicast and content distribution, can exploit the high flexibility, deployability, and computing capability of end systems to provide better network services. Overlay networks provide a software infrastructure on which to build such applications. A fundamental issue in overlay network management is the construction of the overlay topology. The performance and reliability of an overlay topology depends on the structure of the underlying physical topology, the characteristics of the end nodes, and the qualities of the end-to-end paths connecting those nodes. We define the set of comprised physical links of the end-to-end paths as the underlay of the overlay network. In this research, we investigate the potential costs and benefits of exploiting underlay information to facilitate overlay network construction and adaptation. Our contributions can be summarized in the following two areas. First, we propose several algorithms that exploit underlay information to conduct efficient path monitoring and construct high-quality overlay topologies. (1) We exploit the overlap among overlay paths in sparse networks to design an underlay-aware monitoring approach that trades probing overhead for estimation accuracy in such environments. The approach uses network-level path composition information to infer path quality without full-scale pairwise probing. It can significantly reduce probing overhead while providing bounded quality estimations for all n × ( n - 1) overlay paths. (2) We introduce an underlay-aware spanning tree construction algorithm for endsystem multicast. The algorithm uses network-level path composition information to build an overlay spanning tree that minimizes maximum link-stress while satisfying diameter constraints. (3) We study the problem of multipath overlay routing. We propose an underlay-aware algorithm that uses network-level path composition and quality information to select multiple paths between source and destination nodes. The algorithm can be used to improve communication quality in systems where data traffic on different paths interacts with each other. Second, we address the implementation issues associated with the proposed algorithms. (1) We propose a distributed implementation of the underlay-aware monitoring approach. The implementation uses a minimum diameter, link-stress bounded overlay spanning tree constructed by the underlay-aware spanning tree algorithm to disseminate path quality information. This implementation can reduce probing overhead while balancing link stress on the spanning tree. (2) We investigate practical issues of implementing the underlay-aware monitoring approach in peer-to-peer networks where participating nodes may be selfish. We propose pricing mechanisms to charge nodes that request monitoring results, with payments to the nodes that conduct monitoring. These mechanisms can encourage truthful collaboration among peer nodes and help to achieve optimality of the proposed underlay-aware monitoring approach. (3) We design a distributed multipath chassis for overlay network applications that use the underlay-aware multipath algorithm. The chassis combines the dissemination of path quality and composition information with parallel path exploration to facilitate joint path quality computation and path selection. In summary, this research reveals that overlay network applications can exploit network underlay information to conduct efficient path monitoring and construct high-quality overlay topologies such as spanning trees and multipath plans. The proposed approaches can be used in practical overlay systems to improve communication efficiency and adaptability.
Multicasting of compressed video streams over wireless networks demands significantly different a... more Multicasting of compressed video streams over wireless networks demands significantly different approaches to error control than those used in wired networks, due to high packet loss rate. This paper describes an experimental study of a proxy service to enhance interactive MPEG-I video streams when multicast across wireless local area networks. The architecture and operation of the proxy service are presented, followed by results of a performance study conducted on a mobile computing testbed. The main contribution of the paper is to show that a combination of forward and backward error control is eflective when applied to video streams f o r mobile collaborating users. * This work was supported in part by the NSF grants CDA-9617310.
International Conference on Parallel Processing, 1991
ABSTRACT More recently, multicast communication has been included in multicomputer systems. Multi... more ABSTRACT More recently, multicast communication has been included in multicomputer systems. Multicast communication refers to the delivery of the same message from a source node to an arbitrary number of destination nodes. The performance of multicomputers is highly dependent on the message routing scheme and the communication mechanism. Wormhole routing is the most promising switching technique used in the new generation multicomputers. The authors propose a multicast wormhole routing algorithm for 2D-torus multicomputers. The multicast routing algorithm is based on a path-like routing scheme and offers a deadlock-free routing. Comparing with the 2D-mesh multicomputers, the authors simulation show that the multipath routing algorithm for 2D-torus multicomputers can reduce the communication traffic and the maximum distance in multicast communication
IEEE Transactions on Parallel and Distributed Systems, 1997
A new approach to the design of collective communication operations in wormhole-routed mesh netwo... more A new approach to the design of collective communication operations in wormhole-routed mesh networks is described. The approach extends the concept of dominating sets in graph theory by accounting for the relative distance-insensitivity of the wormhole switching strategy and by taking advantage of a multiport communication architecture, which allows each node to simultaneously transmit messages on different outgoing channels. Collective
IEEE Transactions on Parallel and Distributed Systems, 1995
Absfrucf-This paper presents efficient algorithms that implement one-tbmany, or multicast, commun... more Absfrucf-This paper presents efficient algorithms that implement one-tbmany, or multicast, communication in wormholerouted torus networks. By exploiting the properties of the switching technology and the use of virtual channels, a minimumtime multicast algorithm is presented for n-dimensional torus networks that use deterministic, dimension-ordered routing of unicast messages. The algorithm can deliver a multicast message to m-1 destinations in hog2 ml nkage-passing steps, while avoiding contention among the constituent unicast messages. Performance results of a simulation study on torus networks with up to 4096 nodes are also given.
Understanding the evolution of cooperation as part of an evolutionary stable strategy (ESS) is a ... more Understanding the evolution of cooperation as part of an evolutionary stable strategy (ESS) is a difficult problem that has been the focus of much work. The associated costs of cooperation may lower the fitness of an organism below that of its non-cooperating counterpart, allowing the more fit organism to persist and outcompete the cooperator. Insight into these behaviors can help provide a better understanding of many aspects of the natural world, as well as provide future avenues for fighting disease. In this study, we use digital evolution to examine how the abundance of a required resource affects the cooperative production of a public good in an adverse environment. Evolutionary computation is an excellent tool for examining these problems, as it offers researchers complete access to organisms and total control over their environment. We find that stable cooperation can occur in otherwise competitive environments at discrete levels corresponding to the availability of a required resource. When resource levels are low, organisms focus solely on competitive behaviors. However, once resource levels cross a critical threshold, cooperation persists in populations. Further, this cooperation occurs in patches, where it is most likely to benefit relatives. Finally, we find that in some cases this cooperative behavior allows organisms to increase their competitive abilities as well.
Over the past few decades, evolutionary computation (EC) has grown substantially in use for biolo... more Over the past few decades, evolutionary computation (EC) has grown substantially in use for biologists and engineers alike. Its transparency makes it an indispensable tool for studying evolutionary- and ecological dynamics, and it has provided researchers with new insights that would be tremendously difficult, if not impossible, to gain using natural systems. In addition, EC has proven to be a powerful search algorithm for engineering applications, and has produced numerous novel and human-competitive solutions to complex problems. Although several well-established packages are readily available, it seems that when most users harness the power of evolutionary computation, they do so using "home-grown" solutions. This can likely be attributed to the ease with which simple models are created, the user's need for customization, and the sizeable learning barrier imposed by available solutions, as well as difficulties in extending them. We present SEEDS, a modular, open-source platform for conducting evolutionary computation experiments. SEEDS provides a simple, flexible, and extensible foundation that enables users with minimal programming experience to perform complex evolutionary and ecological simulations without having to first implement core functionality. In addition, SEEDS provides the tools necessary to make sharing data and reproducing experiments both easy and convenient.
Software Engineering and Knowledge Engineering, 2008
Identifying design patterns within an existing software system can support understandability and ... more Identifying design patterns within an existing software system can support understandability and reuse of the system's core functionality. In this context, incorporating behavioral features into the design pattern recovery would enhance the scalability of the process. The main advantage of the new approach in this paper over the existing approaches is incorporating dynamic analysis and feature localization in source code. This allows us to perform a goal-driven design pattern detection and focus ourselves on patterns that implement specific software functionality, as opposed to conducting a general pattern detection which is susceptible to high complexity problem. Using a new pattern description language and a matching process we identify the instances of these patterns within the obtained classes and interactions. We use a two-phase matching process: i) an approximate matching of class attributes generates a list of candidate patterns; and ii) a structural matching of classes identifies exact matched patterns. One target application domain can be software product line which emphasizes on reusing core software artifacts to construct a reference architecture for several similar products. Finally, we present the result of a case study.
RAPIDware is a collection of software design techniques for constructing adaptive middleware to s... more RAPIDware is a collection of software design techniques for constructing adaptive middleware to support collaborative computing. This paper describes an experimental study in the design of adaptive proxy services for resource-limited mobile hosts. The approach is based on detachable Java I/O streams, which enable proxy filters and transcoders to be dynamically inserted, deleted, and reordered on a given data stream. Unlike conventional Java I/O streams, detachable streams can be stopped, disconnected, reconnected, and restarted. As such, they provide the "glue" needed to to support the dynamic composition of proxy services. The operation and implementation of detachable streams are described, followed by a discussion of their use in demanddriven forward error correction services for wireless hosts.
Journal of Parallel and Distributed Computing, Sep 1, 1994
In massively parallel computers (MPCs), efficient communication among processors is critical to p... more In massively parallel computers (MPCs), efficient communication among processors is critical to performance. This paper describes the initial implementation of the ComPaSS communication library to support scalable software development in MPCs. ComPaSS provides high-level global communication operations for both data manipulation and process control, many of which are based upon a small set of low-level communication primitives. The low-level operations
Journal of Parallel and Distributed Computing, Jul 1, 1995
We study the issues of adaptive multicast wormhole routing in 2D mesh multicomputers. Three adapt... more We study the issues of adaptive multicast wormhole routing in 2D mesh multicomputers. Three adaptive multicast wormhole routing strategies ;Lre proposed and studied~ which include miaitaal partial adaptive, minima] fuity adaptive anti nonminimal multicast routing methods. All the algorithms are shown to be deadlock-free. These are the first deadlock-free adaptive multicast wormhole routing algorithms ever proposed. A simulation study has been conducted that compares the performance of these multicast algorithms. The results show that the minimal fully adaptive routing method creates the least traffic~ however, double vertical channels are required in order to avoid deadlock. The nonminimal routing algorithin exhibit~ the best adaptivity, although it creates more network traffic than tile otlaer mettmds.
This paper presents a case study in the use of reliable multicasting in Web-based multi-party app... more This paper presents a case study in the use of reliable multicasting in Web-based multi-party applications. To carry out this study, we have designed and implemented WEBCLASS, a multicast browser tool written in Java. In WEBCLASS, all the actions of a "master" Web browser are mimicked on a set of client browsers. Monitoring of the master browser is performed by
Future Generation Computer Systems, Aug 1, 2020
Security certification establishes that a given system satisfies properties and constraints as sp... more Security certification establishes that a given system satisfies properties and constraints as specified in the system security profile. Mechanisms and techniques have been developed to assess if and how well the system complies with the properties, thereby providing a degree of confidence in the security certification. Generally, certification of security controls defined by NIST SP800-53 is performed at design time to provide confidence in a system's trustworthiness to achieve the organization's mission and business requirements. Assuring confidence in a self-adaptive system's security profile is challenging when both functional and security conditions may change at run time. Static security solutions are insufficient, given that dynamic application of defense mechanisms often needs to dynamically adapt security functionality at run time as part of self-protection. This security adaptation may hinder maintaining functional constraints or vice versa. In addition, adaptation capabilities may give rise to the need for dynamic certification, which can be a difficult procedure given the complexity of the security dependencies. Confidence in an information system's compliance with security constraints can be expressed using security assurance cases (SACs). NIST security controls are defined with a hierarchical structure that makes them amenable to being specified in terms of SACs. A collection of SACs for related security controls form a network that can be used to measure the confidence of security compliance through certification-based evidence. Once the system is deployed, environmental and functional uncertainties may require the coordination of functional and security adaptations. This paper introduces the MAPE-SAC, a security-focused feedback control loop, and its interaction with a MAPE-K, function and performance-focused control loop, to dynamically manage run-time adaptations in response to changes in functional and security conditions. We illustrate the use of both control loops and their interaction with an example of two independent systems that need to cooperate to facilitate autonomous search and rescue in the aftermath of a natural disaster.
Artificial Life, Feb 1, 2017
We investigate a hierarchical approach to robot control inspired by joint-level control in animal... more We investigate a hierarchical approach to robot control inspired by joint-level control in animals. The method combines a high-level controller, consisting of an artificial neural network (ANN), with joint-level controllers based on digital muscles. In the digital muscle model (DMM), morphological and control aspects of joints evolve concurrently, emulating the musculoskeletal system of natural organisms. We introduce and compare different approaches for connecting outputs of the ANN to DMM-based joints. We also compare the performance of evolved animats with ANN-DMM controllers with those governed by only high-level (ANN-only) and low-level (DMM-only) controllers. These results show that DMM-based systems outperform their ANN-only counterparts while also exhibiting less complex ANNs in terms of the number of connections and neurons. The main contribution of this work is to explore the evolution of artificial systems where, as in natural organisms, some aspects of control are realized at the joint level.