towards software architecture runtime models for
play

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


  1. 13th International Workshop on Models@run.time Towards software architecture runtime models for continuous adaptive monitoring Thomas Brand, Holger Giese 14.10.2018

  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

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

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

  5. Classical Model-Driven Engineering approach QueryService pooledConnectionsCount: Integer pooledConnectionsMax: Interger Modeling language Meta-model level Modeling language definition content implementation Runtime model level System representation content with an API to <<instanceOf>> create models qs1:QueryService Query based on types e.g.: 4.) access 2.) use pooledConnectionsCount = 5 pooledConnectionsMax =10 QueryService. pooledConnectionCount > 5 Monitoring 5

  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

  7. Significance of the modeling language To better understand: Can you show how the modeling language is actually significant? 7

  8. Information demand changes - Filtering QueryService pooledConnectionsCount: Integer pooledConnectionsMax: Interger Modeling language Meta-model level Modeling language definition content implementation Runtime model level System representation content with an API to <<instanceOf>> create models qs1:QueryService Query based on types e.g.: 3.) access 1.) use pooledConnectionsCount = 5 pooledConnectionsMax =10 QueryService. pooledConnectionCount > 5 5.) adapt Monitoring Monitoring adaptation engine [Brand.2018] 8

  9. Running system changes - System adaptation QueryService pooledConnectionsCount: Integer pooledConnectionsMax: Interger Modeling language Meta-model level Modeling language definition content implementation Runtime model level System representation content with an API to <<instanceOf>> <<instanceOf>> create models qs1:QueryService qs2:QueryService pooledConnectionsCount = 5 pooledConnectionsCount = 5 1.) use pooledConnectionsMax =10 pooledConnectionsMax =10 Query based on types e.g.: QueryService. pooledConnectionCount > 5 Monitoring 9

  10. Running system changes - System evolution RegionItemFilter QueryService mode: Integer pooledConnectionsCount: Integer pooledConnectionsMax: Interger Modeling language Meta-model level Modeling language definition content implementation Runtime model level System representation content with an API to <<instanceOf>> <<instanceOf>> create models :RegionItemFilter :QueryService € 2.) use pooledConnectionsCount = 5 mode = 51 pooledConnectionsMax =10 Query based on types e.g.: QueryService. pooledConnectionCount > 5 Discontinuity! Monitoring 10

  11. Running system changes - Software evolution QueryService pooledConnectionsCount: Integer pooledConnectionsMax: Interger cachedStatementsCount : Integer cachedStatementsMax: Integer Modeling language Meta-model level Modeling language definition content implementation Runtime model level System representation content with an API to <<instanceOf>> create models :QueryService Query based on pooledConnectionsCount = 5 types e.g.: 2.) use 4.) access pooledConnectionsMax =10 € cachedStatementsCount = 27 QueryService. cachedStatementsMax = 50 pooledConnectionCount > 5 Discontinuity! Monitoring 11

  12. The CompArch approach There is a way to improve the situation compared to the classical approach!? 12

  13. Dynamic Object Model pattern Model level type instance ComponentType Component 1 * * 1 propertyType * property * type instance PropertyType Property Value 1 * 1 1 Classifier definition content Model content [Riehle.2005] 13

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

  15. Planned roadmap towards a prospective solution How shall the proposed solution be evaluated? What actually are the important requirements? Does this approach fulfill the requirements? 15

  16. Planned roadmap towards a prospective solution Running system changes Survey existing Describe illustrative languages scenarios Information demand Validate changes Discover a coherent set of requirements Elaborate and evaluate a solution 16

  17. Illustrative scenarios and requirements Can you give us some examples of scenarios and requirements? 17

  18. Scenarios and requirements overview Illustrative scenarios Requirements S1 - System adaptation R1 - Updating system representation structure and values Running S2 - System evolution R2 - Indicating the actual information demand system S3 - Software evolution R3 - Introducing new classifiers including classifier versions changes S4 - Systems integration and division R4 - Withdrawing obsolete classifiers S5 - Filtering R5 - Establishing new kinds of relationships Information S6 - Aggregation R6 - Assigning multiple classifiers progressively demand S7 - Itemization R7 - Integrating multiple classifier systems changes S8 - Generalization and specialization R8 - Introducing new logical elements and relationships 18

  19. Example system Multiple tenants Simplified mRUBiS runtime model [Vogel.2018] 19

  20. Running system changes S3 - Software evolution Runtime model level classifies 4 ▪ Conduct an experiment with new ComponentType :Component software product version version = "2.0.0" name = "QueryService" ▪ Deploy a new version of the QueryService component to early classifies 4 ParameterType :Parameter adopter tenants name = "pooledConnectionsMax" value = 10 classifies 4 ▪ Represent new component version ParameterType :Parameter with additional properties besides name = "cachedStatementsMax" value = 50 the old Classifier definition content System representation content Requirements Classic ComArch R3 - Introducing new classifiers including classifier versions -- ( ✓ ) S3 - Software evolution -- ( ✓ ) 20

  21. Information demand changes S6 - Aggregation - Case 1: Invisible Aggregation not visible in the runtime model (on the monitoring instrument level) Runtime model Monitoring instrument Monitoring Monitoring instrument instrument Running system 21

  22. Information demand changes S6 - Aggregation - Case 2: Visible Aggregation visible in the runtime model Case 2.a: Functional aggregation Case 2.b: Structural aggregation Runtime model level Runtime model level classifies 4 classifies 4 ComponentType :Component ComponentType :Component name = "QueryService" name = "QueryComponent" aggregates aggregates :Property value = 12 ComponentType :Component PropertyType name = "QueryOptimizer" name = "pooledConnectionsCount" :Component ComponentType :Component :Property ComponentType name = "Indexer" value = 4 name = "QueryComponent" :Component :Property value = 8 Classifier definition content System representation content Classifier definition content System representation content 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend