Fabio Arciniegas A. Rubby Casallas G. - PowerPoint PPT Presentation

About This Presentation
Title:

Fabio Arciniegas A. Rubby Casallas G.

Description:

XML4C2 Dom implementation is used for Object to XML document persistance ... It uses XML::DOM for the actual translation of. the posted data to XML. ... – PowerPoint PPT presentation

Number of Views:98
Avg rating:3.0/5.0
Slides: 31
Provided by: fabioaliar
Learn more at: http://www.ibiblio.org
Category:

less

Transcript and Presenter's Notes

Title: Fabio Arciniegas A. Rubby Casallas G.


1
Fabio Arciniegas A.Rubby Casallas G.
Samxa
  • An XML Based Academic
  • Test Manager

2
Agenda
  • The Problem
  • The Solution
  • Evolution of Samxa
  • Contributions
  • Future Works

3
The Problem
  • Maximize the portability of questions and tests

4
Agenda
  • The Problem
  • The Solution
  • Typical user steps
  • Basic Architecture
  • Kernel
  • CGIHelper

5
The Solution Typical Steps user
6
The Solution Typical Steps user (2)
7
The Solution BasicArchitecture
SamxaServer
SamxaCGIHelper
  • Produces and storages
  • questions and tests.
  • This is the component
  • capable of reading /
  • writing objects to XML
  • This component takes
  • the responsibility of
  • converting CGI answers
  • to XML

8
The Solution Server Architecture
GUI
  • SamXa Server follows a layered architecture.
  • The XMLPersisters, the components capable of
    reading/writing objects from/to XML files are
    embbeded, in the Kernel.

Kernel
XMLPersisters
Database
XML
9
The Solution Kernel
  • Two reasons inspire this organization
  • Abundant, objects should not bear the
    responsiblity of saving themselves as XML.
    Consequences
  • Flyweight pattern GoF95 can be applied leading
    to a much smaller memory consumption.
  • Coupling between the rest of the solution and the
    XML processor is greatly diminished
  • The need of a domain specific object hierarchy
    imposes the need of an object model
    representation of the XML other than DOM.
  • The kernel is composed of several units that
    replicate an Object-Object Server-Object
    Persister architecture.
  • The generalization of this structure is what we
    call the XMLable design pattern.

10
The Solution Kernel (2)
  • Samxas XML to DBMS is based on an intermediate
    object representation for both.
  • This is similar to the XML to DBMS proposal for
    java by David Megginson
  • Samxas XMLPersisters (in classes
    XMLQuestionPersister, XMLTestPersister)
  • Follow the Builder Pattern GoF95.
  • Currently XMLPersisters use a modified version of
    Andy Dents C Expat wrapper.
  • XML4C2 Dom implementation is used for Object to
    XML document persistance

11
The Solution Kernel (3)
  • Transformations in Samxa are performed using
    external tools.
  • A Transformation Manager class takes care of the
    calls to these tools.

When a stylesheet is registered it can specify
its type (DSSSL or XSL) and a recomnended
external tool to use.
  • Currently, Samxa users have a set of 10
    stylesheets.
  • 7 of them are written in DSSSL (use James Clarks
    Jade)
  • 2 more of them use XSLT
  • 1 is a special template that inserts the XML in a
    page that uses the XML/XSL capabilities of IE5.0

12
The Solution CGIHelper
This helper follows a pipe-filter architecture in
order to convert CGI-POST based information
(the answers) into XML answer documents which
conform to an Answers DTD.
The CGI Helper is written in Perl. It uses
XMLDOM for the actual translation of the posted
data to XML. It also uses XMLXSLT in order to
produce the HTML statistic pages that students
look at.
13
Agenda
  • The Problem
  • The Solution
  • Evolution of Samxa
  • XML Relevant changes over Time
  • Comparisions

14
Evolution XML Relevant changes
  • Samxa, now in its version 2.0, has undergone
  • several changes that compomise its relation with
  • The XML libraries/tools that it uses.
  • These changes took place mainly in two
    components
  • XMLPersister classes in the kernel and
  • the CGIHelper.
  • We believe this experimentation... Better yet,
  • wandering through parsers and tools is
    representative
  • of what many developers are going thru.

