Jan K. Labanowski: "Tomcat, servlets, JSPs and other friends"

Integrated Application

Integrated application, in its simplest form, is just a subroutine call in the Web server. In this scenario, the software which processes dynamic requests has to be linked with the Web server and is a part of the Web server.

Of course, for the dynamic requests, which are resource hungry, a simple call to some subroutine may not work - calls are blocking, and the Web server would have to wait until return from the subroutine is executed. The concurrent threads of executions are used, and the code is usually a shared memory object/library module which is loaded at Web server startup. Popular Web Servers use this approach.

Advantages:

  • No overhead of creating new process, since the dynamic request is executed "in-process".
  • Fast.
  • The APIs for popular Web servers exist, and you can incorporate new modules in a standard way.
     

Disadvantages:

  • Runs on the same machine as web server and for intensive processing it will slow down Web server and all other processes running on this machine.
  • If you have many modules, and they are bulky, you risk on using up memory.
  • If you need to access secure resources (e.g., corporate database) on the public Web server, you need to be careful.
  • There is no way to spread the load. Everything runs on the same machine and at some point, where you have too many requests, there will not be any juice left to process them.