<!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>Towards the Integration of Data and Functionality in Web Applications. A Model Driven Approach 1</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Victoria Torres</string-name>
          <email>vtorres@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ricardo Quintero</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marta Ruiz</string-name>
          <email>mruiz@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vicente Pelechano</string-name>
          <email>pele@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Information Systems and Computation Technical University of Valencia Camino de Vera</institution>
          <addr-line>s/n, 46022 Valencia</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Web Engineering methods have evolved during the last years to deal with new requirements that have arisen as a natural evolution of Web Applications. However, a new challenge that has been little handled by some of these methods is the data and functionality integration with third-party systems. Relying on the basic principles of the OMG Model Driven Architecture, we present a solution to achieve this integration at the conceptual modelling level. Therefore, solving the integration problem at this level of abstraction let us (1) give a general solution that is not tied to any particular implementation technology and (2) to handle external components at the conceptual modelling phase. To achieve this goal we present a new model that characterizes external functionality at a high level of abstraction.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        In the last years it has been done a very hard work in the Web Engineering field. As a
result, a set of proposals have been developed to tackle with features such as
navigation. The most outstanding proposals developed are WebML [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], OOWS [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
OOHDM [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], UWE [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], WSDM [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] or OO-H [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] among others. These proposals were
conceived at a first stage to provide a methodological guide for the development of
Web Applications. Therefore, the main functionality provided by the systems
developed under any of these proposals was the retrieval and the maintenance of data
stored in their persistent layer. In the following years, these approaches have been
extended to tackle with new requirements that have arisen as a natural evolution of the
Web. However, these extensions have always been addressed for the construction of
isolated artifacts where little methodological solution has been provided to achieve
data and functionality integration from different sources.
      </p>
      <p>
        Web Engineering Methods, such as WebML, have addressed directly the
integration of Web Services [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. To achieve this integration they have included new
1 The work reported in this paper has been funded by the MEC under grant TIN2004-03534
and cofinanced by FEDER
WebML constructs that characterize each kind of Web Service operations. However,
we think that this solution is too dependent to the implementation technology, what
entails to provide a different integration solution for each technology. Moreover, it
mixes abstraction units from different levels.
      </p>
      <p>The amount of data and functionality available in the Web make us to think in the
benefits that we can bring to Web Applications. Now we can provide Web users not
only with the data and functionality maintained by our own system. Therefore, we are
in conditions to create value added Web Applications. However, the functionality
available in the Web is given in terms of an underlying technology, and this fact
makes difficult the integration at the modelling level.</p>
      <p>
        The main contribution of this work is to present a MDA [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] based solution to
integrate third-party data and functionality in a technology independent way. To
achieve this goal we introduce a new model (the Services Model) to the set of
conceptual models that are commonly used by Web Engineering Methods. The aim of
this new model is to characterize in the most general way the external functionality
that is going to be integrated in the Web Application. The work also describes how to
integrate this new model with the rest of models specified during the development
process.
      </p>
      <p>The rest of the paper is structured as follows. Section 2 presents the Services
Model. In section 3 we introduce the mechanisms used to integrate the Services Model
previously introduced with the existing Web Engineering models. Section 4 illustrates
through the use of an example how to achieve data and functional integration with
third-party systems. Finally, Section 5 draws some conclusions and outlines some
further work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The Services Model</title>
      <p>For the design of the Services Model we have followed the MDA principles aimed
to provide portability, interoperability and reusability through architectural separation
of concerns. This practice allows us to define integration independently from
technology. The Services Model is made up of a set of operations with their input and
output parameters. As a result, we have defined the Services Model at two different
levels, at the PIM level and at the PSM level. The Services Model defined at the PIM
level let us to characterize in a general way the functionality imported from
thirdparty systems. However, the Services Model at the PSM level is intended to
characterize the peculiarities of each specific technology. As a final goal what we
want to achieve is the automatic code generation. So, we have to keep specific
information from each technology. For this reason, we have to define as many
Services Model at the PSM level as technologies we want to integrate with our
system. This separation of concerns let us to integrate coherently external functionality
(defined in general terms in the Services Model at the PIM level) with the native
elements from the rest of the PIM models (structural, behavioural and navigational
models). Due to space constraints we provide here just a general idea of the proposal,
avoiding the inclusion of specific details. Fig. 1 shows that the integration with
external functionality is done through the Service Model defined at the PIM level,
instead of dealing directly with the PSM models. Moreover, it shows that we need a
new Service Model for each technology that we want to support integration.</p>
      <p>Structural</p>
      <p>Model
Behavioural</p>
      <p>Model
Navigational</p>
      <p>Model</p>
      <p>PIM Level</p>
      <p>PSM Level
Services
Model</p>
      <p>Services
Model for</p>
      <p>Web Services</p>
      <p>Once we have external functionality defined in our system we have to integrate it
with our native modelling elements. In next section we identify the mechanisms to
achieve integration between models.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Mechanisms for the Integration of the Services Model</title>
      <p>Depending on the use that we want to do of the imported functionality, we distinguish
three different ways to achieve the Services Model integration through:
 the structural model,
 the behavioural model and
 the navigational model.</p>
      <p>The first mechanism is to associate external functionality to our structural model.
This association let us to enrich the definition of a class (defined in our structural
model) adding new attributes or operations not modelled initially in our system. When
we detect that the results provided by some external functionality can complement the
data contained in our structural model we create a new “derived” attribute in the class
to be enriched. With the word “derived” we mean an attribute which value is not kept
in the persistent layer. Moreover, we have to provide the “formula” that feeds this
new attribute. This formula will be based on the definition of the external
functionality. However, we also can find external services which provide extra
functional value to our classes. In these cases, we should wrap the external
functionality into a new operation created in the enriched class.</p>
      <p>The second mechanism to associate external functionality is by means of the
behavioural model. This association is made when we want to include some external
functionality in the definition of a complex operation (an operation defined as a
sequence of steps/sub-operations). We can now compose operations based on internal
as well as external operations.</p>
      <p>Finally, the third mechanism is to associate external functionality directly to the
Navigational Model. This kind of association is made when we want to include new
data or functionality that it is not "directly" related to any of the elements modelled
originally in our system.</p>
      <p>Following this approach now the use of external functionality is almost transparent
for the web designer. Note however, that we have to keep the information that allows
us to know how to invoke imported functionality (via SOAP or REST in the case of
Web Services). At modelling level we do not need to know these details, but when
generating the final code of the Web Application this information will be necessary.</p>
      <p>In next section, by means of a Library Web Application, we illustrate each one of
the integration mechanisms introduced in the previous paragraphs.</p>
    </sec>
    <sec id="sec-4">
      <title>4 A Real Scenario: The Library Web Application</title>
      <p>The Library Web Application provides users with information (title, author,
publication year, etc.) and functionality (to make a booking or ask for a buying)
related mainly to books. To complement the data and functionality modelled and
handled by our library system we are going to integrate functionality published by
external providers such as an e-shop and another on-line library system.</p>
      <p>Based on the initial requirements of the Web Application, we have defined the
class Book with the following attributes: title, publication year, edition, language and
issn. Through the use of external services we could add to this information the price or
the list of e-shops which sell a specific book. In case a book is not available in the
library at this moment, we also could provide the facility to reserve this specific book
in another on-line library system.</p>
      <p>In the following subsections we provide details of the examples that illustrate how
to accomplish this integration.</p>
      <sec id="sec-4-1">
        <title>4.1 Integrating the SM with the Structural Model via Attributes</title>
        <p>We are going to create the "derived" attribute price in the class Book. This attribute
will be fed by the result provided by the imported service itemSearch. We must define
the formula that will provide the value to the price attribute. Sometimes this result
provides more information than we need. To navigate through the returned data
structure we use the dot syntax.</p>
        <p>price = (itemSearch(title)).price
The definition of this new attribute in the class diagram allow us to include it in the
navigational model in an equivalent way as any other attribute of the class.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2 Integrating the SM with the Structural Model via “Simple” Functionality</title>
        <p>To include external functionality to the class Book we are going to create a new
operation. Once the external operation is wrapped we can use it equally as the rest of
internal operations. Note that the interface of the wrapping operation must be coherent
with the wrapped functionality. We are going to include the operation
bookReservation in the class book to wrap the bookReservation operation imported in
the Services Model. Fig. 2 shows graphically this integration.</p>
        <p>book</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3 Integrating the SM into the Behavioral Model via "Complex" Operations</title>
        <p>In the definition of an operation such as searchBook we want to search not only in our
catalog, moreover, we want to search in other external libraries. For this purpose, we
specify the sequence of services to execute when this operation is called. This
specification can be done through an activity diagram as depicted in fig. 3. If the
specified book has not been found in our catalog we complement the search with an
external service provided by another library (the UPV library).</p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4 Integrating the SM with the Navigational Model</title>
        <p>The Navigational model defines the navigational structure of a Web application. This
structure is defined usually by means of a graph based representation technique, where
graph nodes represent web pages and arcs among nodes represent links. Graph nodes
are made up of a set of views over the structural model; these views define the
information that is shown in each web page. However, following the presented
approach, we allow the construction of these views also from third-party systems. For
example, if we want to include in a web page information such as the most purchased
books from Amazon we would include it by adding a view in the node from the
corresponding Amazon service. Fig. 4 shows a web page that illustrates this case.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5 Conclusions and Further Work</title>
      <p>In this work we have presented a high level integration approach for Web
Applications. This integration is achieved through a set of mechanisms that associate
at the PIM level the Services Model with the rest of models.</p>
      <p>As further work we have planned to take these ideas to practice by providing a
prototype. Moreover, once this proposal had been completely defined we want to
study how to achieve data integration through the use of Ontologies and Semantic
Web representations.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. OMG.
          <article-title>Model Driven Architecture. A Technical Perspective</article-title>
          . Object Management Group,
          <year>January 2001</year>
          . OMG document ab/2001-01-01
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>J.</given-names>
            <surname>Fons</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Pelechano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Albert</surname>
          </string-name>
          and
          <string-name>
            <surname>O. Pastor.</surname>
          </string-name>
          “
          <article-title>Development of Web Applications from Web Enhanced Conceptual Schemas”</article-title>
          .
          <source>Proc. Of the International Conference on Conceptual Modelling, 22nd Edition</source>
          , ER'
          <volume>03</volume>
          , pp
          <fpage>232</fpage>
          -
          <lpage>245</lpage>
          . Chicago, EE.UU,
          <fpage>13</fpage>
          -
          <lpage>16</lpage>
          October 2003
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fraternali</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Bongio</surname>
          </string-name>
          , “
          <article-title>Web Modeling Language (WebML): a Modeling Language for Designing Web Sites”</article-title>
          .
          <source>In WWW9</source>
          , Vol.
          <volume>33</volume>
          (
          <issue>1-6</issue>
          ), pp
          <fpage>137</fpage>
          -
          <lpage>157</lpage>
          . Computer Networks,
          <year>2000</year>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Brambilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Comai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fraternali</surname>
          </string-name>
          and
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Manolescu: "Model-driven Development of Web Services and Hypertext Applications"</article-title>
          , SCI2003, Orlando, Florida,
          <year>July 2003</year>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>O. De Troyer</surname>
            and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Leune</surname>
          </string-name>
          . “
          <article-title>WSDM: A user-centered design method for Web sites”</article-title>
          .
          <source>In Proc. of the 7th International World Wide Web Conference</source>
          ,
          <year>1998</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>D.</given-names>
            <surname>Schwabe</surname>
          </string-name>
          and G. Rossi, “
          <article-title>An Object Oriented Approach to Web-Based Application Design”</article-title>
          ,
          <source>Theory and Practice of Object System</source>
          <volume>4</volume>
          (
          <issue>4</issue>
          ),
          <year>1998</year>
          . Wiley and Sons, New York, ISSN 1074-3224)
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>N.</given-names>
            <surname>Koch</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wirsing</surname>
          </string-name>
          . “
          <article-title>Software Engineering for Adaptive Hypermedia Applications”</article-title>
          .
          <source>In: 3rd Workshop on Adaptive Hypertext and Hypermedia</source>
          , 2001
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J.</given-names>
            <surname>Gómez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cachero</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Pastor</surname>
          </string-name>
          . “
          <article-title>Extending a Conceptual Modeling Approach to Web Application Design”</article-title>
          .
          <source>Proc. Conference on Advanced Information Systems Engineering</source>
          , CAiSE'00, Springer- Verlag, LNCS
          <volume>1789</volume>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>93</lpage>
          ,
          <year>2000</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>