<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>On the Integration of Web Modeling Languages: Preliminary Results and Future Challenges</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Manuel Wimmer</string-name>
          <email>wimmer@big.tuwien.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrea Schauerhuber</string-name>
          <email>schauerhuber@wit.tuwien.ac.at</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wieland Schwinger</string-name>
          <email>wieland.schwinger@jku.ac.at</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Horst Kargl</string-name>
          <email>kargl@big.tuwien.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Business Informatics Group Vienna University of Technology</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Telecooperation Johannes Kepler University Linz</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Women's Postgraduate College for Internet Technologies Vienna University of Technology</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Unified Modeling Language (UML) is considered as the lingua franca in software engineering. Despite various web modeling languages having emerged in the past decade, in the field of web engineering a pendant to UML cannot be found yet. In the light of this “method war” the question arises if a unification of the existing web modeling languages can be successfully applied in the style of UML's development. In such a unification effort we defer the task of designing a “Unified Web Modeling Language”. Instead, we first aim at integrating three prominent representatives of the web modeling field, namely WebML, UWE, and OO-H, in order to gain a detailed understanding of their commonalities and differences as well as to identify the common concepts used in web modeling. This integration is based on specifying transformation rules allowing the transformation of WebML, UWE, and OO-H models into any other of the three languages, respectively. To this end, a major contribution of this work is the languages' definitions made explicit in terms of metamodels, a prerequisite for model-driven web engineering for each approach. Furthermore, the transformation rules defined between these metamodels - besides representing a step towards unification - also enable interoperability through model exchange.</p>
      </abstract>
      <kwd-group>
        <kwd>Web Modeling</kwd>
        <kwd>Model Integration</kwd>
        <kwd>Common Metamodel for Web Modeling</kwd>
        <kwd>Model-Driven Web Engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>‡ This work has been partly funded by the Austrian Federal Ministry of Transport, Innovation
and Technology (BMVIT) and FFG under grant FIT-IT-810806.
∗ This work has been partly funded by the Austrian Federal Ministry for Education, Science,
and Culture, and the European Social Fund (ESF) under grant 31.963/46-VII/9/2002.</p>
      <p>
        In the past decade various modeling approaches have emerged in the research field
