Experts' opinions
Table of Contents

It is easy to say that we want a web interface for demexp, but much more difficult to chose the right architecture as they are so many technologies to chose from. This page tries to list some of the possibilities.

Possible choices

Client side

  • pure (X)HTML
    • +: compatible with old browsers
    • -: all the job is done by the server
    • -: poor user experience (limited widgets of HTML, server round-trip for each action)
  • (X)HTML augmented with some JavaScript to enhance user experience
    • +: compatible with old browsers
    • +: improved user experience (visual feedback in case of error for example)
    • -: nearly all the job is done by the server
    • -: as compatibility with old browsers is maintained, the available capabilities is as limited as with the pure (X)HTML solution
  • AJAX client – i.e. XTHML + mandatory JavaScript
    • -: incompatible with old browsers and browsers without JavaScript
    • +: much richer user experience (possibility to use fairly elaborated widgets, like tree viewers)
    • +: lighter and optimized client/server communication (transfer only data, group several commands at once)

Server side

  • A web interface with current demexp server (through ONC RPC)
    • +: reuse existing code
    • -: no scalable in the long term (XML saving of files)
    • -: need to enhance current demexp server with new functionnalities (recording of voted and seen questions)
    • -: a demexp server should be started for each demexp base if we want to have multi-demexp base support
  • Integrate demexp server into the web server
    • -: need to recode everything from scratch (well, some copy/paste can be made :-) )
    • +: built native multi-demexp base support from scratch
    • +: use database capabilities (atomic update and transactional support)
    • :?: : with which architecture? Use database backend?
  • Implement the complete demexp server as a set of web “services” (not necessarily SOAP/XML-RPC) that call themselves (vote module, classification module, etc.). Idea of Serge, see this thread on demexp-fr
    • +: clean interface between indepent modules
    • +: allow partial reuse by others (e.g. vote module)
    • -: architecture is no more obvious than with other designs
en/web_interface_architectural_choices.txt · Last modified: 2006/07/12 11:30 by
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki