Pregunta

Tuve la suerte de no hacer ningún desarrollo web basado en cgi-bin .cgi. Pero, en general, los que no parecen "extrañar" esos días.

Un proyecto al que me uní recientemente tiene un problema de rendimiento al tratar con las páginas que necesitan comunicarse con un sistema heredado que tiene una API basada en CGI-BIN. Ese sistema es COGNOS 7.

La respuesta que recibí hasta la fecha es que 'COGNOS es lento', pero otros han reportado un gran éxito con COGNOS. Creo que tiene más que ver con el acceso a través de CGI-BIN y no con el rendimiento de COGNOS en sí mismo. .

Todo lo que dijo cuáles son los principales problemas que dificultaron el desarrollo web basado en CGI-BIN, etc. ...

¿Fue útil?

Solución

El problema fundamental de la arquitectura con los sistemas basados ??en CGI-BIN es que cada solicitud HTTP requiere que el servidor inicie un nuevo proceso. Esto afecta el rendimiento de varias maneras:

  • Es costoso iniciar el proceso, ya que las páginas del sistema operativo en el programa, configuran el proceso, etc.
  • Los recursos no se pueden compartir entre solicitudes, por lo que cualquier conexión de base de datos, etc., debe configurarse con cada solicitud
  • El estado de la sesión del usuario no se puede conservar en la memoria, por lo que debe persistir con cada solicitud

Otros consejos

Para mí, el mayor problema con CGI es que mis programas CGI tienen que " aprender " Todo cada vez que se ponen en marcha. Si se estuvieran ejecutando constantemente, ese no sería el caso, por supuesto ...

La principal desventaja, en mi humilde opinión, era la misma desventaja que tiene toda la codificación de nivel inferior: en lugar de programar en el dominio del problema, tenía que programar en el dominio de implementación. El resultado final fue, en su esencia, idéntico: se envió una respuesta HTTP a un cliente en función de una solicitud HTTP. Sin embargo, obtener to ese punto fue mucho más complicado desde la perspectiva de la programación.

Apache tiene varias soluciones para esto en varios idiomas (por ejemplo, mod_perl ), por lo que solo se invoca un script una vez, luego retenido en la memoria para una rápida recuperación. Todavía hay muchos sitios controlados por protocolo GCI, muchos de los cuales se ejecutan con una latencia razonablemente baja, si están bien codificados y configurados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top