• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
  • Piet Souris
  • Frits Walraven
  • Carey Brown

Web App Design

Posts: 8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A web app project has asked for suggestions on their HIGH Level Design of a Wizard-like data collection application. Their goal, is to create an easy to maintain app that is not tied into the legacy application they are feeding. They also see the possibility that the number of forms and the content of those forms could be changing often in the near future, so easy maintenance of the forms and the mapping of the form data to the legacy API data structure are also priorities.
They are going to be developing a webapp using Struts 1.1
They convert their Form Beans to XML and the form entry is 16 forms long. They store the XML in one BIG column in an Oracle table for session persistence.
Each attribute of the Form Bean is converted to XML. The DB varchar XML column will contain 16 Form Nodes with each form containing the form attributes.
Once all of the data is collected and submittal occurs at the end, the entire string is matched to a DTD via XSLT (all of the attribute mapping rules are stored in a property file). The property file uses the "NameOfTheForm_" as a prefix qualifier. The transformed XML is then sent to a legacy system via a Java API. Oracle 9i is being used.
The Team would like to know if anyone has experience with or would be willing to provide some feedback regarding the pros and cons of an application design like this.
I have conducted some research and have come across numerous items to consider, but we could use some feedback from other Java Developers to put these into perspective.
I have summarized some findings / concerns below:
Persisting (temporarily) ALL Form data (in XML) to one DB table column - concerned about the size of the column, speed of parsing. Perhaps consider the Oracle 9i XML DB and XML DataTypes?
Struts Features, Extensions, etc. - that might be worth considering
Struts 1.1 DynaActionForm - possibly use DynaActionForms if forms are fairly simple, forms can be defined via config files
Boost Struts with XSLT and XML (article link)
VelocityStruts - The VelocityStruts sub-project integrates Velocity with the Jakarta Struts Web application framework and enables the use of velocity templates interchangeably with JSP pages for the view layer.
stxx - Struts for transforming XML with XSL (stxx) is an extension of the struts framework to support XML and and XML transforming technologies like XSL without changing the functionality of struts. stxx sits on top of Struts, extending its existing functionality to allow Action classes to return XML that will be transformed by technologies like XSL.
StrutsCX - Struts with XSLT
Cocoon Plug-In for Struts - seems a bit heavy for this app, possible performance concerns
Bean / XML Tools
Apache Betwixt : turning beans into XML
Article - JavaBean-XML mapping component - JOX (JavaWorld)
Article (JDK 1.4) - XMLEncoder / Decoder - Future
Java / XML Binding
Article - Use XML data binding to do your laundry - JaxB and Castor (JavaWorld)
[ November 03, 2003: Message edited by: Jeff Bradford ]
Ranch Hand
Posts: 15304
Mac OS X IntelliJ IDE Chrome
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sounds to me like you need a consultant which would make this post a Job Offer. Unless there are legitimate arguments against this post being a Job Offer, I am going to request it be moved their promptly.
    Bookmark Topic Watch Topic
  • New Topic