of web engineering including WebML [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], UWE [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], W2000 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], OOHDM [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ],
OO-H [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], WSDM [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and OOWS [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. Each of those model-based approaches
follows the similar goal of counteracting a technology-driven and ad hoc development
of web applications. Beyond this, we notice similar and simultaneous extensions to
the individual web modeling approaches, e.g., for supporting context-aware web
applications [
        <xref ref-type="bibr" rid="ref2 ref6 ref9">2, 6, 9</xref>
        ], business process modeling [
        <xref ref-type="bibr" rid="ref14 ref4">4, 14</xref>
        ], and for exploiting all
benefits of model-driven web engineering (MDWE) [
        <xref ref-type="bibr" rid="ref15 ref18">15, 18</xref>
        ]. The current situation
somewhat resembles the object-oriented modeling “method war” of the 90ies. A
situation from which after a unification process the UML [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] eventually has become
the lingua franca in software engineering. In the light of the current “method war” in
the research field of web engineering (cf. Figure 1) the question arises if a unification
of the existing web modeling approaches can be successfully applied as it was
achieved for the UML.
      </p>
      <p>ER</p>
      <p>OMT</p>
      <p>UML</p>
      <p>
        In the MDWEnet initiative [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], which has recently started by a small group of
researchers working on MDWE, this and further questions are tackled. More
specifically, the initiative’s goal is to improve interoperability between current web
modeling approaches as well as their tools for the model-driven development of web
applications.
      </p>
      <p>As a prerequisite for unification a common agreement on the most important web
modeling concepts is essential. This agreement can only be gained when investigating
the concepts used in existing web modeling languages and fully understanding the
languages’ commonalities and differences. In the MDWEnet initiative, we therefore
defer the task of designing a “Unified Web Modeling Language”. Instead, we first
aim at integrating three prominent representatives of the web modeling field, namely
WebML, UWE, and OO-H, since they are well elaborated and documented as well as
supported by modeling tools. This integration is based on specifying and
implementing transformation rules allowing the transformation of WebML, UWE,
and OO-H models into any other of the three languages, respectively. This way a
detailed understanding of the common concepts used in web modeling can be
obtained as well as their different realizations in the three selected languages. On the
basis of this integration task the definition of a common metamodel for web modeling
can be achieved in the future.</p>
      <p>Consequently, the major contribution of this work is a step towards identifying the
common concepts in web modeling by first defining transformations between different
modeling languages. We present the general integration approach as well as first
results on the integration of WebML and OO-H.</p>
      <p>Besides representing an important step towards unification, the transformation
rules also enable model exchange between the three different languages. For defining
the transformation rules, the languages’ definitions had to be made explicit in terms of
metamodels, which in turn represent a prerequisite for enabling model-driven web
engineering for each individual approach. On the basis of tool adapters the models’
representation within the approaches’ tools could be translated into instances of these
metamodels and vice versa thus also insuring interoperability. Furthermore, it will be
possible to exploit the different strengths of each web modeling approach, e.g., code
generation facilities for different platforms such as J2EE in WebML’s WebRatio1 tool
and PHP in OO-H’s tool VisualWade2.</p>
      <p>In the remainder of the paper, we discuss our methodology for integrating existing
web modeling languages in Section 2. We elaborate on preliminary results of the
integration task with respect to WebML and OO-H in Section 3 and provide our
lessons learned in Section 4. Finally the paper is concluded with a discussion on
future challenges in integrating as well as unifying web modeling languages.
2 Integration Methodology used in MDWEnet</p>
      <p>In this section we discuss the general methodology used for the integration of
WebML, OO-H, and UWE. We first explain why integration on the basis of already
existing language artifacts is not possible. Second, we outline a model-based
integration framework, and third, we discuss how to obtain the most important
prerequisite for integration – the metamodels for the three web modeling languages.
Why is the integration on the basis of existing language artifacts not possible?</p>
      <p>
        In Table 1 we present an overview of the formalisms used for defining WebML,
OO-H, and UWE as well as the approaches’ model storage formats. When looking at
the languages’ definitions, one can easily identify that each language is specified in a
different formalism, even in different technological spaces [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], which a-priori
prevents the comparability of the languages as well as model exchange.
      </p>
      <p>For the integration of modeling languages in general and for web modeling
languages in particular, the first requirement is that the languages are defined with the
1 www.webratio.com
2 www.visualwade.com
same meta-language. This enables to overcome syntactical heterogeneities and to
compare the language concepts in the same formalism. Furthermore, defining
languages with the same formalism also allows expressing their model instances in
the same formalism which further fosters comparability of the languages’ concepts
and beyond allows the uniform processing of the models, e.g., their visualization or
transformation.</p>
      <p>Consequently, it seems necessary to split up the integration process in order to
tackle two distinct integration concerns, namely syntactical integration and
semantical integration: In the first step, i.e. the syntactic integration, the different
formats used by WebML, UWE and OO-H are aligned towards one common
integration format. For example, a WebML model represented in terms of an XML
document has to be translated into this common integration format. The second step,
i.e. the semantical integration step, covers the transformation of a model from one
language into another one, e.g. from WebML to OO-H, while preserving the
semantics of the input model within the output model. This transformation is based on
transformation rules which require the input models to be available in the common
integration format.</p>
      <p>How to use model-based techniques for integration purposes?</p>
      <p>
        We decided to apply a model-based approach and use techniques and technologies
which have emerged with the rise of Model Driven Engineering (MDE) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. MDE
mainly propagates two techniques which are relevant for integration purposes: (1)
metamodels for defining the concepts of modeling languages, and (2) model
transformations. Model transformations in the context of MDE can be divided into
vertical model transformations and horizontal model transformations [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. While the
first kind concerns transformations between different abstraction levels, e.g.,
continuously introducing more details that finally are necessary for code generation
purposes, e.g., for model refactoring. Consequently, in this work we rely on
horizontal model transformations.
      </p>
      <p>
        In Figure 2, we present our model-based integration framework, which is based on
the tool integration pattern of Karsai et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The framework is built upon
opensource technologies for MDE, which have been developed under the hood of the
Eclipse project. In particular, we are using the Eclipse Modeling Framework (EMF)
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], as a model repository for a common syntactic integration format and EMF’s
Ecore, i.e. an implementation of the Meta Object Facility (MOF) standard [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], as the
meta-language for defining the metamodels for WebML, OO-H, and UWE.
3 Recently, two different proposals for a WebML metamodel have been published in parallel
[
        <xref ref-type="bibr" rid="ref20 ref27">20, 27</xref>
        ].
      </p>
      <p>
        Furthermore, we employ ATL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] as model transformation language to implement
the transformation rules and finally, the ATL engine for actually executing the
transformation. In Figure 2, we also sketch the model-based integration process of
WebML (WebRatio), OO-H (VisualWade), and UWE (ArgoUWE), which is
described more detailed in the following:
1) Syntactic Integration. On the basis of tool adapters for bridging the native
model storage formats of the approaches’ tools towards the EMF models can be
integrated syntactically. Thus, realizing import functionality the tool adapters
have to parse the models in their native format and generate an XMI [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]
version for the EMF. In addition, the tool adapters also must be capable of
exporting the models by transforming them into the tools’ native format.
2) Semantic Integration. After the syntactic integration, the user can focus on the
correspondences between modeling concepts of different languages. This is
done by relating the metamodel elements and implementing the integration
knowledge in terms of ATL model transformation rules.
      </p>
    </sec>
    <sec id="sec-2">
      <title>WebML</title>
      <p>(WebRatio)
M2</p>
      <p>Class
ClassClassClass
Class CCllaassss
WebML
Metamodel
(Ecore)
tre M1
p
-daA 1
l
o
o
T
WebML</p>
      <p>Models</p>
      <sec id="sec-2-1">
        <title>Eclipse</title>
      </sec>
      <sec id="sec-2-2">
        <title>Modeling</title>
      </sec>
      <sec id="sec-2-3">
        <title>Framework</title>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Common 4</title>
      <p>Metamodel for
