Question Details

Browse

Project to replace code-generated web business application

By David Brown - Apr. 03, 2009

Hello, I am basically working a project where the proprietors were taken to the cleaners by a programmer-wannabe. The current web application deployed run-time is running OK but this is all they have without any real redundancy. I have talked them into creating a replicated machine image for both disaster-recovery redundancy and as a sandbox to learn the Business Model and Flow. Assuming I can get a handle on the Business Model I am looking into some of the Java based toolkits and frameworks such as: Struts, Spring/Hibernate, JBoss SEAM, Websphere RAD7 just to name a few. I mention the technologies in the previous sentence as I would like to involve a vendor for purposes of on-site custom training and support after we have chosen a technology. What is missing? And, what are some viable approaches to replacing the current code-generated web based application?


http://www.davidwbrown.name:8080/pebble/2009/04/02/work_journal_st.html


Answers

Add Answer
  1. By Randy Clark on Apr. 04, 2009

    Ok - so you have a running application, but if something goes wrong, there is no 'backup' service that will minimize the impact for the business user? Is that correct?


    Are you looking to re-write the application? It sounds like Java is the direction you are leaning in?


    There are several options, depending on what you are trying to do, and that part is not quite clear from your question. Do provide a bit more detail on what you need to investigate or get done.


    Are you open to looking into other web-based technologies? PHP and LAMP, for example?


    For Java, you might also want to look at Apache/Tomcat so you don't have to pay WebSphere licence fees.


    I find Struts to be unnecessarily complex for MVC-based applications. I've switched over to LAMP, with compute-heavy business processes running in Java containers on separate boxes that scale independently.


    More detail to follow once I get a better sense of what you are trying to do...


    Good luck!


    0 Votes
  2. By David Brown on Apr. 04, 2009

    Hello thanks for the reply. Sorry about the sparse detail. As mentioned the application is Java generated from some source-code generator as can be found here: http://www.codegeneration.net/tiki-index.php?page=Java

    The output is butt ugly as the MS SQL server is not used as a database but as a repository. The app is storing HTML and every little piece of info it needs to generate Web Pages. The DB contains more than 1500 tables!

    Luckily, I found a great MVC. As you say Struts is too complex and IMHO so is Spring et. al. This MVC is great: inductionframework.org. It has class injection where I can just see at my IDE, make a change and refresh my browser to see the reflected change just that quick and easy. The only drawback so far has been the FreeMarker page that does not render correctly in the browser. If anybody has any experience with: inductionframework.org please chime in.

    BTW: the .java code-generated application is already running on Tomcat and I don't want to change the servlet container. I don't want to change the basic notion of a Java Web app as if there are any issues I don't want the management to think I have made too many radical changes. The company management does not have a clue about IT, programming or computing in general so I have to be careful. The only major change I am making is ditching the SQL Server 2005 for MySQL. ;-)) David.


    0 Votes
  3. By Randy Clark on Apr. 06, 2009

    Ok - I guess sticking with Tomcat and consequently Java makes sense. I've worked a fair bit with Tomcat and it is solid!

    No experience with inductionframework.org. I've found straight-up Tomcat webapps with decent object models to work just fine.


    I've used Spring and Hibernate too, and if you need so much sophistication - that's great. I've found simple, clean object models to work fairly well for a majority of the cases.


    My 2 cents would be to slowly phase out the existing functionality, and to build in your business logic via new classes that use the database for what it was intended to be used for, and then slowly phase out the original project. You can begin to use MySQL in parallel too, as you do this effort!


    I'm not sure how much of this is feasible or doable, but given the clusterfark the existing project seems to be, you might want to go slow and steady!


    My fear with code-generation tools and other compile-time generators, etc. is that they often end up being more complex than they need to be. You don't need reflection and 3-degrees of abstraction for simple proejcts, and simple projects and clean code is a lot easier to manage!


    Good luck.


    0 Votes
  4. By Peter Brook on Apr. 07, 2009

    If you want to abstract your database, you might want to consider using something like Hibernate, where your code can still make SQL-like queries, but your db can be switched out. Migrating away from M$SQL might be a bit easier!


    0 Votes
Share your knowledge