XCompose: An XML-based Component Composition Framework Naiyana Tansalarak and Kajal T. Claypool...

26
XCompose: An XML-based Component Composition Framework Naiyana Tansalarak and Kajal T. Claypool University of Massachusetts, Lowell July 22 nd , 2003 In Workshop on Composition Languages (WCL) 2003 (conjunction with ECOOP 2003) Darmstadt, Germany
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of XCompose: An XML-based Component Composition Framework Naiyana Tansalarak and Kajal T. Claypool...

XCompose:An XML-based Component Composition Framework

Naiyana Tansalarak and Kajal T. Claypool

University of Massachusetts, LowellJuly 22nd, 2003

InWorkshop on Composition Languages (WCL) 2003

(conjunction with ECOOP 2003)Darmstadt, Germany

2

Introduction

Component-based Software Systems

– pre-fabricated components

– composition framework

Advantages:

– on-time development

– higher quality

– higher reliability

3

Goal of Composition Framework

New requirement

Asset

Specification

New technology

Extensible - tailor existing compositions

Flexible - plug-and-play

Re-usable - make compositions

available to all users

Correct - provide system-level guarantees

Portable - enable composition across

component models

4

Outline

• Previous Work

• Our Approach

• Discussion

5

Previous Work

• Piccola application = components + script

• Bean Markup Language (BML)

• Component Markup Language (CoML)

Flexibility

Extensibility

Reusability

Correctness

Portability

Piccola

BML/CoML

XCompose

6

Hypothesis

Complex Component Composition can

be broken down into a sequence of a

primitive composition operators glued

together by a simple language

7

Paradigm

Components Application = +

Composition Language

Operators Composition Language = +

Glue Logic

8

XCompose Basics

New requirement

Asset

Specification

New technology

Flexibility

Extensibility

Reusability

Correctness

Portability

Composition PatternsComposition Operators

Composition Templates

XDescriptors

Composition Contracts

Goals Ingredients

www.cs.uml.edu/~ntansala

9

XCompose Basics

New requirement

Asset

Specification

New technology

Flexibility

Extensibility

Reusability

Correctness

Portability

Composition PatternsComposition Operators

Composition Templates

XDescriptors

Composition Contracts

Goals Ingredients

www.cs.uml.edu/~ntansala

10

Primitive Operators

Primitive Composition Operators

• Conjunction mi mj • Sequence mi ; mj • Choice mi V mj

• Pipe mi | mj

• Loop mi*V

Primitive Manipulation Operators:• addAttribute• addMethod• invokeMethod• addComponent

11

Complex Operators

Complex Composition Operators

• Connection-oriented Composition

– addConnection

• Aggregation-based Composition

– addToContainer

Complex Manipulation Operators

• configureProperty

• addListener

• addEvent

• linkEvent

12

XCompose Basics

New requirement

Asset

Specification

New technology

Flexibility

Extensibility

Reusability

Correctness

Portability

Composition PatternsComposition Operators

Composition Templates

XDescriptors

Composition Contracts

Goals Ingredients

www.cs.uml.edu/~ntansala

13

Composition Pattern

A sequence of composition operators

glued together by a simple language

14

Example : Composition Pattern

ListMultiselector {

addComponent (“java.awt.List”, “list”);

addComponent (“java.awt.Multiselector”, “selector”);

addToContainer (“list”, “selector”);

linkEvent (“paint”, “list.paint”);

linkEvent (“select”, “selector.select”);

linkEvent (“deselect”, “selector.deselect”);

linkEvent (“close”, “selector.close; list.close”);

}

ListMultiselector

event(ListMultiselector) =

event (GUIList) U

event (Multiselector)

15

Common Composition Pattern

ListMultiselector

event(ListMultiselector) =

event (GUIList) U

event (Multiselector)

GUIList

JFrame

FrameList

event(FrameList) =

event (JFrame) U

event (GUIList)

16

XCompose Basics

New requirement

Asset

Specification

New technology

Flexibility

Extensibility

Reusability

Correctness

Portability

Composition PatternsComposition Operators

Composition Templates

XDescriptors

Composition Contracts

Goals Ingredients

www.cs.uml.edu/~ntansala

17

Composition Pattern Template

The parameterized and generalized

composition patterns.

18

Example: Composition Template

ListMultiselector {

addComponent (“java.awt.List”, “list”);

addComponent (“java.awt.Multiselector”,

“selector”);

addToContainer (“list”, “selector”);

linkEvent (“paint”, “list.paint”);

linkEvent (“select”, “selector.select”);

linkEvent (“deselect”, “selector.deselect”);

linkEvent (“close”, “selector.close; list.close”);

}

MergeMasterClient (master, client) {

addComponent (“$master”, “container”);

addComponent (“$client”, “part”);

addToContainer (“container”, “part”);

let $tmp = event (“container”) ∩ event(“part”)

forall $e Є event(“container”) and $e $tmp

linkEvent (“$e”, “container.$e”);

forall $e Є event(“part”) and $e $tmp

linkEvent (“$e”, “part.$e”);

forall $e Є $tmp

linkEvent (“$e”, “part.$e; container.$e”);

}

19

Instantiation

MergeMasterClient ($master, $client)

GUIList, MultiSelector

ListMultiselector

JFrame, GUIList

GUIList

JFrame

FrameList

20

XCompose Basics

New requirement

Asset

Specification

New technology

Flexibility

Extensibility

Reusability

Correctness

Portability

Composition PatternsComposition Operators

Composition Templates

XDescriptors

Composition Contracts

Goals Ingredients

www.cs.uml.edu/~ntansala

21

XDescriptor

<class name=“GUIList”> <properties> </properties> <events> <event name=“”paint” refer=“”/> <event name=“”close” refer=“”/> </events> <methods> </methods> <composition> </composition></class>

22

XDescriptor

<class name=“ListMultiselector”> <properties> </properties> <events> <event name=“”paint” refer=“list”/> <event name=“”select” refer=“selector”/> <event name=“”deselect” refer=“selector”/> <event name=“”close” refer=“selector;list”/> </events> <methods> </methods> <composition> <component name=“java.awt.List” id=“list”/>

<add id=“selector”/> </component> <component name=“java.awt.Multiselector” id=“selector”/> </composition></class>

23

System Architecture

JavaBeans CORBA COM

XDescriptorWrapper

XComposeEngine

DeploymentEngine

XDescriptor

XDescriptorLibrary

GUIList

GUIList

XDescriptor

24

System Architecture (con’t)

TemplateProcessor

CompositionTemplate Manager

uses

XCompose Engine

InstantiationTool

Composition Manager

PatternVerifier

uses

CompositionEditor

patternsOperators

TemplateLibrary

patternspatterns

XDescriptor

25

Discussion ?

• What is the complete set of operators and their

semantics to provide flexibility and extensibility ?

• What extensions are needed to make XCompose

platform and component model independent ?

• Is XML the right model?

• What are the tradeoffs to achieve the five goals ?

• Are the five goals sufficient ? Are there any other

goals that need to be supported here ?

26

Questions ?