Ivan Kurtev, Klaas van den Berg Software Engineering Group

Slides:



Advertisements
Similar presentations
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Advertisements

TU e technische universiteit eindhoven / department of mathematics and computer science Modeling User Input and Hypermedia Dynamics in Hera Databases and.
XML: Extensible Markup Language
XML Technology in E-Commerce
July 06, 2006DB&IS Building Web Information Systems using Web Services Flavius Frasincar Erasmus University Rotterdam Eindhoven.
Object-Oriented Theories for Model Driven Architecture Tony Clark, King’s College, UK. Andy Evans, University of York, UK. Robert France, Colorado University,
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Introduction to XSLT & its use in Grainger Library full-text & metadata projects Thomas G. Habing Grainger Engineering Library Presentation to ASIS&T,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Bridging the chasm between MDE and the world of compilation Nondini Das 1.
Model Transformations
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Sheet 1XML Technology in E-Commerce 2001Lecture 7 XML Technology in E-Commerce Lecture 7 XSL Formatting Objects, Java Data Binding.
Introduction to MDA (Model Driven Architecture) CYT.
Sheet 1 / 21© in Bonn - 21 March 2006 Identification of Crosscutting in Software Design Klaas van den Berg – University.
Intro. to XML & XML DB Bun Yue Professor, CS/CIS UHCL.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
A language to describe software texture in abstract design models and implementation.
Naam An Ontology-Based Metalanguage with Explicit Instantiation Alfons Laarman Committee: Dr. Ivan Kurtev Dr. Ir. Klaas van den Berg Arda Goknil, Msc.
MDA – Model Driven Architecture Olivier Riboux. Overview What is MDA? The Challenges MDA addresses Developing in the MDA Benefits / Conclusion Case Study:
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
December 4, ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
Dom and XSLT Dom – document object model DOM – collection of nodes in a tree.
Visualization Four groups Design pattern for information visualization
Cooperative Computing & Communication Laboratory A Survey on Transformation Tools for Model-Based User Interface Development Robbie Schäfer – Paderborn.
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Sheet 1XML Technology in E-Commerce 2001Lecture 0 XML Technology in E-Commerce Klaas van den Berg & Ivan Kurtev 2000/2001 – trimester 3.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Using DSDL plus annotations for Netconf (+) data modeling Rohan Mahy draft-mahy-canmod-dsdl-01.
Nigel Baker UWE & CERN/EP-CMA Design Patterns for Integrating Product and Process Models The C.R.I.S.T.A.L. Project ( C ooperative R epositories & I nformation.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Sheet 1 MDAFA 2003 A Synthesis-based Approach to Transformations in an MDA Software Development Process Ivan Kurtev, Klaas van den Berg University of Twente.
Sheet 1 Forum on Specification and Design Languages (FDL), Frankfurt, September 2003 UML to XML-Schema Transformation: a Case Study in Managing Alternative.
Sheet 1MDAFA2004 Linköping, June 2004 A Language for Model Transformations in the MOF Architecture Ivan Kurtev, Klaas van den Berg University of Twente,
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Lecture Transforming Data: Using Apache Xalan to apply XSLT transformations Marc Dumontier Blueprint Initiative Samuel Lunenfeld Research Institute.
Slice & dice the Web with XmlPL, The XML Processing Language A presentation for Boise Code Camp 2007 Joseph Coffland Cauldron Development LLC.
Unit 4 Representing Web Data: XML
PROGRAMMING LANGUAGES
XML Schema for WIRED XML Detector Description Workshop
Introduction to Design Patterns
Distribution and components
Software Quality Engineering
Abstract descriptions of systems whose requirements are being analysed
Database Processing with XML
Chapter 7 Representing Web Data: XML
Implementing Language Extensions with Model Transformations
Towards Automatic Model Synchronization from Model Transformation
Patterns.
Tools for Composing and Deploying Grid Middleware Web Services
Evaluating Compuware OptimalJ as an MDA tool
Chapter 20 Object-Oriented Analysis and Design
Introduction.
Constructing MDA-based Application Using Rational XDE for .NET
Presented by: Jacky Ma Date: 11 Dec 2001
Implementing Language Extensions with Model Transformations
XML and its applications: 4. Processing XML using PHP
From Use Cases to Implementation
Software Architecture & Design
Presentation transcript:

Building Adaptable and Reusable XML Applications with Model Transformations Ivan Kurtev, Klaas van den Berg Software Engineering Group University of Twente the Netherlands

Outline Context; Problems in XML Processing; Basic MDA Concepts; MDA-based XML Processing; Example; Conclusions and Future Work;

Context Application-specific XML processing: XML Document DOM Parser Processing Code DOM Tree Application Objects Mature tools and techniques for syntax definition and processing: XML Schema, Parsers, XPath, XSLT, XQuery; Application-specific processing: Processing code generates application objects; Difficult to standardize;

Problems in XML Processing Two Important Quality Properties of XML Applications: Adaptability: allows easy changes in applications; Reusability: processing logic should be reused in new applications Motivation: Hybrid languages (XHTML+Time, XHTML+SVG+MathML) and compound documents; Reuse of syntax is naturally followed by reuse of processing logic; Current techniques (DOM, SAX, Data Binding) do not provide the required quality properties; Processing logic is hard-coded in applications; Difficulties in reuse; Difficulties in changes;

Approach XML Processing based on Model Transformations (borrows techniques from Model Driven Architecture (MDA)); Transformation definition: relates an XML schema/DOM to a set of application classes; Transformation execution (processing): converts an XML document to a set of objects; Transformation definitions are expressed in a transformation language (e.g. MISTRAL);

Basic MDA Concepts Separation of system specification from system implementation; Increase in the level of abstraction for software development; Models: Model Transformations The MDA Pattern:

MOF and XML Meta Levels In the MDA, models are defined in an infrastructure known as Meta Object Facility (MOF) that spans four meta-levels; Similar meta-level organization is observed in the XML technology;

Transformation Pattern based on Meta Levels Refinement of the MDA transformation pattern:

Transformation Pattern for XML Processing Schema-less processing: based on DOM; Schema-based processing: an XML schema and DOM are available;

Structure of XML Applications Separation of concerns: Syntax (schema); Processing logic (transformation specification); Application classes (semantic domain);

Example (1) Processing of a subset of SMIL timing module; Source schema: <attribute name=’begin’ type=’string’/> <attribute name=’end’ type=’string’/> <attribute name=’dur’ type=’string’/> <attribute name=’timeContainer’ type=’string’/> Example of a timed document: <a timeContainer=’seq’ begin=’1’ dur=’20’> <b timeContainer=’par’ dur=’10’> <c timeContainer=’none’ dur=’10’/> <d timeContainer=’none’ dur=’10’/> </b> <e timeContainer=’none’ dur=’10’/> </a>

Example (2) Target Application Classes:

Example (3) Example time dependency graph as a result of timed document processing:

Example (4) transformation timeModule Transformation Specification written in MISTRAL: transformation timeModule languages MOF, Java timeApplicationModel instanceOf(MOF) JavaModel source timedXMLDocument instanceOf(MOF) XMLModel default target timeGraph instanceOf(Java) timeApplicationModel default timedElementMapping abstract ModelElementRule { source [e:Element link-to(node), condition {XPath($e[@timeContainer])} ] target [node: TimedElement {begin, end, dur, ctrlObject}] SlotRules { beginValue source [beg:Attribute=XPath($e/@begin)] target [begin=toInt(beg.value)] endValue source[end:Attribute=XPath($e/@end)] target [end=toInt(end.value)] durValue source [duration:Attribute=XPath($e/@dur)] target [dur=toInt(duration.value)] }

Example (5) Handling time containers and interval nodes: parallelContainer ModelElementRule inherits timedElementMapping { source [ condition {XPath($e[@timeContainer=’par’])} ] target [ node: Parallel {components} ] SlotRules { componentsValue source [timedChild:Element=XPath($e/*[@timeContainer])] target [components=target(timedChild, node)] } intervalNode ModelElementRule inherits timedElementMapping { source [ condition {XPath($e[@timeContainer=’none’])}] target [ node: Interval]

Reuse and Composition of Transformations A new language may be composed with the timing module: New processor is obtained via: Composing target application classes (software composition); Composing transformation definitions (based on the transformation language constructs);

Adaptability and Reusability Processing logic is explicit represented in transformation rules; Syntax, processing logic, and application classes are separated may evolve independently; Better granularity is achieved changes may be isolated to specific rules and classes; Reusability and Composability: Composition of software: difficult in the general case, aspect-oriented techniques may help; Composition of transformation definitions: easier since the transformation rules may be manipulated by other transformations;

Conclusions Approach for XML Processing: Based on transformations between source schema/document model and target application model; Uses transformation language MISTRAL for defining transformations; Based on the MDA/MOF technology; Allows reuse of existing application classes; A prototype of an interpreter that supports the core transformation language features is implemented;

Future Work Exploring the scalability of the approach; More complex case studies based on some WWW languages (e.g. SMIL, XHTML, MathML); Improving the transformation engine; Experiments with browser-like environments;