I'm not sure if I'm posting in the right channel, so apologies if this is the wrong one.
We currently have a quite large application written in C that is a collection of cgi programs that are called through an Apache server via XML. A client makes a requests on our cgi's, the cgi's perform an operation and then return the result to the client (again in XML). The C application is a back-end of a web site and has many uses. We roughly serve about 2,000,000 number of client requests per day, some of the requests are quite resourceful and can take upto 40 seconds to respond to the client. The C application has many external communication channels that it must communicate with over XML and also has MySQL databases for lookup/storage.
The time has come to re-write the application due to pressure from outside sources not happy about the scalability and that it is using cgi's and no database pooling.
The application will be re-written using C++ and I'm looking at what ways it can be done. The objective it to make it more scalable and make a persistent framework where each client request is handled by a threaded server so reducing overhead of running a new process.
So far I have come up with the idea that I can write a threaded server using pthreads that will listen on a port, accept new clients and create a new thread to handle that process. this is obviously a very simple overview of what I want to do but I'd like to know if there is anything else I should like at ?
Our current platform is Redhat Linux, we have 9 application servers, on each server an apache instance runs one any of the cgi's can be called.
Any ideas / suggestions would be very helpful.