Online Web Service - How responsive it has to be?

While I was working on a new online web service for my company, the initial idea is to process the request that came in immediately, and have the response to be posted back immediately as well. It does not seems wrong, but in reality this is not a practical way to do.

Indeed that nowadays the Internet has given us a lot of freedom in accessing a lot of information almost instantly. Thus, it would be normal to judge in such a way that if I could get my response back within a few seconds, then why i.e. your service can't do it?

There are a lot of factors that we need to deal with. In my case, I need to deal with 2 major issues - the time taken to process the request, and the time taken to send out the response. Both are affected by external factor, i.e. mail server, how fast it could send out the email. I used to think that there would be mail server software out there some where that could do something like allowing third party software to do extensive processing, of which case it doesn't. The time taken for the mail server to wait for a third party software to finish its execution cycle cannot be compromised for the protocol sake. If it does, then the mail server would be slow down, and it would become inefficient.

Then, if the third party software has to contact another software, then it will slow down the whole cycle. I.e. if to process 1 simple (not complex, of course) request would take about 50 seconds, imagine that if in the mail server, there are about 100 requests waiting to be processed, it would take about 50 * 100 seconds for the last request in that queue to be processed.

Is there anyway out of this? There are several ways I believed, and the one that I'd like is to have the request to be extracted out to another location, to have another software component to deal with the processing. This way the mail server is freed from being burden to do the processing work, and could allow more request to be served. It is a more scalable method, since the software component to deal with the processing can be increase. Then, once the processing software has done its job, it will put the request into another software component that deals with sending it back to the user.

It's like in a factory work line, where a raw material is transferred from one department to another department to be refined until it is ready to be sent to the customer. It is the same concept, which is interestingly does apply to software & other IT related services as well.

Comments

Popular posts from this blog

Yahoo! Messenger voice call & video call disabled, why?

Sport's Injuries - Treatment for bruises

Web Development: Disable, Validate, & Enable Buttons