Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen.

Similar presentations


Presentation on theme: "Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen."— Presentation transcript:

1 Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen

2 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

3 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)

4 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

5 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

6 Wrapper-based design patterns  Decorator [Gamma et al]  Disjunctive chaining supports selective combination Agenda Decorator 1Decorator 2 Decorator 1

7 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 Role 2 Component getRole(specification) Role 1

8 Problem Statement System-wide interaction refinement

9 Spaghetti Problem Agenda DatingSystem Object Identity Problem Atomic Agenda Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Authoriz. Check Wrapper

10 Spaghetti Problem Agenda Authoriz. Check Wrapper Atomic Agenda Authoriz. Check Wrapper DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Object Identity Problem

11 Spaghetti Problem Agenda Atomic Agenda DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Object Identity Problem Authoriz. Check Wrapper

12 Spaghetti Problem Agenda Atomic Agenda DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler authorization & access control Object Identity Problem Authoriz. Check Wrapper

13 Spaghetti Problem Agenda Atomic Agenda DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler authorization & access control Object Identity Problem Authoriz. Check Wrapper

14 Coordination Problem Agenda DatingSystem Atomic Agenda Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Authoriz. Check Wrapper

15 Coordination Problem Agenda Atomic Agenda DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Inconsistency Authoriz. Check Wrapper

16 Coordination Problem Agenda Atomic Agenda DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Calling context must be propagated over entire core system Authoriz. Check Wrapper

17 Coordination Problem Agenda Atomic Agenda DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Calling context must be propagated over entire core system Authoriz. Check Wrapper

18 Coordination Problem Agenda Atomic Agenda DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Contextual change must be propagated over entire core system Authoriz. Check Wrapper

19 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

20 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

21 High-level overview of Lasagne  Introductory terms  Component-based, distributed core system  Component type =  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 Agenda 1DatingSystemAgenda 2 dependency service collaboration connection

22 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 minimal component type Group App. Service Atomic Agenda *

23 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

24 High-level overview of Lasagne  Selective combination per client request dynamic adjustment of message flow through appropriate chain of wrappers :Agenda Group App. Service Atomic Agenda Authoriz. Check Wrapper AccessDenied Exception Handler :DatingSystem

25 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

26 Lasagne concepts  Contextual properties  e.g client-specific preferences, message flow history  defined as pairs that propagate with the collaboration flow  Interceptors  define contextual properties of collaboration  select or unselect extensions. Typical selection rule:  If is satisfied within then attach/discard to composition policy  Variation point  Extension to runtime component model  Generic message dispatch mechanism  Dynamically constructs wrapper chain  Interprets composition policy and ordering constraints

27 Component Identity Agenda 1DatingSystemAgenda 2authorization & access control

28 Extension Identifiers Agenda 1DatingSystemAgenda 2authorization & access control

29 Interceptors and Composition Policy Agenda 1DatingSystemAgenda 2authorization & access control { } add If client_localhost on remote subnet then attach to composition policy { } Attach client_localhost, client_identity as contextual properties to collaboration. Interceptor definitions { }

30 Propagation of composition policy Propagation of contextual properties Variationpoint performs automatic adjustment of message flow Underlying runtime mechanisms Agenda 1DatingSystemAgenda 2authorization & access control { } add { }

31 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.

32 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

33 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

34 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

35 Coordination Problem Agenda Authoriz. Check Wrapper Atomic Agenda Authoriz. Check Wrapper DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Calling context must be propagated over entire core system

36 Coordination Problem Agenda Authoriz. Check Wrapper Atomic Agenda Authoriz. Check Wrapper DatingSystem Group App. Service AccessDenied Exception Handler Group App. Service AccessDenied Exception Handler Calling context must be propagated over entire core system

37 Lasagne mechanisms  Underlying run-time component model


Download ppt "Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen."

Similar presentations


Ads by Google