Towards software architecture runtime models for continuous adaptive - - PowerPoint PPT Presentation

towards software architecture runtime models for
SMART_READER_LITE
LIVE PREVIEW

Towards software architecture runtime models for continuous adaptive - - PowerPoint PPT Presentation

13th International Workshop on Models@run.time Towards software architecture runtime models for continuous adaptive monitoring Thomas Brand, Holger Giese 14.10.2018 Agenda Show why it is relevant to investigate and support: Continuous


slide-1
SLIDE 1

13th International Workshop on Models@run.time

Towards software architecture runtime models for continuous adaptive monitoring

Thomas Brand, Holger Giese 14.10.2018

slide-2
SLIDE 2

Agenda

▪ Show why it is relevant to investigate and support: ▪ Continuous adaptive monitoring ▪ Modeling languages for long living runtime model instances ▪ Demonstrate the significance of the modeling language ▪ Describe the planned roadmap for proposing an evaluated solution ▪ Derive requirements from illustrative scenarios and indicate how they are supported by two existing approaches ▪ Questions and discussion

2

slide-3
SLIDE 3

Relevancy

3

Why does monitoring need to be adaptive? Why is monitoring adaptation without interruption important? How does the runtime model modeling language relate to this?

slide-4
SLIDE 4

Setting the context

“models@run.time is an abstraction of a running system that is being manipulated at runtime for a specific purpose” Please imagine a software architecture runtime model thinking of: ▪ graph in a datastore ▪ running system ▪ current monitoring results ▪ analysis and phenomena detection processes

4

[Bencomo.2013]

slide-5
SLIDE 5

QueryService pooledConnectionsCount: Integer pooledConnectionsMax: Interger Meta-model level Runtime model level System representation content Modeling language definition content

Classical Model-Driven Engineering approach

5

Modeling language implementation with an API to create models Monitoring 2.) use Query based on types e.g.: QueryService. pooledConnectionCount > 5 4.) access

qs1:QueryService <<instanceOf>> pooledConnectionsCount = 5 pooledConnectionsMax =10

slide-6
SLIDE 6

Motivation

▪ Monitored system and information demands change over time ▪ Usage measurement and experimentation in software product development ▪ Highly dynamic architectures based on microservices ▪ Exploration and exploitation with machine learning … ▪ Modeling language determines possible information types ▪ Evolving the modeling language requires a model re-instantiation ▪ Re-instantiations interrupt the monitoring and phenomena detection processes and endanger continuous system operation ▪ A flexible modeling language regarding the types of information in the runtime model ▪ Makes long living runtime model instances possible and supports continuous adaptive monitoring and system operation ▪ Increases the feasibility of runtime models for additional fields of application

6

slide-7
SLIDE 7

Significance of the modeling language

7

To better understand: Can you show how the modeling language is actually significant?

slide-8
SLIDE 8

QueryService pooledConnectionsCount: Integer pooledConnectionsMax: Interger Meta-model level Runtime model level System representation content Modeling language definition content

Information demand changes - Filtering

8

Modeling language implementation with an API to create models Monitoring 1.) use Query based on types e.g.: QueryService. pooledConnectionCount > 5 3.) access

qs1:QueryService <<instanceOf>> pooledConnectionsCount = 5 pooledConnectionsMax =10

Monitoring adaptation engine 5.) adapt [Brand.2018]

slide-9
SLIDE 9

QueryService qs1:QueryService <<instanceOf>> pooledConnectionsCount: Integer pooledConnectionsMax: Interger pooledConnectionsCount = 5 pooledConnectionsMax =10 Meta-model level Runtime model level System representation content Modeling language definition content qs2:QueryService pooledConnectionsCount = 5 pooledConnectionsMax =10 <<instanceOf>>

Running system changes - System adaptation

9

Modeling language implementation with an API to create models Monitoring 1.) use Query based on types e.g.: QueryService. pooledConnectionCount > 5

slide-10
SLIDE 10

QueryService :RegionItemFilter <<instanceOf>> pooledConnectionsCount: Integer pooledConnectionsMax: Interger mode = 51 Meta-model level Runtime model level System representation content Modeling language definition content :QueryService pooledConnectionsCount = 5 pooledConnectionsMax =10 <<instanceOf>> RegionItemFilter mode: Integer