Web Modeling
Transformation</p>
      <p>Definition
2 (ATL)</p>
      <p>Class
ClassClassClass
Class Class</p>
      <p>Class
UWE
CClalassssCCllaassCssClalsasss OO-H Me(tEacmoroed)el
Class Metamodel</p>
      <p>(Ecore)
Transformation</p>
      <p>Execution</p>
      <sec id="sec-3-1">
        <title>3 (ATL Engine)</title>
        <p>UWE
Models
1
OO-H
Models
1</p>
        <sec id="sec-3-1-1">
          <title>Tool-Adapter</title>
          <p>OO-H
(VisualWade)
trpa UWE
e
-dA (ArgoUWE)
l
o
o
T
3) Definition of a Common Metamodel for Web Modeling. The top of Figure 2,
illustrates the goal of MDWEnet, i.e., a unification of existing web modeling
languages in terms of a common metamodel for web modeling. By defining the
metamodels for WebML, OO-H, and UWE, as well as working out the
integration knowledge in a first step, we hope that the creation of such a
common metamodel is easier to achieve afterwards. For the future, the common
metamodel for web modeling can serve as a pivot model and thus lowering the
integration effort drastically.
4) Execution of the Transformations. The model transformation rules then can
be executed in a model transformation engine. More specifically, the ATL
engine reads an input model, e.g. a WebML model, and generates an output
model, e.g. an OO-H model, according to the transformation rules.
Subsequently, the generated models can be exported via the specific tool
adapter to the proprietary tool.</p>
          <p>What’s missing for a model-based integration and how to close the gap?</p>
          <p>
            As a key-prerequisite for a model-based integration, the metamodels for WebML,
OO-H, and UWE must be available, which currently, however, is not the case. Within
the MDWEnet initiative, we have decided to use a top-down approach for building
the individual metamodels by starting with a focused set of requirements which are
specific to the web modeling domain [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ]. This approach has the advantage that we
can concentrate on the core modeling constructs of the web modeling domain
supported by the addressed approaches instead of focusing on a huge amount of
concepts available in the individual approaches and implemented in their tools.
Following this top-down approach, a set of modeling requirements for the core of web
modeling were defined each focusing on a specific modeling problem. In the
following, these requirements are briefly explained and categorized into requirements
for content modeling, hypertext modeling, and content management modeling.
          </p>
          <p>Layer 0 – Content Modeling. This layer is required to express domain objects and
their properties on which the web application is built upon.</p>
          <p>Example: Class Student with attribute name, age, and a relationship to the class
Professor.</p>
          <p>Layer 1 – Hypertext Modeling. This layer covers the requirements for web
applications that allow navigation among the hypertext nodes and publish within a
node the content extracted from domain objects (cf. Layer 0), possibly based on input
provided by the user. The following four cases are subsumed by Layer 1:
• Global Navigation: This case requires a starting point in the web application, i.e.
a home page, and subsequently, a navigation mechanism for moving to another
page of the hypertext.
• Content Publication: This case requires a page, which publishes a list of domain
objects and displays for each object a set of attribute values.
• Parametric Content Publication: This case requires a page, which publishes a
list of domain objects each having attached a navigation mechanism, e.g., a
button, an anchor. This mechanism shall allow the user to navigate to the details
of the object.
• Parametric Content Publication with Explicit Parameter Mapping: This case
requires one page, which contains an input form with various input fields. The
user inputs are used for computing a set of domain objects. Thereby, the attribute
values of the objects need to satisfy a logical condition including as terms the
input provided by the user.</p>
          <p>Layer 2 – Content Management Modeling. This layer covers the requirements
for web applications that allow the user to trigger operations for updating the domain
objects and their relationships (cf. Layer 0).</p>
          <p>Example: Create a new instance of type Student. Update the age value of the instance
of type Student where name=’Michael Smith’.</p>
          <p>
            The definition of metamodels is of course an art on its on and can be approached in
different ways. For the purpose of this work it was decided to employ an
examplebased approach by a process of obtaining a metamodel from the aforementioned
requirements as follows [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ]: One or more concrete modeling examples were derived
from the requirements specification and modeled in the respective modeling language
within each approach’s accompanying tool. The code generation facilities of each tool
were then used to find out if the examples modeled were semantically identical, i.e.,
the generated applications should work in the same way. From these models the
language concepts which have been used were identified, as well as how these
concepts were related to each other. Consequently, this information is then defined in
a corresponding metamodel. These metamodels should allow expressing the same
models as within the approaches’ tools, meaning the same information must be
expressible in the models.
3 Preliminary Results
          </p>
          <p>In this section we present our preliminary results. First, we briefly discuss the
modeling examples realizing the MDWEnet’s modeling requirements for web
modeling and provide the resulting metamodels in Section 3.1. In order to illustrate
how, on basis of those metamodels, the integration is realized with ATL in Section
3.2 we then present excerpts of the set of ATL transformation rules that have been
defined for the metamodels.
3.1 Derived Metamodels</p>
          <p>
            Our first task after the MDWEnet’s modeling requirements for web modeling have
