coml component markup language
play

CoML Component Markup Language Birngruber Dietrich System Software - PowerPoint PPT Presentation

CoML Component Markup Language Birngruber Dietrich System Software Group Johannes Kepler University of Linz Austria / Europe Story of Beana and Applicato Beana is a Software Engineer she develops software components (e.g.: JavaBeans)


  1. CoML Component Markup Language Birngruber Dietrich System Software Group Johannes Kepler University of Linz Austria / Europe

  2. Story of Beana and Applicato • Beana is a Software Engineer – she develops software components (e.g.: JavaBeans) c om pone nt s Be a nade ve l ops whi c h a r epa c ka ge d doc um e nt a t i on f orde l i ve r y Birngruber, System Software Group, Univ. Linz

  3. Story of Beana and Applicato (2) • Applicato is an Application Assembler – he wires prefabricated components to a new application New App Fi l e Edi t Hel p Appl i c a t obuyst hec om pone nt s ,a ddst he m t o hi sc om pone nt r e pos i t or y a nd wi r e st he m t oane w a ppl i c a t i on. Birngruber, System Software Group, Univ. Linz

  4. Applicato‘s & Beana‘s Problems • He does not like to read manuals – interfaces „must“ be self describing • He wires nearly the same components „nearly“ the same way again and again – Uses “composition patterns” • He wants to apply composition patterns automatically • She spends a lot of time at the support line Birngruber, System Software Group, Univ. Linz

  5. Solutions • Currently: Beana provides sample code • New: CoPL + CoML Generator Ti t l e X CoPL Ti t l e X XM L Descr i pt i on bi nar y Ti t l e X Pl an e. g. :CoM L f i l es <coml> plan P1 <meta/> { 001010010 <comps> spot x = Gener at or Tool s ( I DE) 110100100 <..../> { .... } 110100101 </comps> } 111110011 </coml> Com pos i t i onPr oc e s s „ dyna m i c “ „ s t a t i c / f i xe d“ „ c onc r e t e “ de s i gnvi a de s i gn,but e xe c ut a bl e „ De c i s i on s t i l la bs t r a c t c ode Spot s “ Birngruber, System Software Group, Univ. Linz

  6. Example • JavaBeans platform • wiring of TableModel , JTable , JButton and a container JPanel JPanel 4 JTabl e 1 2 Tabl eM odel 3 R ef r esh Birngruber, System Software Group, Univ. Linz

  7. CoML Code < com l n am e= “ J Tab leView ” > < m eta> < in fo typ e= “ java” version = “ 1 .2 ” /> < /m eta> < com p on en ts> < com p on en t id = “ tab leM od el” 1 in terface= “ javax .sw in g .tab le.Tab leM od el” class= “ m yFileA ccess.Tab leM od el” /> < com p on en t id = “ tab leView ” class= “ javax .sw in g .J Tab le” > < p rop erty n am e= “ au toCreateColu m n sFrom M od el” 2 access= “ set” > < b ool> tru e< /b ool> < /p rop erty> < p rop erty n am e= “ m od el” access= “ set” > < com p on en t id Ref= “ tab leM od el” /> < /p rop erty> Birngruber, System Software Group, Univ. Linz /

  8. CoML Code < com p on en t id = “ refresh Btn ” class= “ javax .sw in g .J Bu tton ” > < p rop erty n am e= “ m od el” access= “ set” > < strin g > Refresh < /strin g > < /p rop erty> 3 < on -even t n am e= “ action ” filter= “ action Perform ed ” > < call-m eth od n am e= “ rep ain t” id Ref= “ tab leView ” /> < /on -even t> < /com p on en t> < com p on en t id = “ con tain er” class= “ javax .sw in g .J Pan el” > < ad d > < com p on en t id Ref= “ jScrollPan e1 ” /> < in t> 0 < /in t> < /ad d > 4 < ad d > < com p on en t id Ref= “ refresh B tn ” /> < in t> 1 < /in t> < /ad d > < /com p on en t> < /com p on en ts> < /com l> Birngruber, System Software Group, Univ. Linz

  9. Requirements & Design Issues • Platform independence • XML • Minimize the need for new • Binary component tools – access via interfaces (only) – strongly typed • Reduced learning process – Events as main composition technique • Recursive component – properties, methods construction – Design-Time vs. Run-Time • Component framework • Aggregation frameworks – Different containers require different interfaces – hierarchical Birngruber, System Software Group, Univ. Linz

  10. Requirements & Design Issues (2) • Extensibility & Versioning • Meta information • Connection and • XML elements: aggregation based < on-event> , < add> composition • Composition code reuse • Still missing – Perhaps text replacement • Interchangeable • What about execution composition description environments? – like resource scripts – simple Java + .NET interpreters Birngruber, System Software Group, Univ. Linz

  11. CoML Elements coml root element meta contains the meta information components list of composed components; contains < component ...> elements component declares a component property sets or gets a property of a specific component method-call calls a method on-event connection-based composition add aggregation-based composition primitive DT several elements for primitive datatypes Birngruber, System Software Group, Univ. Linz

  12. There are other XML based scripting languages • Bean Markup Language (BML) from IBM – goal: XML based component composition language – Java Bean oriented (syntax & behaviour) – no meta information (no versioning, etc.) – byte code compiler or interpreter • Java Beans Persistence from Sun Microsystem – goal: tool independent format for GUI composition – Java Bean oriented – No abstractions for events and aggregation; no meta information – API for reading/writing object graphs Birngruber, System Software Group, Univ. Linz

  13. Conclusions • CoML is an interchangeable composition description – CoML is component platform independent – < meta> tags for providing additional information – Java and .NET interpreters are available • TODO: – error handling – formal parameter (in, out) – arrays – composition code reuse – tools, tools, tools Birngruber, System Software Group, Univ. Linz

  14. Questions & Contact http://www.ssw.uni-linz.ac.at birngruber@ssw.uni-linz.ac.at Birngruber, System Software Group, Univ. Linz

Recommend


More recommend