• No results found

Thesis Scope

In document Emergent software systems (Page 67-73)

to specific groups whilst their adjacent nodes remains in a fixed architecture. Af- ter the learning process occurs the knowledge is shared among the neighbourhood nodes, minimising interference effects. Information sharing occurs in the level of meta-structures, and the definition of the information to be shared and the related challenges involved in the sharing process is an issue to be further explored.

Behavioural mismatches

In a distributed system scenario, the micro-architectures in different nodes might implement behaviours that do not match to other interacting nodes. For examples, one micro-architecture might encode different schemes of encryption algorithms, making the nodes incompatible. A trivial solution for this problem is to manually define rules or impose constraints regarding aspects of the system behaviour. As discussed before, this solution is against the philosophy of emergent systems due to its restraining nature, limiting the reinforcement learning process. Emergent systems should have the freedom to explore and learn autonomously whilst simultaneously maintaining the system in a globally valid composition.

3.3

Thesis Scope

In this chapter a series of challenges and properties have been presented in both local and distributed settings of Emergent Software Systems. Although these chal- lenges are important to realise the concept of these systems, some of them are open issues and demand further investigation. This thesis focuses on the main challenges that allow the creation of the basis on which emergent solutions can be built on, showing the feasibility and the benefits of pushing emergent systems to the real world. In particular the scope of this thesis is on the challenges of self-assembling mechanisms, component-monitoring mechanisms and the reinforcement learning al- gorithm. These three main concerns, discussed in detail in Chapter 4, form the main challenges that support the implementation of emergent systems. Considering the specific challenges presented in this chapter, this thesis addresses the following:

3.3. Thesis Scope 68

• Online Learning Challenges (Sec. 3.2.1): Comparison difficulty, self-

referentiality and multi-dimensionality;

• Local Emergent Systems Challenges (Sec. 3.2.2): Divergent optimal-

ity, everything is relative, abstracting the environment and dynamic fitness landscapes;

• Distributed Emergent Systems Challenges (Sec. 3.2.3): Combinatorial

explosion, locus and personality of control, interference effects and behavioural mismatches.

This thesis presents a baseline learning algorithm that addresses the compari- son difficulty, everything is relative, abstracting the environment, dynamic fitness landscapes and multi-dimensionality challenges and properties of emergent systems. As an extension of the baseline algorithm, this thesis also presents a feature-based learning algorithm that focuses on the combinatorial explosion problem. This the- sis also presents an environment classification algorithm that directly tackles self- referentiality, multi-dimensionality and dynamic fitness landscapes challenges. Fi- nally, this thesis explores different coordination algorithms (complete centralised, complete decentralised and a hybrid approach) for locus and personality of con- trol in distributed settings. More specifically, this thesis proposes a hierarchical coordination learning approach (a hybrid approach – i.e. partially decentralised) to handle combinatorial explosion, interference effects and behavioural mismatches challenges. Finally, the divergent optimality property, which is essential to realise emergent systems, is very evident in the selected case study, making it ideal to ex- plore the concept of emergent software systems. On the other hand, the following challenges are out of this thesis’ scope:

• Online Learning Challenges (Sec. 3.2.1): Mid-window changes, observing

the past and hidden trends;

• Local Emergent Systems Challenges (Sec. 3.2.2): Data quality and per-

ception errors, application to critical systems, propagating errors as degraded health and developer interaction;

3.4. Summary 69

• Distributed Emergent Systems Challenges (Sec. 3.2.3): Information

sharing.

These challenges are not explored because i) they are not crucial to this thesis’ research goals, and ii) they require substantial investigation. Particularly, with re- gards to the ‘observing the past’ challenge, this thesis focuses on a reactive learning approach, rather than a mixed approach combining offline workload prediction and online observations of the executing environment, which is an interesting path for future work. The ‘information sharing’ challenge, for the evaluated scenario, is seen as an improvement over the learning approach, rather than an essential part of the solution. Nonetheless, the author recognises the importance of information shar- ing in distributed learning solutions, and its key role in supporting global optimal convergence, which is an interesting challenge to explore in the future. The ‘propa- gating errors as degraded health’ and ‘data quality and perception errors’ challenges are partially addressed, but further investigation is needed, specially in terms of sce- narios deliberately designed with high levels of error occurrence. The ‘mid-window changes’ and ‘hidden trends’ are identified limitations of the proposed environment classification algorithm and demand further investigation. Finally, the ‘application to critical systems’ and ‘developer interactions’ challenges are important to further explore the potential of Emergent Systems, but are not part of the research goals.