Running system changes - System evolution

10

Modeling language implementation with an API to create models Monitoring 2.) use

Discontinuity!

Query based on types e.g.: QueryService. pooledConnectionCount > 5

slide-11
SLIDE 11

QueryService :QueryService <<instanceOf>> pooledConnectionsCount: Integer pooledConnectionsMax: Interger cachedStatementsCount : Integer cachedStatementsMax: Integer pooledConnectionsCount = 5 pooledConnectionsMax =10 cachedStatementsCount = 27 cachedStatementsMax = 50 Meta-model level Runtime model level System representation content Modeling language definition content

Running system changes - Software evolution

11

Modeling language implementation with an API to create models Monitoring 2.) use 4.) access

Query based on types e.g.: QueryService. pooledConnectionCount > 5

Discontinuity!

slide-12
SLIDE 12

The CompArch approach

12

There is a way to improve the situation compared to the classical approach!?

slide-13
SLIDE 13

Dynamic Object Model pattern

13

[Riehle.2005]

Model level Model content Classifier definition content ComponentType Component type instance * 1 type instance * 1 propertyType * * PropertyType property * 1 Property Value 1 1

slide-14
SLIDE 14

The CompArch approach

14

[Vogel.2018]

Meta-model level Runtime model level System representation content Classifier definition content Modeling language definition content ComponentType Component 1 * ParameterType Parameter name : String name : String type : String value : String MonitoredProperty name : String type : String value : String 1 * * 1 * 1 * 1 ComponentType <<instanceOf>> ParameterType name = "QueryService" name = "pooledConnectionsMax" type = "Integer" <<instanceOf>> :Component classifies 4 <<instanceOf>> :Parameter value = "10" :MonitoredProperty name = "pooledConnectionsCount" type = "Integer" value = "5" <<instanceOf>> <<instanceOf>> classifies 4

slide-15
SLIDE 15

Planned roadmap towards a prospective solution

15

Does this approach fulfill the requirements? What actually are the important requirements? How shall the proposed solution be evaluated?

slide-16
SLIDE 16

Discover a coherent set of requirements

Planned roadmap towards a prospective solution

16

Validate Survey existing languages Describe illustrative scenarios Elaborate and evaluate a solution

Information demand changes Running system changes

slide-17
SLIDE 17

Illustrative scenarios and requirements

17

Can you give us some examples of scenarios and requirements?

slide-18
SLIDE 18

Scenarios and requirements overview

Requirements R1 - Updating system representation structure and values R2 - Indicating the actual information demand R3 - Introducing new classifiers including classifier versions R4 - Withdrawing obsolete classifiers R5 - Establishing new kinds of relationships R6 - Assigning multiple classifiers progressively R7 - Integrating multiple classifier systems R8 - Introducing new logical elements and relationships

18

Illustrative scenarios S1 - System adaptation S2 - System evolution S3 - Software evolution S4 - Systems integration and division S5 - Filtering S6 - Aggregation S7 - Itemization S8 - Generalization and specialization Information demand changes Running system changes

slide-19
SLIDE 19

Example system

19

Simplified mRUBiS runtime model

[Vogel.2018]

Multiple tenants

slide-20
SLIDE 20

ComponentType :Component classifies 4 version = "2.0.0" name = "QueryService" ParameterType classifies 4 name = "pooledConnectionsMax" Runtime model level System representation content Classifier definition content ParameterType name = "cachedStatementsMax" :Parameter value = 10 :Parameter value = 50 classifies 4

Running system changes

S3 - Software evolution

▪ Conduct an experiment with new software product version ▪ Deploy a new version of the QueryService component to early adopter tenants ▪ Represent new component version with additional properties besides the old

20

Requirements Classic ComArch R3 - Introducing new classifiers including classifier versions

  • (✓)

S3 - Software evolution

  • (✓)
slide-21
SLIDE 21

Running system Monitoring instrument Monitoring instrument Monitoring instrument Runtime model

Aggregation not visible in the runtime model (on the monitoring instrument level) Information demand changes

S6 - Aggregation - Case 1: Invisible

21

slide-22
SLIDE 22

Information demand changes

S6 - Aggregation - Case 2: Visible

