[perl] CGI vs servlets
Salvador Ortiz Garcia
sog@msg.com.mx
Mon, 13 Mar 2000 16:42:40 -0600 (EST)
On Sat, 11 Mar 2000, Adrian Galindo wrote:
>
> Hola de nuevo.
> En vista de que ya estamos entrados en calor, empiezo a sacar la preguntas
> atoradas durante tanto meses...
Bueno, la lista perl@linux.org.mx ya tiene un rato activa aunque no ha
tenido mucho tráfico, supongo que por falta de difusión.
> Tengo un maestro que dice que los cgi's ya estan descontinuados, que lo
> actual son los servlets... ?esta muy alejado de la realidad o por el
> contrario, casi atinandole?
Está mas bien un poco confundido.
> Desde luego que los CGI's puede ser hechos en cualquier lenguaje, pero
> como que ya es costumbre que se relacione perl con cgi's,
Hablar de CGIs, más que hablar de un lenguaje en particular, es hablar de
un modelo para extender las capacidades de un servidor de WEB.
Un modelo que en aras de su generalidad, nació con severos problemas de
desempeño y escalabilidad.
El que la gran mayoria de los CGI se hagan en perl es por la virtudes del
lenguage, pero eso no elimina las limitaciones del modelo.
> y la verdad es que si me pega el que se mencione algo asi ya que Perl es
> mi consentido.
Vamos por partes, decir que los CGIs están descontinuados, primero es
falso, pues sigue siendo el único mecanismo general existente y segundo,
incluso varias implementaciones de 'servlets' dependen de ese modelo.
Por otra parte, querer extender las criticas al modelo hacia perl por el
simple echo de ser el lenguaje mas comunmente usado para implementarlo es
confundir la gimnasia con la magnesia.
Ahora que, hablar de 'servlets' normalmente significa programar los
generadores de entidades en java y para bien o para mal no hay consenso al
respecto, pues habrá quienes afirmen que si no es en java ya no son
servlets y otros afirmarán que estás en presencia de un 'servlet' si está
hecho en java aunque uses el modelo CGI.
Así que olvidemos el término pues sólo se presta a confusión y analizemos
los tres modelos existentes para la generación dinámica de entidades en
orden de eficiencia creciente:
En el modelo GCI, cuando el servidor HTTP recibe una solitud por una
entidad responsabilidad de un CGI, lanza la ejecución de un proceso
independiente con el que se comunica mediante variables de ambiente y la
interconexión de la entrada y salida estandar, proceso que muere al
terminar de generar la entidad en cuestión.
En el modelo co-servidor residente, al arrancar el servidor HTTP se
arranca simultaneamente otro proceso responsable de la generación de las
entidides dinámicas con el que el servidor HTTP se comunica, normalemente
mediante sockets (UNIX o TCP), cada vez que se requiere. Este otro proceso
se mantiene vivo atendiendo todas las solicitudes que le correspondan.
En el modelo incrustado, el servidor HTTP poseé interconstruidos los
mecanismos de generación de entidades dinámicas y no requiere depender de
otros procesos.
Como verás los tres modelos son independientes del lenguaje utilizado para
la programación y tienen mucho mas que ver con el grado de acoplamiento
entre el servidor y el generador de las entidades dinámicas.
Ahora que, discutir sobre si un determinado lenguaje (java, perl, C, php,
RXML, etc) es mejor que otro para la programación de entidades dinámicas
sería motivo de otro post.
Pero si quieres ver un comparativo de diferentes soluciones que muestra
su desempeño relativo asomate a
http://www.chamas.com/bench/index.html
Saludos
Salvador Ortiz
--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text : unsubscribe perl