been agreed on has been the derivation of concrete modeling examples realizing these
requirements specifications. Inspired by previous examples in the web modeling
domain, we are using excerpts of the often referred to album store running example
[
            <xref ref-type="bibr" rid="ref6">6</xref>
            ], which covers all the aforementioned requirements. After defining the modeling
examples, each of them was modeled within the approaches’ tools, i.e., WebRatio,
VisualWade, and ArgoUWE, respectively. Furthermore, we used the code generation
facilities to compare the behavior of the models by executing the generated web
applications.
          </p>
          <p>
            On the basis of the modeling examples, each expressed in WebML, OO-H, and
UWE, we identified the language concepts used in the individual examples and
obtained first versions of the metamodels for WebML as well as for OO-H. The
metamodel for UWE is currently under preparation. Beyond, we have grouped the
metamodels’ elements into packages which directly correspond to the layers of the
modeling requirements presented in Section 2. In the following, the class structures of
the metamodels for WebML and OO-H are presented and briefly explained. For more
detailed versions of the metamodels the reader is referred to [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ].
          </p>
          <p>WebML Metamodel. In Figure 3, we present the resulting WebML metamodel,
i.e., its packages, classes and their interrelationships. While the Structure package and
ContentManagement package correspond to the Layer 0 and Layer 2 of the modeling
requirements, respectively, for Layer 1 two packages have been defined, namely
Hypertext and HypertextOrganization.</p>
          <p>The Content package contains modeling concepts that allow modeling the content
layer of a web application. Since WebML’s content model is based on the ER-model,
it supports ER modeling concepts: An Entity represents a description of common
features, i.e., Attributes, of a set of objects. Entities that are associated with each other
are connected by Relationships. Unlike UML class diagrams, ER diagrams model
structural features, only.</p>
          <p>The ContentManagement package contains modeling concepts that allow the
modification of data from the content layer. The specific ContentManagementUnits
are able to create, modify, and delete Entities (cf. EntityManagementUnit) as well as
establish or delete Relationships between Entities from the content layer (cf.
RelationshipManagementUnit).</p>
          <p>WebML</p>
          <p>WebMLModel
Content
«enumeration»
WebMLTypes 0..1 superentity *
•••• TPSNetaurxsmintsgbweorrd 1 Etontity
• Integer
• Float
• Date
• Time
•• TBiomoeleSatnamp
• URL
• BLOB
• OID</p>
          <p>* relationship
Relationship 1inverse
minCard:EInt
maxCard:EInt
Hypertext</p>
          <p>to 1</p>
          <p>LinkableElement
«enumeration»
LinkType
•• tnroarnmspaolrt ContentUnit
• automatic
Content::Entity</p>
          <p>0..1 DisplayUnit EntryUnit
MultiDataUnit IndexUnit DataUnit
1 Structure::</p>
          <p>ContentModel</p>
          <p>Navigation::
1 NavigationModel</p>
          <p>ContentModel
attribute* typeA: WtterbibMuLTteypes
{xor}
0..1 userType
Domain *</p>
          <p>* domainValue
DomainValue</p>
          <p>ContentManagement</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Hypertext:: t*o</title>
        <p>LinkableElement t*o okLin*k OKLink
OperationUnit</p>
        <p>koLi*nk KOLink</p>
        <p>ContentManagementUnit
Conetnetintyt:1:Entity Content::1Relraeltaitoionnsshhipip</p>
        <p>EntityManagementUnit RelationshipManagementUnit
DeleteUnit ModifyUnit CreateUnit ConnectUnit DisconnectUnit
selector 0..1</p>
        <p>0..1 Hypertext:: targetselector
sele0c.t.o1r Selector s0o.u.1rceselector</p>
        <p>HypertextOrganization
* Field
0..1 Selector</p>
        <p>Content:: SelectorCondition
Attribu*te 0..1 1..* {xor}</p>
        <p>0..1
Content::
Relationship</p>
        <p>*
ContentManagement::</p>
        <p>OperationUnit
NavigationModel
SiteView
*
0..1
homepage</p>
        <p>Hypertext::
LinkableElement</p>
        <p>Page</p>
        <p>*
Hypertext::
ContentUnit</p>
        <p>Link
* type:LinkType
* LinkParameter
0..1 0..1
LinkParameter LinkParameter</p>
        <p>Source Target</p>
        <p>In contrast, the hypertext layer represents a view on the content layer of a web
application, only. The Hypertext package summarizes ContentUnits, used, for
example, to display information from the content layer which may be connected by
Links in a certain way.</p>
        <p>The HypertextOrganization package defines the Page modeling concept which is
used to organize and structure information from the content layer, e.g., ContentUnits
from the Hypertext package, SiteViews group Pages as well as operations on data
from the content layer, e.g., OperationUnits from the ContentManagement package.
More specifically, SiteViews represent groups of pages devoted to fulfilling the
requirements of one or more user groups.</p>
        <p>OO-H Metamodel. The class structure of the resulting OO-H metamodel is
