Using Component Redundancy for adaptive, self-optimising and - - PowerPoint PPT Presentation

using component redundancy for adaptive self optimising
SMART_READER_LITE
LIVE PREVIEW

Using Component Redundancy for adaptive, self-optimising and - - PowerPoint PPT Presentation

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems Ada Diaconescu, John Murphy Performance Engineering Laboratory Dublin City University Ada Diaconescu


slide-1
SLIDE 1

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory

Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Ada Diaconescu, John Murphy

Performance Engineering Laboratory Dublin City University

slide-2
SLIDE 2

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Main Topics

  • Targeted domain
  • Motivation
  • Our approach – component redundancy

– What is component redundancy ? – Example – How does component redundancy work ? – Framework implementation

  • Conclusions & future work
slide-3
SLIDE 3

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Targeted domain – Enterprise software applications

  • We are targeting the business logic tier of enterprise software applications
  • Quality characteristics - influenced by all tiers and layers involved
slide-4
SLIDE 4

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Motivation

  • Enterprise software applications - Characteristics:

– Complex, large-scale – Highly distributed and parallel – Non-real time, Soft quality requirements (performance, reliability)

⇒Complicated & expensive design, testing, management processes ⇒Reduced flexibility ⇒Quality characteristics hard to control

  • Component-Based Software Development (CBSD):

– Benefits: modularity, reuse, shorter development time, lower costs – New challenges: lack of information

  • At component development: ?overall system, platform, resources?
  • At system integration: ?component insight information, changing

resources/ requirements at runtime?

  • Impossible to exhaustively test such software apps. offline
slide-5
SLIDE 5

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Component redundancy – what is ?

  • Only one component variant is active at all times

__- instantiated for handling client requests -

  • Variants are used alternatively,

‘complementing’ each other

  • Variants are replaced in case of:
  • Poor/ non-optimal performance
  • Fault detection
  • Changing requirements, or running-context
  • Multiple Software Component Variants, with:

– Identical interfaces, Equivalent functionalities (i.e. offered services) and – Different design and/or implementation strategies

are available at run-time

Request Service Redundancy Group Component Variant 1 P r o x y Component Variant 2 Component Variant 3 Delegate Request to Active component variant Component Variant 2 Component Variant 1 Component Variant 1 Poor Performance Redirect Requests to Component Variant 2 Improved Performance

slide-6
SLIDE 6

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Example

  • Used EJB component technology
  • Two component implementations:

– Same functionality: retrieve information from a remote DB – Different design: Direct DB vs. Using Entity Bean Response-time

variations with

Network load

  • n the link to the DB

⇒Alternating variants yields better performance, at all times

slide-7
SLIDE 7

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Component redundancy – how it works

Functional Application

C1.1 C1.2 C1.3 C2.1 C2.2 C2.3 C3.1 C3.2 C3.3 C5.1 C5.2 C4.1

Monitoring

(&testing)

  • Monitor application
  • Monitor environment
  • Determine problems:
  • Causes
  • Affected components

C1.1 C1.2 C1.1

Application Server / Container

Evaluation

  • Determine optimal variant(s)
  • Use:
  • Monitoring info
  • Descriptions
  • Decision policies
  • Update descriptions
  • Update decision policies

Action

  • Activate /deactivate

component variants

  • Maintain application

integrity

slide-8
SLIDE 8

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Distributed adaptation mechanism

  • Motivation: centralised adaptation mechanisms might:

– Introduce unnecessary overhead – Not scale well

  • Adaptation mechanisms with different scopes:

– Component – Group of components – Entire application

  • Hierarchical organisation
  • Local problems:

– Initially dealt with locally – Signalled to higher level adaptation mechanisms (if necessary)

  • Periodic global optimisations
slide-9
SLIDE 9

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Framework Implementation

  • Two options:
  • Independent of specific applications

b) Software application level

  • Maintain application integrity:
  • Component swapping implemented by means of client call indirection
  • No state transfer
  • Keep client references consistent using the proxy pattern

a) Distributed platform level

slide-10
SLIDE 10

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems

Conclusions & future work

  • Component-based enterprise software
  • Difficult to provide and maintain performance and dependability:

– Lack of information – Changing requirements and execution contexts

  • Our approach: using component redundancy (overview, general framework)
  • Expected benefits:
  • Automatic performance optimisation
  • Recover from and avoid integration faults
  • Adapt to changing requirements, resources, workloads
  • Future work:
  • Identify and implement relevant examples
  • Design and implement proof-of-concept framework
  • Identify and integrate work on monitoring, component descriptions,

knowledge based management,…

slide-11
SLIDE 11

Ada Diaconescu diacones@eeng.dcu.ie

Performance Engineering Laboratory Using Component Redundancy for adaptive, self-optimising and self-healing Component-Based Systems