dynamic and selective combination of extension in component based applications l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Dynamic and Selective Combination of Extension in Component-based Applications PowerPoint Presentation
Download Presentation
Dynamic and Selective Combination of Extension in Component-based Applications

Loading in 2 Seconds...

play fullscreen
1 / 37

Dynamic and Selective Combination of Extension in Component-based Applications - PowerPoint PPT Presentation


  • 250 Views
  • Uploaded on

Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen Outline Motivation: Dynamic customization of distributed services Overview of wrapper-based model Lasagne

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Dynamic and Selective Combination of Extension in Component-based Applications' - paul


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
dynamic and selective combination of extension in component based applications

Dynamic and Selective Combination of Extension in Component-based Applications

Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen

outline
Outline
  • Motivation: Dynamic customization of distributed services
  • Overview of wrapper-based model Lasagne
  • Problem statement: analysis of problems with wrappers
  • Detailed overview of Lasagne
  • Lessons learned
  • Conclusion
motivation
Motivation
  • Support for dynamic and client-specific customization of distributed services is needed
  • An example: web service on the Internet
    • Multiple clients are accessing service instance simultaneously
    • Different clients have different customization needs
    • One client must be able to customize the web service for use in its own context,
    • without affecting other clients (service behavior delivered to other clients must not be affected)
motivation ctd
Motivation (ctd)
  • Customization process = context-sensitive and dynamic combination of extensions to a minimal core system
    • Extensions can be functional (e.g. refined core service) and non-functional (e.g authentication, authorization)
  • Revisiting example: web service on the Internet
    • Each client must be able to select a subset of extensions into the core service
    • for use in its own context:
      • per client request, per client session
      • without interfering with other clients
short overview of lasagne
Short overview of Lasagne
  • A programming, deployment and run-time model that supports dynamic combination of extensions per client request
  • Inspired by wrapper-based design patterns
    • Decorator and Role Object
  • Advantages of wrappers
    • already support combination of extensions to a component
    • operate at instance-level => customization of online services
  • Deal with disadvantages of wrappers
    • object identity problems
wrapper based design patterns

Agenda

Decorator 2

Decorator 1

Decorator 1

Decorator 2

Wrapper-based design patterns
  • Decorator [Gamma et al]
    • Disjunctive chaining supports selective combination
wrapper based design patterns7

Role 2

Role 1

Wrapper-based design patterns
  • Role Object [Baumer et al]
    • Component type widening
      • Dynamically adds new service interface
    • selection of roles by means of specification object

Component

getRole(specification)

problem statement
Problem Statement

System-wide interaction refinement

spaghetti problem

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Object Identity Problem

Atomic Agenda

Atomic Agenda

Spaghetti Problem
spaghetti problem10

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Object Identity Problem

Atomic Agenda

Atomic Agenda

Spaghetti Problem
spaghetti problem11

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Object Identity Problem

Atomic Agenda

Atomic Agenda

Spaghetti Problem
spaghetti problem12

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

authorization & access control

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Object Identity Problem

Atomic Agenda

Atomic Agenda

Spaghetti Problem
spaghetti problem13

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

authorization & access control

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Object Identity Problem

Atomic Agenda

Atomic Agenda

Spaghetti Problem
coordination problem

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Atomic Agenda

Atomic Agenda

Coordination Problem
coordination problem15

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Inconsistency

Atomic Agenda

Atomic Agenda

Coordination Problem
coordination problem16

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Calling context must be propagated over entire core system

Atomic Agenda

Atomic Agenda

Coordination Problem
coordination problem17

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Calling context must be propagated over entire core system

Atomic Agenda

Atomic Agenda

Coordination Problem
coordination problem18

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Contextual change must be propagated over entire core system

Atomic Agenda

Atomic Agenda

Coordination Problem
other problems solved
Other problems solved
  • Partial ordering constraints between wrappers
  • Some wrapper composition logic should not be under control of the clients
  • Use of design patterns must be anticipated by core application developer.
  • Technical problems
    • Problems with delegation and common self
    • State consistency between multiple instances of the same wrapper definition
turning spaghetti into lasagne
Turning Spaghetti into Lasagne
  • Externalize wrapper composition logic from the code of core system and extensions
  • Clients can customize the wrapper composition logic on a per collaboration basis
high level overview of lasagne

Agenda 2

DatingSystem

Agenda 1

collaboration

High-level overview of Lasagne
  • Introductory terms
    • Component-based, distributed core system
      • Component type =< {services}, {dependencies}>
      • Connection supported by COTS middleware
    • Client request initiates collaboration between core components
  • Lasagne customization process consists of three phases: extension programming, deployment of extensions to a core system, and selective combination per collaboration

connection

dependency

service

high level overview of lasagne22

Group App. Service

Atomic Agenda