presented in Figure 4. Similar to the WebML metamodel, the Layer 0 and Layer 2
OO-H</p>
        <p>OO-HModel</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Navigation</title>
      <p>0..1
OCLExpression filter
exp : String pr0e.c.1ondition
«enumeration»
AccessType
• Index
• guidedTour
• showAll
• indexGuidedTour
Content::Role 1
1..* PresentationModel
1..* NavigationalModel
1</p>
      <p>ContentModel</p>
      <p>Link
*
NavigationalLink
navigationalPattern :
AccessType
TraversalLink</p>
    </sec>
    <sec id="sec-5">
      <title>Content</title>
      <p>«enumeration»
PrimitiveType
• String
• Integer
• Boolean
• File
• Time
• Undefined
• URI
«enumeration»
OperationType
• Constructor
• Destructor
• Modifier
• Relationer
• Unrelationer
• Custom
modeling requirements are realized by corresponding packages in the OO-H
metamodel, i.e., the Content package and Service package, respectively. Concerning
Layer 1, two packages have been defined, however, namely the Navigation and
Presentation packages.</p>
      <p>In the Content package, OO-H’s content model is based on the UML class
diagram: A Class represents a description of common structural and behavioral
features, e.g., Attributes and Operations, respectively. Classes can be connected with
each other via Associations.</p>
      <p>The Service package contains the modeling concept ServiceNode that allows the
execution of arbitrary operations defined at the content layer. The modeling concept
ServiceLink is needed to connect NavigationalNodes with ServiceNodes, and in
addition, to transport information in terms of arguments from NavigationalNodes to
Operations.</p>
      <p>The Navigation package represents a view on the content layer of a web
application. In the Navigation package two types of NavigationalNodes can be
distinguished, namely ClassNodes displaying information from the content layer, and
Collections providing additional information such as navigation menus. Both types
have in common that they may be connected by Links. OCLExpressions attached to
Links either filter certain objects which should be displayed at the target
NavigationalNode or are used as preconditions that must be assured to access the
target NavigationalNode.</p>
      <p>The Presentation package defines the Page modeling concept which is used to
organize and structure the NavigationalNodes of the navigation layer.
*</p>
      <p>Page</p>
      <p>Fram* e</p>
    </sec>
    <sec id="sec-6">
      <title>Presentation</title>
      <p>PresentationModel</p>
      <p>NavigationalModel
1 * 0..1 entryPoint
origin1 NavigationalNode *
target
CollectionNode ClassNode
1 *
Content::Class Content::Attribute</p>
    </sec>
    <sec id="sec-7">
      <title>Service</title>
      <p>ContentModel</p>
      <sec id="sec-7-1">
        <title>StructuralFeature *</title>
        <p>Attribute
p:PrimitiveType</p>
        <p>Role
2
1
* Association</p>
        <p>* superClass 0..1
objectT0y..p1e Class
endType 1 0..1 returnType</p>
        <p>*
0..1 Operation 1
o:OperationType</p>
        <p>*
pA:PrrigmuitmiveeTnypte *</p>
        <p>Following we discuss one representative example for the commonalities between
WebML and OO-H, in order to exemplify how integration is achieved on the basis of
metamodels and model transformation.</p>
        <p>As already mentioned, ATL was used as model transformation language, which is
a uni-directional, rule-based transformation language. For a full integration,
consequently, transformation rules have to be specified for both directions, e.g. from
WebML to OO-H and vice versa. An ATL rule consists of a query part (from
keyword), which collects the relevant source model elements, and a generation part
(to keyword) creating the target model elements.</p>
        <p>In Figure 5 (a) we illustrate the semantic correspondences between WebML and
OO-H metamodel elements and present two ATL rules implementing the
transformation from WebML to OO-H in Figure 5 (b).</p>
        <p>1. Rule Entity_2_Class is responsible for transforming each Entity of the</p>
        <p>WebML model into a Class in OO-H.
2. Rule DisplayUnit_2_ClassNode is responsible for transforming each instance
of the concrete subclasses of DisplayUnit into ClassNodes.
3. This minimal example already shows some advantages of using ATL in
contrast to using a general-purpose programming language. When executing
ATL rules, a “trace model” is created transparently, which saves how
instances are transformed. In our example the ATL engine traces which Class
instance is generated for an Entity instance. Therefore, it is possible to retrieve
the Class instance for the referenced Entity, which allows for the simple
statement cN.displayedClass &lt;- dU.displayedEntity.
4 Lessons Learned</p>
        <p>
          Following, we summarize our lessons learned concerning the integration of
