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 needed to process some kind of dynamic request would have to be linked with the Web server.

Of course, for the dynamic requests, which are resource hungry, such simple approach would not work - the call to subroutine would block the Web server until return from the subroutine. 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.
  • 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.