High-level overview of Lasagne
  • The extension programming model
    • An extensions is implemented as layer of wrappers
    • Wrappers are programmed in hybrid form between Decorator and Role Object
    • Each wrapper definition is meant for decorating a specific minimalcomponent type

<{Dating}, {Negotiation}>

<{Negotiation}, {}>

*

high level overview of lasagne23
High-level overview of Lasagne
  • Deployment of extensions to core application
    • Declarative specification of how to integrate wrappers to a specific core application
    • specify fine-grained partial ordering constraints
high level overview of lasagne24

Authoriz. Check Wrapper

AccessDenied Exception Handler

:Agenda

:DatingSystem

Group App. Service

dynamic adjustment of message flow through appropriate chain of wrappers

Atomic Agenda

High-level overview of Lasagne
  • Selective combination per client request
lasagne concepts
Lasagne Concepts
  • Component Identity
    • Aggregates core instance and its wrappers into one identity
    • Removes the spaghetti of wrapper references
  • Extension Identifier
    • qualified name that uniquely identifies an extension
    • Is used to designate wrappers as belonging to a specific extension
  • Composition Policy {…}
    • specifies the subset of extension identifiers for a specific collaboration between client and core system
    • A composition policy propagates with the collaboration flow
lasagne concepts26
Lasagne concepts
  • Contextual properties
    • e.g client-specific preferences, message flow history
    • defined as <name, value> pairs that propagate with the collaboration flow
  • Interceptors
    • define contextual properties of collaboration
    • select or unselect extensions. Typical selection rule:
      • If <condition> is satisfied within <context> thenattach/discard <extension identifier> to composition policy
  • Variation point
    • Extension to runtime component model
    • Generic message dispatch mechanism
      • Dynamically constructs wrapper chain
    • Interprets composition policy and ordering constraints
component identity

Agenda 2

DatingSystem

Agenda 1

authorization & access control

Component Identity
extension identifiers

Agenda 2

DatingSystem

Agenda 1

authorization & access control

Extension Identifiers

<“group”>

<“authoriz”>

interceptors and composition policy

add <“authoriz”>

Agenda 2

DatingSystem

Agenda 1

authorization & access control

Interceptors and Composition Policy

{<“authoriz”>}

{ }

<“group”>

{<“authoriz”>}

<“authoriz”>

{ }

{<“authoriz”>}

Interceptor definitions

Attach client_localhost, client_identity as contextual properties to collaboration.

Ifclient_localhoston remote subnet then attach <“authoriz”>to composition policy

underlying runtime mechanisms

add <“authoriz”>

Agenda 2

DatingSystem

Agenda 1

authorization & access control

Underlying runtime mechanisms

{<“authoriz”>}

<“group”>

{<“authoriz”>}

<“authoriz”>

{ }

{<“authoriz”>}

  • Propagation of composition policy
  • Propagation of contextual properties
  • Variationpoint performs automatic adjustment of message flow
lessons learned
Lessons learned
  • Lasagne is suitable for customization at the coarse-grained architectural level
  • Extensions are reusable over multiple applications
    • is supported in Java implementation of Lasagne (co-work with Renaud Pawlak)
    • Wrappers are reusable over different types of components
    • Deployment-time operation that dynamically connects extension operation to core operation.
lessons learned ctd
Lessons Learned (ctd)
  • Lasagne is too low-level and complex to use
    • Need to build higher-level tool or language on top of Lasagne framework
    • feedback from advanced separation of concerns community
      • Aspect-oriented programming
      • Aspectual Components
      • GenVoca and Mixin layers
      • Multidimensional separation of concerns
conclusion
Conclusion
  • Customization of distributed services
    • non-invasive customization
    • dynamic combination of system-wide extensions
      • consistency and scalability
    • context-sensitiveness
      • simultaneous client-specific views
      • message flow history
  • Lasagne prototypes
    • Programming Languages with an open implementation
      • Correlate, Java
    • Reflective middleware platforms
      • Java RMI, Lasagne ORB
other problems solved34
Other problems solved
  • Partial ordering constraints between wrappers
  • Multiple instances of the same wrapper definition due disjunctive wrapper chains
    • difficult to keep the states of different wrapper instances consistent to each other
  • No Delegation
    • Self-call of core component is not redirected through wrappers
  • Some wrapper composition logic should not be under control of the clients
coordination problem35

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Calling context must be propagated over entire core system

Atomic Agenda

Atomic Agenda

Coordination Problem
coordination problem36

DatingSystem

Agenda

Authoriz. Check Wrapper

Authoriz. Check Wrapper

AccessDenied Exception Handler

AccessDenied Exception Handler

Group App. Service

Group App. Service

Calling context must be propagated over entire core system

Atomic Agenda

Atomic Agenda

Coordination Problem
lasagne mechanisms
Lasagne mechanisms
  • Underlying run-time component model