3.4

Summary

This chapter has defined Emergent Software Systems. These systems are autonomously composed from a set of component units according to a goal and influenced by the operating environment condition. The composition of such systems occurs at run- time considering the events affecting the system in production. The composition process is executed through an reinforcement learning approach, where the system architectural composition is assembled and experimented with at runtime, giving the system information to determine what the most appropriate architectural design is for the presented environment. This information is stored and used when previously seen conditions are encountered in the future. Reinforcement learning approaches

3.4. Summary 70 have to balance the exploration process that allows the system to accumulate knowl- edge and the exploitation of the most suitable architectural composition. Balancing between exploration and exploitation is key to maintain a good system performance, considering that inadequate compositions has real impact and consequences.

This chapter also presented the key properties of such systems and the chal- lenges to realise the vision of emergent systems. An important challenge is the implementation of the reinforcement learning process. This process presents chal- lenging issues such as: the difficulty to compare multiple architectural compositions on dynamic operating environments with unexpected changes, and the process to abstract and characterise operating environments. Another key challenge to realise emergent systems is the combinatorial explosion problem, which is severe in large distributed systems. This is a key challenge to address considering the combinato- rial nature of the proposed approach. Other challenges were also described such as: hidden trends and multi-dimensionality characteristic of the operating environment, the interference effects in the learning process of adjacent nodes, the mechanisms to share information among nodes to minimise impact on the system performance and the application of emergent system concept to critical applications. Although these challenges were presented in this chapter, it is important to remark that this thesis only focuses on the challenges that demonstrate the feasibility of emergent solutions. This involves: the combinatorial explosion problem, the interference ef- fect and the abstraction of the operating environment. The challenges that are not investigated in depth in this thesis are presented as promising research directions to further consolidate the Emergent Software Systems paradigm.

CHAPTER

4

Implementation

This chapter introduces the framework to enable the Emergent Software Systems concept in both local and distributed environments. The local framework consists of three modules: Perception,AssemblyandLearning, which names the framework PAL. These modules are the base of the concept of Emergent Systems and support online software composition, monitoring and learning. The distributed framework is an extension of the PAL framework, and support the interaction of emergent systems in distributed settings. The distributed framework modules are: Factory,Registry

andValidatormodules. This chapter describes the implementation of each module,

and details their interaction to realise the concept of Emergent Systems. The chap- ter is divided into the following sections: Sec. 4.1 presents an overview of the local modules and their interaction to support the Emergent System concept. Sec. 4.2 presents details of the Assembly module and all the concepts and principles behind autonomous software composition. Sec. 4.3 introduces the Perception module and the concepts that enable the system to collect information about its health status and its operating conditions. Sec. 4.4 details the reinforcement learning approach. Finally, the distributed framework modules are introduced in Sec. 4.5. These mod- ules enable the expansion of the PAL framework to support Emergent Systems in distributed environments, realising the concept of Distributed Emergent Systems.

4.1. Local Emergent Systems 72

Figure 4.1: PAL framework architecture.

4.1

Local Emergent Systems

The local framework supports the concept of Emergent Software System based on three modules: Perception, Assembly and Learning, illustrated in Fig 4.1. As described in Chapter 3, Emergent Systems have the ability to autonomously com- pose software architectures from small and reusable software components according to the observed operating environment. The Assembly searches for components in the repository, creates an in-memory representation of all available architectural compositions the system can be assembled into, and supports composition changes at runtime. The Perception module generates and adds proxy components to the system’s architectures to monitor the system health status and the operating envi- ronment. Finally, the Learning module leads the entire autonomous software design- by-composition process through the reinforcement learning approach implemented. The interaction among the three modules is depicted in Fig. 4.1. The framework is organised in a multi-tier architecture in which the upper layers use the functions of the lower-level layers to abstract fine-grained function-calls and provide higher level functionalities. The multi-tier modular architecture ensures that each of the participating modules implement a well-defined set of functionalities to the upper- level. Although the main modules were designed to be generic and applicable to any application domain, this modular structure allows each module to be replaced by a

4.2. Assembly Module 73

In document Emergent software systems (Page 67-73)