Announcement Announcement Module
No announcement yet.
Web Application Architecture Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Web Application Architecture

    Hi ,

    I want to built a heavy transaction oriented application.
    i will be using the JSF + Spring + Hibernate + Oracle.

    I want to know what architecture and what all design patterns can i use to make my application robust and with high performance. The aplication will be built on the Jboss clustered environment.


  • #2
    If you are building a new application using JSF & Hibernate on JBoss then you definitely want to use Seam.

    Seam enhances JSF in a handful of ways:

    - Reduces Boilerplate code
    - Dependency bijection (in-out from the context, not just in)
    - No XML hell, annotation heavy
    - Integrated ORM support (a.k.a, use Hibernate as its creators intended)
    - RESTful URLs and page actions (for GET requests)
    - Extensive and expanded use of JSF Expression Language (EL)
    - Fine-grained stateful conversations (web transaction, multi-tab support etc.)
    - Direct JavaScript integration for Ajax
    - Elegant input validation
    - Graceful exception handling
    - Easy-to-use and rule-based security
    - Business process and rules integration (you might not need this)
    - Very easy to test (both unit test and integration test)
    - Tools support (Seam Gen for RoR-like experience)
    - Interceptor support

    It doesn't make sense to use JSF without Seam
    Last edited by Manuel Palacio; Jun 19th, 2007, 08:19 AM.


    • #3

      Me too interested. Any articles describing best practices?



      • #4
        Any articles describing best practices?
        Seam is quite new so there's not much information regarding best practices. But you can always ask Gavin directly in the forum if you have a particular design question that has not already been answered.
        Last edited by Manuel Palacio; Jun 28th, 2007, 04:06 AM.


        • #5
          Seam is indeed very new, so that's not what I would recommand for someone who wants a "robust & high performance" application.
          I still haven't seen anyone using it in production...
          You should have a look at Spring MVC instead (which does work well with JSF), which is quite a proven solution (have a look at the French tax office system...).

          Anyway, in my experience you mostly have problems with the backend systems : unless you do something really silly in the web layer, that's not where you're going to run into problems.

          Work instead on :
          - Caching : by the way, as you seem to use JBoss' clustering capabilities, those are far from perfect (in terms of quality and network efficiency), have a look at Tangosol or Terracotta. I you want a simple solution just use ehcache.
          - Databases : Oracle can be tuned up in a huge number of ways, and can be clustered
          - Transaction managers. Once again, the one that comes with JBoss isn't nearly as good as what BEA, Oracle or IBM provide, so be careful. Don't use XA transactions with it for example.
          - ORM : Hibernate can be tuned up in a huge number of ways. BTW, I've a had lots of quality problems with the latest 3.2.x versions, so be careful.
          - Did I mention caching?


          • #6
            You should have a look at Spring MVC instead (which does work well with JSF)
            I think Julien means Spring Web Flow.

            BTW, Hennes & Mauritz are using Seam. I know a couple of startups in Sweden that are using it as well.
            Last edited by Manuel Palacio; Jun 28th, 2007, 10:09 AM.


            • #7
              Yes, I meant Spring Web Flow, thanks Manuel.
              But Spring MVC is still interesting to look at :-)