WebML and OO-H. In general, the integration of WebML and OO-H has turned out
to be straight-forward for the most part. At least for the core concepts of web
modeling, which have been the focus of the MDWEnet initiative, there exist many
commonalities between the two languages. Since the chosen modeling examples
could be realized in each language the languages can be considered to have “equal”
expressivity with respect to the defined core requirements. Nevertheless, we also
faced differences between the languages, which aggravated the integration. When
integrating languages based on their metamodels, further information, which often are
not covered by the metamodels, must be incorporated into the transformation rules.
This kind of information is on the one hand incorporated into the code generator and
on the other hand defined by the frameworks for which code is generated. Some of
these differences and the complexity they introduced during integration are explained
following the structure of the modeling requirements layers. Nevertheless, from our
current experiences we are able to conclude that the differences can be eliminated
within the transformations rules. Due to space restrictions and readability reasons we
explain the transformation rules textually and refer the reader to [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] for detailed
information on the ATL code.
4.1 Content Modeling (Layer 0)
        </p>
        <p>As can be seen in Figure 1, WebML and OO-H have different origins. WebML is
based on the ER-model, which is typically used in the context of modeling database
schemas. In contrast, OO-H has emerged from an object-oriented background.
Consequently, in WebML each Entity has a set of operations which are “implicitly”
available and need not be defined by the modeler, i.e., WebML’s
ContentManagementUnits actually represent a data manipulation language (DML).
These operations include typical create, update, and delete operations as well as
operations for linking Entities (cf. Table 2). In contrast, in OO-H there are some
predefined operation types available, which have to be explicitly defined for each
Class by the modeler (cf. Table 2). Thus, when transforming WebML Entities in
OOH Classes, the default operations must be created for each corresponding Class, in
order to ensure that OO-H’s ServiceNodes can execute them.</p>
        <p>Example: Figure 6 (a) shows an excerpt of the content model of the album store
example. In Figure 6 (b) we depict the corresponding OO-H content model that needs
to be generated by the transformation rules. For each Entity in the content model of
WebML an OO-H Class is generated. Besides transforming the Entities’ Attributes, in
OO-H the Constructor(), Destructor(), and Modifier() operations must be defined for
the Class as well. Likewise for each Relationship of an Entity the Relationer() and
Unrelationer() operations have to be generated for the corresponding Class in the
OOH content model.</p>
        <p>Album
oid:Integer
title:String
year:Integer</p>
        <p>Album</p>
        <p>ContentModel</p>
        <p>Album
oid:Integer
title:String
year:Integer
«Constructor» new()
«Destructor»destroy()
…</p>
        <p>ServiceModel</p>
        <p>DeleteAlbum
4.2 Hypertext Modeling (Layer 1)</p>
        <p>Generally speaking, one could say that WebML is the more explicit language
compared to OO-H, i.e., in the way that there are much more language concepts used.
In particular, this is the case for hypertext modeling where OO-H uses a minimal set
of concepts, which are refined with OCLExpressions, i.e., preconditions and filters,
for Links. In contrast to WebML, where various types of ContentUnits are available,
OO-H uses the concepts ClassNode and Collection, only. The actual content and
behavior of ClassNodes is defined by their incoming Links. Furthermore, for
parameter passing WebML offers LinkParameters with explicit source and target
parameter bindings, while in OO-H this is again expressed by OCLExpressions.</p>
        <p>
          Besides the difference in the number of explicit concepts, WebML and OO-H both