22 ComponentType :Component classifies 4 name = "QueryService" PropertyType name = "pooledConnectionsCount" Runtime model level System representation content Classifier definition content :Property value = 12 ComponentType :Component name = "QueryComponent" :Property value = 4 :Component :Property value = 8 aggregates ComponentType :Component classifies 4 name = "QueryComponent" Runtime model level System representation content Classifier definition content ComponentType :Component name = "QueryOptimizer" :Component aggregates ComponentType name = "Indexer"

Aggregation visible in the runtime model Case 2.a: Functional aggregation Case 2.b: Structural aggregation

slide-23
SLIDE 23

Information demand changes

S6 - Aggregation

▪ Represent the service which all query component instances provide together ▪ Aggregate on the monitoring instrument level ▪ Provide the sum of exceptions for all early adaptors of query service v2.0.0 ▪ Aggregate on the runtime model level

23

Requirements Classic ComArch R3 - Introducing new classifiers including classifier versions

  • (✓)

R4 - Withdrawing obsolete classifiers

R5 - Establishing new kinds of relationships

  • R8 - Introducing new logical elements and relationships
  • (✓)

S6 - Aggregation

slide-24
SLIDE 24

Information demand changes

S8 - Generalization and specialization

▪ Indicate potential for configuration

  • ptimization by reporting two filters

▪ Query the number-of-filtered-items property which is common for all filter types ▪ Consider ten filters of different types in a general way for the query ▪ Have a specific and a more general classifier assigned to each filter

24

Requirements Classic ComArch R6 - Assigning multiple classifiers progressively

  • S8 - Generalization and specialization
  • ComponentType

:Component classifies 4 name = "CategoryItemFilter" Runtime model level System representation content Classifier definition content ComponentType name = "Filter" :Component ComponentType name = "RegionItemFilter"

slide-25
SLIDE 25

Illustrative scenarios and requirements

25

What are the remaining scenarios and identified requirements? How far are the requirements covered by the two approaches you looked at?

slide-26
SLIDE 26

Scenarios and requirements coverage overview

Requirements Classical ComArch R1 - Updating system representation structure and values ✓ ✓ R2 - Indicating the actual information demand (✓) (✓) R3 - Introducing new classifiers including classifier versions

  • (✓)

R4 - Withdrawing obsolete classifiers

R5 - Establishing new kinds of relationships

  • R6 - Assigning multiple classifiers progressively
  • R7 - Integrating multiple classifier systems
  • R8 - Introducing new logical elements and relationships
  • (✓)

26

Scenarios S1 - System adaptation S2 - System evolution S3 - Software evolution S4 - Systems integration and division S5 - Filtering S6 - Aggregation S7 - Itemization S8 - Generalization and specialization

slide-27
SLIDE 27

Summary

▪ Saw that runtime model modeling languages for flexibility are worth investigating ▪ Discussed plans on how to elaborate and evaluate a prospective solution ▪ Discussed the identified requirements

27

▪ Complete the definition of a coherent set of scenarios and requirements also based on analyzing existing modeling languages ▪ Elaborate a proposal ▪ Evaluate regarding cost-effectiveness and support for the requirements ▪ Consider co-evolution of queries and the runtime model modeling language

Outlook

slide-28
SLIDE 28

References

[Bencomo.2013] N. Bencomo, G. Blair, et al., “Report on the 7th International Workshop on Models@run.time,” in SIGSOFT Software Engineering Notes, ACM, New York, 2013. [Brand.2018] T. Brand, H. Giese, “Towards Generic Adaptive Monitoring” in 2018 IEEE 12th International Conference on Self-Adaptive and Self-Organizing Systems (SASO), to appear, 2018. [Riehle.2005] D. Riehle, M. Tilman, et al., “Dynamic Object Model,” in Pattern Languages of Program Design 5, Addison-Wesley, Upper Saddle River, 2005. [Vogel.2018] T. Vogel, “An Exemplar for Model-Based Architectural Self- Healing and Self-Optimization,” in International Symposium on Software Engineering for Adaptive and Self-Managing Systems, 2018.

28

slide-29
SLIDE 29

Thomas Brand and Holger Giese Hasso Plattner Institute at the University of Potsdam, Germany {firstname.lastname}@hpi.uni-potsdam.de