1 Reply Latest reply on Feb 14, 2003 8:28 PM by Juha Lindfors

    Design Question

    kumar Newbie

      Hi
      I am developing an application in java and basically in doubt about the design
      I need to choose. My system will be used by 500 - 700 people and literally these people live on the system, which makes me to think more carefully.

      Client UI: Will be a swing based one. Because of the complexity of the client
      UI, html UI is never an option. ( This part I am clear)

      Now the question is what to do on the server side:
      =================================================
      Here are my requirements:
      a) I need it to be be able to support 500-700 users.
      b) Should be able to run on 2 or more machines so that even if one goes down another
      can pick it up. ( clustering ????)
      c) should give a good respnse time

      I know I am not in a unique situation as many of you would have faced this situation, your experience can be very valuable to me.

      OK Here are my thoughts
      =======================
      1. Initially I though I can use EJB. As I thought I can use an application
      server like jboss which gives clustering, load balancing, connection pooling
      etc.
      "but"
      I want to minimize hits to my database. I just want to write one query which
      reads from multiple tables, fill an object with that data and send it to the
      client where it will display the data. Entity bean looks fine for 1 table but
      since my query involves multiple tables and potentially 100 records can come
      out of the query, EJB solution does not appeal me here. I read we can use
      some mapping tools but it looks messy with too many dependencies.

      2. Then I considered RMI service at the backend. Just RMI service taking the
      calls from clients and use general DAO concept ( Make the query, parse the
      resultset and fill the DAO ) and send it back.
      "but"
      can it support 500-700 users, can i run on multiple servers so that if one fails
      others can pick it up.

      3. The last Servlet, write a servlet which receives the client requests and since servlet spaws a thread per client and Resin / Tomcat have cluster, load
      balancing capabilities (? I am assuming) I can write/use generally available
      connection pooling classes and complete the project.
      However note:
      1. since the client is written in java
      2. and this is an intranet application
      how far this is advisible.

      Now I am lost, and could use help of some experienced guys to make my decesion.
      Regards