use their own selector language for computing the content to be displayed. While in
OO-H the Object Constraint Language (OCL) [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] has been reused and extended,
WebML’s selector language is defined within the metamodel as well as based on the
concepts of Selector and SelectorCondition [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. However, in the current version of
the OO-H metamodel, the modified grammar for the OCL is not yet covered as it is
done for the WebML selector language in the WebML metamodel. Thus, currently
the OCL statements are hard-coded in the transformations rules as ordinary Strings.
Incorporating the OCL grammar into the OO-H metamodel and the refinement of the
model transformations in order to define the OCL statements as model elements is
subject to future work. In the following, an example illustrating these differences
between WebML and OO-H is given.
        </p>
        <p>Example: A search scenario is given, where in the first page the user provides
input, i.e., a certain year, for searching the set of albums. Figure 7 (a) shows the
example modeled with WebML4, where the EntryUnit AlbumSearch with a Field
named ‘from’ represents the input form. The Link to the IndexUnit AlbumResults
carries the user input in terms of a parameter. Therefore, a LinkParameter is assigned
to the Link, which has as LinkParameterSource the input Field and as
LinkParameterTarget the SelectorCondition of the AlbumResults IndexUnit. This
SelectorCondition computes the subset of all albums where the input value of the user
equals the value of the year attribute. In Figure 7 (b), the same information is modeled
with OO-H, where a separate concept for the information that is transported via Links
is not available. More specifically, the search scenario can be modeled with a
Collection AlbumSearch and a Link to the ClassNode AlbumResults. The Link
4 Please note that ellipse-shaped legends are not part of WebML’s notation.
contains a filter OCLExpression dst.year = ?, with the question mark standing
for the user’s input value and dst.year meaning the ‘year’ Attribute of the Album
Class.</p>
        <p>AlbumSearch</p>
        <p>Linkparameter
from</p>
        <p>AlbumResults
source</p>
        <p>Field from
4.3 Content Management Modeling (Layer 2)</p>
        <p>Due to the differences at the content modeling layer, the modeling concepts for
content management modeling are also differently defined in WebML and OO-H. For
each operation on Entities of the content modeling layer WebML offers an explicit
modeling concept, e.g., CreateUnit, DeleteUnit, and ConnectUnit. In contrast,
OOH’s Service package encompasses two concepts only, namely ServiceNode and
ServiceLink. This means that OO-H does not differentiate between the typical create,
update, and delete operations by defining sub-concepts of ServiceNode. Instead a
ServiceNode has a reference to the Operation which should be executed when the
ServiceNodes is entered.</p>
        <p>Example: The given scenario describes the deletion of a specific album by an
authorized user. In Figure 6 (a) a DeleteUnit DeleteAlbum is shown which might be
accessed, e.g., through an IndexUnit AlbumSearch (cf. Figure 7 (a)). Likewise,
concerning OO-H a ServiceNode DeleteAlbum might be accessed, e.g., through a
ClassNode (cf. Figure 7 (b)). For the given scenario we assume that the Selectors and
SelectorConditions are translated according to the transformation rules defined for the
hypertext modeling layer. Beyond, each OperationUnit from the WebML model
needs to be translated into a ServiceNode in the OO-H model. Thereby, the reference
identifying the corresponding operation type (cf. Table 2) must be set for the
ServiceNode.
5 Conclusions and Future Challenges</p>
        <p>In this paper we have presented our methodology of integrating three of the most
prominent web modeling approaches, namely WebML, OO-H, and UWE, on the basis
of a set of core web modeling requirements. As a proof of concept, we have defined
the core languages in Ecore-based metamodels and subsequently, have implemented
the integration in ATL model transformations rules. From our preliminary results and
lessons learned from the integration of WebML and OO-H sofar, we conclude that the
core of the three languages can be integrated without loosing information.
Nevertheless, the presented results are only a first step in the direction of a full
integration of the languages and to the definition of a common metamodel for web
modeling.</p>
        <p>
          Future challenges concerning the integration of WebML and OO-H include the
finalization of the integration for their core modeling concepts which requires the
OCL version used in OO-H to be incorporated in the metamodel. Therefore, we plan
to employ the EBNF_2_Ecore transformer [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ], which is capable of generating the
corresponding metamodel elements from a textual EBNF grammar. On the basis of
this we intend to finalize the transformation rules from OO-H to WebML.
        </p>
        <p>The UWE metamodel is currently under preparation. As soon as a first stable
version is available, we plan to integrate UWE with the two other modeling languages
as well. We expect that a third language would bring further insights for building the
common metamodel for web modeling and on these results a first unification of the
modeling concepts can be proposed for the core requirements.</p>
        <p>Beyond the core requirements, the modeling requirements and modeling examples
need to be extended to other web modeling concerns such as presentation,
contextawareness, and business processes in the future to broaden the view on the unification
of the modeling concepts. Furthermore, a refinement of possible variants of modeling
requirements, in order to find further sub-concepts and alternative modeling styles
would be of interest.</p>
        <p>Acknowledgments. We would like to thank the members of the MDWEnet initiative
that have contributed to this paper in terms of preliminary work, including Pierro
Fraternali (Politecnico di Milano) for setting up the set of modeling requirements and
Cristina Cachero, Jaime Gomez, Santiago Meliá, Irene Garrigós (Universidad de
Alicante) as well as Nora Koch (LMU München) for their work on the UWE
metamodel.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Baresi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colazzo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mainetti</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Morasca</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>W2000: A Modeling Notation for Complex Web Applications</article-title>
          . In Mendes, E. and
          <string-name>
            <surname>Mosley</surname>
          </string-name>
          , N. (eds.) Web Engineering:
          <article-title>Theory and Practice of Metrics and Measurement for Web Development</article-title>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Baumeister</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knapp</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , G.:
          <article-title>Modelling Adaptivity with Aspects</article-title>
          .
          <source>Proc. 5th Int. Conf. on Web Engineering (ICWE05)</source>
          , Sidney, Australia,
          <year>July 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bézivin</surname>
          </string-name>
          , J.:
          <source>On the Unification Power of Models, SoSyM</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ),
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manolescu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Process modeling in Web applications</article-title>
          .
          <source>ACM Trans. Softw. Eng. Methodol</source>
          .
          <volume>15</volume>
          (
          <issue>4</issue>
          ),
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Budinsky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Steinberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merks</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ellersick</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Grose</surname>
          </string-name>
          , T.J.: Eclipse Modeling Framework,
          <string-name>
            <surname>Addison-Wesely</surname>
          </string-name>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Daniel</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matera</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Facca</surname>
          </string-name>
          , and F.:
          <article-title>Model-driven Development of ContextAware Web Applications</article-title>
          , ACM TOIT,
          <volume>7</volume>
          (
          <issue>2</issue>
          ),
          <year>2007</year>
          , to appear.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bangio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Comai</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Matera</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <given-names>Designing</given-names>
            <surname>Data-Intensive Web</surname>
          </string-name>
          <string-name>
            <surname>Applications</surname>
          </string-name>
          , Morgan-Kaufmann,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>De Troyer</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casteleyn</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Plessers</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Using ORM to Model Web Systems</article-title>
          ,
          <source>Proc. Int. Workshop on Object-Role Modeling</source>
          , Agia Napa, Cyprus,
          <year>October 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Garrigós</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casteleyn</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gómez</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A Structured Approach to Personalize Websites using the OO-H Personalization Framework</article-title>
          .
          <source>Proc. of the 7th Asia-Pacific Web Conference (APWeb</source>
          <year>2005</year>
          ), Shangai, China,
          <year>March 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Gómez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cachero</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pastor</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Conceptual Modeling of Device-Independent Web Applications</article-title>
          . IEEE MultiMedia,
          <volume>8</volume>
          (
          <issue>2</issue>
          ),
          <fpage>2001</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Transforming Models with ATL: Proceedings of the Model Transformations</article-title>
          .
          <source>Proc. of the Model Transformations in Practice Workshop</source>
          at MoDELS, Montego Bay, Jamaica,
          <year>October 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Karsai</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lang</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neema</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Tool Integration Patterns. Workshop on Tool Integration in System Developement, ESEC/FSE, Helsinki, Finland,
          <year>September 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kraus</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards a Common Metamodel for the Development of Web Applications</article-title>
          .
          <source>Proc. of the 3rd Int. Conf. on Web Engineering (ICWE</source>
          <year>2003</year>
          ),
          <year>July 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kraus</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cachero</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meliá</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Integration of Business Processes in Web Application Models</article-title>
          . J. Web Eng.,.
          <volume>3</volume>
          (
          <issue>1</issue>
          ),
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , G.,
          <string-name>
            <surname>Escalona</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Model transformations from requirements to web system design</article-title>
          .
          <source>Proc. of the 6th Int. Conf. on Web Engineering (ICWE</source>
          <year>2006</year>
          ),
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Koch</surname>
          </string-name>
          et al.
          <article-title>MDWEnet: A Practical Approach to achieve Interoperability of Model-Driven Web Engineering Methods</article-title>
          . In preparation,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bézivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Aksit</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Technological spaces: An initial appraisal</article-title>
          .
          <source>Proc. Of Int. Federated Conf</source>
          .
          <article-title>(DOA,ODBASE</article-title>
          , CoopIS), Los Angeles,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Meliá</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gómez</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The WebSA Approach: Applying Model Driven Engineering to Web Applications</article-title>
          . J. Web Eng.,
          <volume>5</volume>
          (
          <issue>2</issue>
          ),
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Gorp</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>A Taxonomy of Model Transformations. Language Engineering for Model-Driven Software Development - Dagstuhl Seminar Proceedings</article-title>
          , Dagstuhl, Germany,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vallecillo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>WebML modeling in UML</article-title>
          .
          <source>IET Software Journal</source>
          ,
          <year>2007</year>
          , to appear.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. Object Management Group (OMG).
          <source>Meta Object Facility (MOF) 2.0 Core Specification Version 2</source>
          .0. http://www.omg.org/docs/ptc/04-10-15.pdf,
          <year>October 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Object Management</surname>
          </string-name>
          <article-title>Group (OMG), MOF 2.0/XMI Mapping Specification</article-title>
          ,
          <year>v2</year>
          .1, http://www.omg.org/docs/formal/05-09-01.pdf,
          <year>September 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. Object Management Group (OMG),
          <source>OCL Specification Version 2</source>
          .0, http://www.omg.org/docs/ptc/05-06-06.pdf,
          <year>June 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Object Management</surname>
          </string-name>
          <article-title>Group (OMG)</article-title>
          .
          <source>UML Specification: Superstructure Version 2</source>
          .0. http://www.omg.org/docs/formal/05-07-04.pdf,
          <year>August 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Pastor</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fons</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelechano</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abrahao</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Conceptual Modelling of Web Applications: The OOWS Approach</article-title>
          . In E. Mendes and N. Mosley (eds.) Web Engineering:
          <article-title>Theory and Practice of Metrics and Measurement for Web Development</article-title>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Rossi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwabe</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Model-Based Web Application Development</article-title>
          . In E. Mendes and N. Mosley (eds.) Web Engineering:
          <article-title>Theory and Practice of Metrics and Measurement for Web Development</article-title>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Schauerhuber</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapsammer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Retschitzegger</surname>
          </string-name>
          , W.:
          <article-title>Bridging WebML to Model-Driven Engineering: From DTDs to MOF</article-title>
          .
          <source>IET Software Journal</source>
          ,
          <year>2007</year>
          , to appear.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koch</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,:
          <article-title>Modelling Web Applications</article-title>
          . In Kappel, G.,
          <string-name>
            <surname>Pröll</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Reich, S.,
          <string-name>
            <surname>Retschitzegger</surname>
          </string-name>
          , W. (eds.) Web Engineering - Systematic Development of Web Applications, Wiley,
          <year>June 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kramler</surname>
          </string-name>
          , G.:
          <article-title>Bridging Grammarware and Modelware</article-title>
          .
          <source>Proc. of Satellite Events at the MoDELS 2005 Conference</source>
          , Montego Bay, Jamaica,
          <year>October 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>30. http://www.big.tuwien.ac.at/projects/mdwenet/</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>