1 / 26

XCompose : An XML-based Component Composition Framework

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

osias
Download Presentation

XCompose : An XML-based Component Composition Framework

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XCompose:An XML-based Component Composition Framework Naiyana Tansalarak and Kajal T. ClaypoolUniversity of Massachusetts, Lowell July 22nd, 2003 In Workshop 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. Flexible- plug-and-play Re-usable - make compositions available to all users Correct - provide system-level guarantees Portable-enable composition across component models Goal of Composition Framework New requirement Asset Specification New technology Extensible - tailor existing compositions

  4. Outline • Previous Work • Our Approach • Discussion

  5. Piccola      BML/CoML      Flexibility Extensibility Reusability Correctness Portability Previous Work • Piccola application = components + script • Bean Markup Language (BML) • Component Markup Language (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. Composition Operators Composition Templates Composition Contracts XDescriptors XCompose Basics Goals Ingredients New requirement Asset Specification New technology Flexibility Extensibility Reusability Correctness Portability Composition Patterns www.cs.uml.edu/~ntansala

  9. Composition Operators Composition Templates Composition Contracts XDescriptors XCompose Basics Goals Ingredients New requirement Asset Specification New technology Flexibility Extensibility Reusability Correctness Portability Composition Patterns www.cs.uml.edu/~ntansala

  10. Primitive Operators Primitive Composition Operators • Conjunction mi mj • Sequence mi; mj • Choice miV 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. Composition Operators Composition Templates Composition Contracts XDescriptors XCompose Basics Goals Ingredients New requirement Asset Specification New technology Flexibility Extensibility Reusability Correctness Portability Composition Patterns www.cs.uml.edu/~ntansala

  13. Composition Pattern A sequence of composition operators glued together by a simple language

  14. ListMultiselector event(ListMultiselector) = event (GUIList) U event (Multiselector) 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”); }

  15. ListMultiselector FrameList event(ListMultiselector) = event (GUIList) U event (Multiselector) event(FrameList) = event (JFrame) U event (GUIList) Common Composition Pattern

  16. Composition Operators Composition Templates Composition Contracts XDescriptors XCompose Basics Goals Ingredients New requirement Asset Specification New technology Flexibility Extensibility Reusability Correctness Portability Composition Patterns www.cs.uml.edu/~ntansala

  17. Composition Pattern Template The parameterized and generalized composition patterns.

  18. Example: Composition Template 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”); } 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”); }

  19. ListMultiselector GUIList, MultiSelector FrameList JFrame, GUIList Instantiation MergeMasterClient ($master, $client)

  20. Composition Operators Composition Templates Composition Contracts XDescriptors XCompose Basics Goals Ingredients New requirement Asset Specification New technology Flexibility Extensibility Reusability Correctness Portability Composition Patterns 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. JavaBeans CORBA COM XDescriptor Library System Architecture XCompose Engine XDescriptor XDescriptor Wrapper GUIList XDescriptor Deployment Engine GUIList

  24. System Architecture (con’t)

  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 ?

More Related