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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend