<!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>RIA: more than a Nice Face</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Roberto Rodríguez-Echeverría</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Quercus Software Engineering Group, University of Extremadura Avda. de la Universidad s/n</institution>
          ,
          <addr-line>10071, Cáceres</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Nowadays, a new generation of Web applications built over Rich Internet Applications (RIAs) technologies is quickly attracting users eager for experiencing the richness of desktop applications together the incredible profits of networked available resources and services. RIA technologies can provide a complete rich user experience: richer and more interactive user interfaces supported by data and business logic at the client side and efficient bandwidth usage. Indeed, new and complex usage scenarios of those applications are devised, such as disconnected operation modes or multidevice (ubiquitous) access. Last RIA technologies bring new design concerns and issues increasing strongly the complexity of the development and evolution of that new breed of Web applications. However, only fledgling software engineering approaches have been proposed for RIA development, far from a complete and systematic methodology. Not only user interface concerns must be tackled, but adequate specification of data and business logic distribution and its consequences should be carefully considered. The main objective of this work consists on clearly identify and provide an unequivocal specification of the main issues and design concepts involved in the development of RIAs within data and business logic distribution concerns, eventually defining a complete and systematic methodology for model-driven RIA development.</p>
      </abstract>
      <kwd-group>
        <kwd>RIA</kwd>
        <kwd>MDA</kwd>
        <kwd>Disconnected Applications</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Problem Definition</title>
      <p>Current Rich Internet Applications are highly complex systems characterized by the
provision of a rich user interface as much as the distribution of data and business logic
at the client side. Those core features provide a comprehensive rich user experience:
rich user interaction, short respond time, efficient use of bandwidth and new
capabilities as multimedia manipulation or disconnected operation modes.</p>
      <p>As stated in [7], content and business logic distribution between server and client
together a richer communication are main design concepts in the conceptual
specification of RIAs. The authors of that work have specified them in general terms.
However, due to their fundamental role in the development of Rich Internet
Applications, a deeper and detailed analyze should be performed.</p>
      <sec id="sec-1-1">
        <title>1.1 Data Distribution</title>
        <p>In a RIA, as mentioned in [7], data can be classified based on its location and its
duration in four types: volatile at the client side, persistent at the client side, volatile at
the server side and persistent at the server side. To deal with such distribution, the
communication between clients and server must be enriched. It is mandatory to keep
data consistency, specifying adequate synchronization processes. According to the
origin of that communication, basically, we can distinguish two types of
synchronization processes: (1) server to client synchronization and (2) client to server
synchronization.</p>
        <p>On server to client synchronization, it should be specified which data must be
replicated at the client side and when such replication must occur. Taking into
account the client-server architecture of RIAs, normally, during the application
loading a first set of data is replicated at the client side and, later on, new data is
replicated at the client as a result of client or server requests. So, some approaches [8]
propose solutions based on cache systems and asynchronous communication
mechanisms (server push).</p>
        <p>On client to server synchronization, the process increases in complexity strongly,
especially when disconnected operation modes are allowed at the client side. In that
scenario, a client can operate locally with its data delaying the synchronization
process till the reconnection moment. Obviously, data conflicts may appear during
those synchronization processes and they should be resolved before normal execution
of the application can be resumed. On that kind of synchronizations, considering
CRUD operations, data involved in creation, update or remove operations performed
at the client side may be a source of data conflicts. On creation operations, as
presented by [3], data conflicts may appear when it is required to keep a unique
identifier of a piece of data on the whole system, e.g. in a distributed billing system in
which disconnected clients are allowed to create their own bills. On update
operations, data conflicts may appear frequently on scenarios of several clients trying
to update the same piece of data.</p>
        <p>In disconnected (offline) applications field [2][4], a wide range of solutions have
been proposed to solve the aforementioned synchronization problems. Some of them
present very restrictive scenarios defining data partitions and/or locks: in a given time
only one client operates on a specific piece of data. While other ones present more
flexible solutions based on the definition of complex politics to automatically
reconcile data conflicts. Usage scenarios for all those approaches may appear in the
development of RIAs, so they must be properly specified and modularized.</p>
        <p>Another relevant factor on data synchronization is the data granularity to be used in
transmission. That granularity has a clear impact in the efficiency of bandwidth usage,
so the optimal data granularity must be selected in every transmission. In a RIA
development method, there must be defined the mechanisms to specify the desired
granularity of every concrete data transmission. As mentioned in [3], from an object
oriented perspective, it should be possible to transmit an attribute of a data object, a
complete data object or a collection of data objects. Besides, data granularity depends
on the type of operation performed on the data. On data deletion at the client side only
the identifier field has to be transmitted. While, on update operations it will be
necessary to send the identifier and all the name/value pairs of the modified attributes.</p>
      </sec>
      <sec id="sec-1-2">
        <title>1.2 Business Logic Distribution</title>
        <p>Regarding business logic localization, as stated in [7], we can basically consider three
different cases: (1) business logic performed at the client side, (2) business logic
performed at the server side, and (3) mixed (operation chains mixing operations at
both sides). Another factor to take into account on the specification of business logic
distribution is the multidevice perspective of RIAs. The devices and contexts at the
client side may be really heterogeneous: from a PC in a wide bandwidth network to a
mobile with an intermittent connection in a restricted bandwidth network. The
specific characteristics of the client context (device, technology and network) should
be carefully considered during the specification of the business logic subsets to be
distributed in a concrete client.</p>
        <p>Again, granularity appears as a main factor to be carefully considered. The granularity
of business logic distribution has a clear impact on the adaptation flexibility. In that
sense, it should be possible to distribute coarse-grained tasks or fine-grained
operations and actions composing a larger task.</p>
        <p>Additionally, the application may allow the client to switch to an offline operation
mode. In such a case, the business logic distribution at the client side may be affected
by this operation mode switching. Usually, a larger task subset will be specified to be
distributed at the client side as a response to an event of switching to an offline
operation mode from that client. And that situation may be wanted to be reverted back
in the client reconnection.</p>
        <p>In conclusion, the specification of business logic distribution in a RIA must permit to
define different task subsets to be replicated at the client side, according the target
device features, the connection network characteristics, the RIA technologies used
and the operation modes considered (online and/or offline).
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Motivation</title>
      <p>The motivation for developing this research is three-folded: (1) RIA development is a
hot topic in professional and academic worlds, (2) there is a lack of a complete and
systematic methodology for RIA development, and (3) it is aligned with the main
interests of the software engineering researching group I am member of.
Nowadays, everyday our lives depend a little bit more on that kind of applications and
technologies based on the "network-as-a-platform" vision. Every now and then new
RIAs appear featuring richer ways of interaction among its users and the use of richer
information sources (mash-ups). Those applications are changing our ways of
working (Google docs, RTM), our means of learning and our communication
channels (YouTube).</p>
      <p>While RIA technologies are gaining maturity enough and there are a wide and
increasing number of Web applications based on them, complete models and
methodologies for the systematic development of RIAs are required. Currently, most
of the aforementioned issues are treated and solved ad-hoc by developers, adding
extra complexity to the development and management of RIAs. Moreover, reusing
those solutions on the development of other RIAs is practically discarded due to its
unsystematic nature. In the last years, interesting approaches had been proposed
mainly focused on the specification of RIA presentation concerns [9][5][6][7].
However, none of them allow expressing data communication granularity, conflict
reconciliation policy, multidevice business logic distribution, among other RIA
development related issues.</p>
      <p>And, finally, this work is defined as an extension of the work performed inside the
RUX Method Project. This extension is conceived as a transmission of the RUX
Method principles to the Data and Business Layer specification within a complete,
systematic and model-driven methodology for the development of Rich Internet
Applications.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Objectives</title>
      <p>The main objective of this work can be summarized as defining the modeling
concepts, methods and tools to capture the specific features of the development of
RIAs, focusing on the specification of the data and business logic distribution and
communication concerns. This work should be seen as a single piece inside a major
goal as it is the definition of a complete, systematic and model-driven methodology
for the development of Rich Internet Applications.</p>
      <p>The model-driven essence of the approach to be performed can be seen as a
subsidiary goal. Indeed it is intended this approach should be localized inside the
OMG MDA framework [1], providing models, methods and tools based on the
MDArelated technologies1.</p>
    </sec>
    <sec id="sec-4">
      <title>4 Research Methodology and Roadmap</title>
      <p>Regarding the research methodology, we think it should be adequate to use an
iterative and incremental researching process conformed by four fundamental phases:
(1) knowledge acquisition, (2) conceptual approach proposition, (3) conceptual
approach application and (4) development of actual systematic methods and tools.
1 http://www.omg.org/mda
During the first phase, two fundamental missions should be accomplished: (1)
identify specific issues regarding data and business logic distribution in RIA
development and (2) evaluate how accurately current RIA approaches cover them.
For the first one, a thoroughly study of RIA technologies and its design patterns must
be performed. In the meantime, the most active RIA development approaches from
Model-Driven Web Engineering field must be constantly reviewed and analyzed.
Based on the knowledge acquired in the first phase, a conceptual approach should be
propose or refined in the second phase. Using the technologies of the OMG MDA
framework, that approach must define the elements and methods to permit the correct
specification of the concerns elicited in the first phase.</p>
      <p>Once completely defined a tentative conceptual approach, a comprehensive study case
(the application example) should be manually developed driven for our conceptual
approach in order to validate its correctness and to measure its accuracy on the
specification of the concerns elicited in the first phase.</p>
      <p>The main goal of the last phase consist on applying all the knowledge and experience
acquired along the previous phases in the development of systematic methods and
tools to ease the utilization of the conceptual approach in the development of full
fledged RIAs.</p>
      <p>Regarding how iteration happens, when a problem or a missing is detected during the
evaluation of the conceptual approach carried out during phase 3, the process can
switch to phases 1 or 2 depending on the nature of the problem detected.
Currently, we are deeply involved on the identification of the issues related to RIA
development, focusing on the data and business logic distribution concerns, while
constantly reviewing other RIA development approaches.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Main Contribution</title>
      <p>The main contribution of this work to Web Engineering can be summarized as clearly
identifying and providing an unequivocal specification of the main issues and design
concepts involved in the development of RIAs within data and business logic
distribution concerns. As mentioned before, this work is just a stepping stone on the
more ambitious goal of providing a complete and systematic methodology for
modeldriven development of full fledged Rich Internet Applications.</p>
      <p>Acknowledgment. This work is partially supported by MICINN under contract
TIN2008-02985 and by Junta de Extremadura under contract GRU09137.
1.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <source>In ASE '01: Proceedings of the 16th IEEE international conference on Automated software engineering, page 273</source>
          , Washington, DC, USA,
          <year>2001</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>In</surname>
            <given-names>COOTS</given-names>
          </string-name>
          , pages
          <fpage>91</fpage>
          -
          <lpage>102</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Pawel</given-names>
            <surname>Gruszczynski</surname>
          </string-name>
          , Stanislaw Osinski, and
          <string-name>
            <given-names>Andrzej</given-names>
            <surname>Swedrzynski</surname>
          </string-name>
          .
          <article-title>Offline business objects: Enabling data persistence for distributed desktop applications</article-title>
          .
          <source>In OTM Conferences (2)</source>
          , pages
          <fpage>960</fpage>
          -
          <lpage>977</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>Avraham</given-names>
            <surname>Leff</surname>
          </string-name>
          and
          <string-name>
            <given-names>James</given-names>
            <surname>Rayfield</surname>
          </string-name>
          .
          <article-title>Programming model alternatives for disconnected business applications</article-title>
          .
          <source>IEEE Internet Computing</source>
          ,
          <volume>10</volume>
          (
          <issue>3</issue>
          ):
          <fpage>50</fpage>
          -
          <lpage>57</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Sandy</given-names>
            <surname>Pérez</surname>
          </string-name>
          , Oscar Díaz, Santiago Meliá, and
          <string-name>
            <given-names>Jaime</given-names>
            <surname>Gómez</surname>
          </string-name>
          .
          <article-title>Facing interaction-rich rias: The orchestration model</article-title>
          .
          <source>In ICWE</source>
          , pages
          <fpage>24</fpage>
          -
          <lpage>37</lpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Juan</given-names>
            <surname>Carlos</surname>
          </string-name>
          <string-name>
            <surname>Preciado</surname>
          </string-name>
          , Marino Linaje Trigueros, Rober Morales-Chaparro, Fernando Sánchez-Figueroa, Gefei Zhang, Christian Kroiss, and
          <string-name>
            <given-names>Nora</given-names>
            <surname>Koch</surname>
          </string-name>
          .
          <article-title>Designing rich internet applications combining uwe and rux-method</article-title>
          .
          <source>In ICWE</source>
          , pages
          <fpage>148</fpage>
          -
          <lpage>154</lpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>Juan</given-names>
            <surname>Carlos</surname>
          </string-name>
          <string-name>
            <given-names>Preciado</given-names>
            , Marino Linaje Trigueros, and
            <surname>Fernando</surname>
          </string-name>
          Sánchez-Figueroa.
          <article-title>An approach to support the web user interfaces evolution</article-title>
          .
          <source>In AEWSE</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <given-names>Jie</given-names>
            <surname>Song</surname>
          </string-name>
          , Ge Yu,
          <string-name>
            <given-names>Daling</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Tiezheng</given-names>
            <surname>Nie</surname>
          </string-name>
          .
          <article-title>Offline web client: Approach, design and implementation based on web system</article-title>
          .
          <source>In WISE</source>
          , pages
          <fpage>308</fpage>
          -
          <lpage>314</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>Matias</given-names>
            <surname>Urbieta</surname>
          </string-name>
          , Gustavo Rossi, Jeronimo Ginzburg, and Daniel Schwabe.
          <article-title>Designing the interface of rich internet applications</article-title>
          .
          <source>In 2007 Latin American Web Conference (LA-WEB 2007)</source>
          , pages
          <fpage>144</fpage>
          -
          <lpage>153</lpage>
          , Washington, DC, USA,
          <year>2007</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>