I have this idea how the performance requirements of the travel agent client could be realized (besides just implementing the travel agent client as a stand-alone application client):
There could be a request management mechanism put in place that sorts incoming requests to the application server into different priority queues, and serves the requests according to the priorities assigned to each queue. The requests coming from the travel agents application clients (could be identified by IP address) would be given priority over those from the web customers website.
Don't make it more complicated that it should be, because 1. The overhead of using JMS/queues is not zero. 2. The number of agents is not THAT high. For thousands of agents you probably could think of something like distributed JMS and a cluster of processing nodes. 3. Hey, it's SCEA toy architecture, no one expects mature HA/LB solutions from you
I will also just try to keep it simple. Considering the AppServer runs on a Sun E10000 it shouldn't really matter if there are 40 or 80 agents simultanteously accessing the system. You can always assume that there are 4 CPUs in the E10k :-) No, seriously, keep it simple and don't complicate yourself. Maybe you can assume that all the static content for the web client (e.g. large images etc.) are kept on the webservers to take some load off the appserver.
By the way, how do you utilize the two webservers?
Joined: Aug 04, 2003
Hi Folks, thanks for your comments. Here's what I had in mind about running the system with 2 web servers:
Load Balancing between the web Servers The Application will run on two web servers. There will be a traffic management mechanism put in place to balance requests made to the servers. All traffic is routed to a load balancer, then requests are fanned out to the servers based on a balancing algorithm. Popular load-balancing algorithms include: server availability (find a server with available processing capability); IP address management (route to the nearest server by IP address); port number (locate different types of servers on different machines, and route by port number); HTTP header checking (route by URI or cookie, etc).
Joined: Oct 16, 2001
from my understanding there are two webservers and only one application server. So there is only one appserver (node) that can handle dynamic (J2EE) stuff. The webservers are like Apache and can either forward to the one appserver and handle static content (html, images, ...).