15
Evolution XMLPersister changes
Ad Hoc Home made perl script
Expat. Using intermediate structures in userData
XML4C2 SAXParser
XML4C2 DomParser
Enhanced Expatpp using Run-time linking of
xmlparse.dll
16
Evolution XMLPersister changes
Pros
Ad Hoc Home made perl script
  • Solution can be highly optimized for the problem
  • at hand

Expat. Using intermediate structures in userData
XML4C2 SAXParser
Cons
XML4C2 DomParser
Enhanced Expatpp using Run-time linking of
xmlparse.dll
17
Evolution XMLPersister changes
Pros
Ad Hoc Home made perl script
  • Really Fast
  • Easy to learn
  • Clear, concise code
  • Totally portable

Expat. Using intermediate structures in userData
XML4C2 SAXParser
Cons
XML4C2 DomParser
Enhanced Expatpp using Run-time linking of
xmlparse.dll
18
Evolution XMLPersister changes
Pros
Ad Hoc Home made perl script
  • Highly readable code
  • Fast development
  • Originally developed for C

Expat. Using intermediate structures in userData
XML4C2 SAXParser
Cons
XML4C2 DomParser
Enhanced Expatpp using Run-time linking of
xmlparse.dll
19
Evolution XMLPersister changes
Pros
Ad Hoc Home made perl script
  • Highly readable code
  • Fast development
  • Originally developed for C

Expat. Using intermediate structures in userData
XML4C2 SAXParser
Cons
XML4C2 DomParser
Enhanced Expatpp using Run-time linking of
xmlparse.dll
20
Evolution XMLPersister changes
Pros (The best of both worlds)
Ad Hoc Home made perl script
  • Highly readable code
  • Fast development
  • Presents only a C façade

Expat. Using intermediate structures in userData
XML4C2 SAXParser

XML4C2 DomParser
Enhanced Expatpp using Run-time linking of
xmlparse.dll
21
Agenda
  • The Problem
  • The Solution
  • Evolution of Samxa
  • Contributions
  • The Software development process and XML related
    contributions

22
Contributions
During the development of SamXa several other
tools were developed. XML Tools for various
stages of the development process are now
an integral part of our work.
23
Contributions
The tools developed have been useful on
several stages of the development process.
24
Contributions Samples
ltREQUIREMENT ID1.1 CRITICFALSEgt ltNAMEgtText
context Creationlt/NAMEgt... lt/REQUIREMENTgt
25
Contributions Samples
  • Multiple objects whose data is to be gathered
    from XML documents need to be manipulated.
  • Design and program quality imposes the need to
    represent the data as something more meaningful
    in your domain than the DOM tree.

26
Contributions Samples
... ltTEST IDt29gt ltPROGRAM NAME/usr/local/bin
/h.plgt ltINPUT VIAstdingtHellolt/INPUTgt ltEXPE
CTEDgtHi there!lt/EXPECTEDgt lt/PROGRAMgt ltVALUEgt5lt/V
ALUEgt lt/TESTgt ...
Munin
HTML with the results
27
Future Works
Create tools for the automatic generation of
classes that follow the Samxa approach for the
event oriented construction of domain specific
objects
Create simple to use components in order to
popularize parsers among developers
Complete a full set of XML based tools
that support the whole development cycle e.g dtds
visual tools for the definition of
architectures.
28
Conclusions
Samxa history shows a common struggle
between tools. We hope that others can make use
of our experience when facing similar problems
Samxa shows useful, reusable techniques for
the creation of domain specific objects from XML
Samxa is an example of how an XML based
solution, using XML based assistant tools can be
applied to real life problems.
29
Questions
30
Fabio Arciniegas A.Rubby Casallas G.
Samxa
  • An XML Based Academic
  • Test Manager

www.uniandes.edu.co/l-arcini/TheFAActoryl-arcini
_at_uniandes.edu.co
Write a Comment
User Comments (0)
About PowerShow.com