![]() |
![]() |
El servidor de Paginas es la parte primordial de cualquier sitio de Internet, ya que es el encargado de generar y enviar la información a los usuarios finales.
En un sentido muy estricto un "Web Server" no es lo mismo que "Application Server", pero ultimamente estos dos términos se prestan a una gran confusión .
Cuando se crearon los primeros Servidores de paginas ("Web Server") como Apache, éste solo era encargado de enviar los datos al usuario final, pero cualquier otra información que requiriera de algún tipo de personalización (Vease: aplicacion de servidor ) era realizada por un interpretador que ejecutaba un "script" (programa), generalmente en Perl .Sin embargo, conforme las demandas de los Servidores de paginas ("Web Server's") incrementaron fue necesario eficientizar este proceso, ya que el llamar un interpretador para que ejecutara otro programa (en el caso Perl) ponia una demanda muy fuerte sobre el "Host" que mantenia el Servidor de Paginas ("Web Server")
Hoy en día, se pudiera decir que TODOS los "Servidores de Paginas" ya son "Servidores de Aplicaciones" ya que se les ha desarrollado alguna funcionalidad especial que les permite realizar, valga la redundancia, aplicaciones de servidor . Y para agregar a la confusión en la Industria hoy día ya abundan los "Java Application Servers" que son otra cosa muy diferente y malamente ya son designados "Application Servers" o "Servidores de Aplicaciones" a solas.
Dependiendo de la funcionalidad se trae consigo complejidad al sistema, ya sea en la forma de requerimientos del sistema (memoria , procesadores), carga administrativa (configuración, tiempo de desarrollo) o alguna otra. Requisición común:
![]() |
En el diagrama anterior se puede observar que un navegador ("Netscape" o "Explorer") solicita información al servidor de paginas, esta solicitud inicial se lleva acabo mediante HTTP , sin embargo, una vez que esta solicitud llega al Servidor ésta puede tomar varias acciones.
En el esquema las lineas punteadas ( -- --
) indican el "Host" (computadora fisica) mientras las lineas solidas son un proceso/programa dentro del mismo "Host", bajo esta hipotesis se describiran los "Servidores de Paginas".
Apache es uno de los Servidores de paginas más utilizados, posiblemente porque ofrece instalaciones sencillas para sitios pequeños y si se requiere es posible expandirlo hasta el nivel de los mejores productos comerciales. Si se utiliza para un sitio pequeño que solo contenga archivos en HTML, esto es, no requiera de aplicaciones de servidor su funcionallidad es excelente, pero que sucede cuando se requiere una aplicación de Servidor ? La aplicación de servidor implica lo siguiente:
![]() |
Cuando el servidor de paginas (Apache) recibe la requisición para "x" pagina éste reconoce cuando debe enviar un documento estatico (HTML) o ejecutar algún tipo de aplicación, en el diagrama se puede observar que la solicitud de "x" pagina invoca (llama) un programa en Perl y este a su vez solicita información a una base de datos, por lo tanto para llevar acabo esta operación debieron iniciarse 2 procesos nuevos, quizas esto no sea de gran importancia para un sitio de 100 visitas diarias, pero que sucederia con uno de 2 visitas por segundo ?
Si no se tienen los suficientes recursos en cuanto a memoria y procesadores se refiere, seguramente caerá el servidor de paginas o bien se queme el "Host" por la demanda excesiva. Apache tiene tanto tiempo de desarrollo que han sido desarrolladas diferentes soluciones para evitar estas ineficiencias,algunas:
Cabe mencionar que muchos sitios de alto tráfico aún permanecen bajo este tipo de Arquitectura, en ocasiones si se tienen los recursos suficientes continua siendo costeable esta metodologia a migrar a otro tipo de desarrollo, sin embargo siempre es conveniente conocer otras alternativas.
AOLServer al igual que Apache es un producto
open-source
pero a diferencia de este último, fue diseñado conociendo varias deficiencias que existian en el modelo inicial utilizado por Apache.
AOLServer desde sus versiones iniciales fue desarrollado con "Threading" en mente, esto es, compartir la memoria del Proceso general en varios sub-procesos o "Threads", esto no solo eficientiza las conexiones al servidor de paginas sino también reduce la carga sobre el mismo.
Además de "Threading" AOLserver integra un Interpretador en su estructura interna evitando generar un proceso nuevo por aplicación de servidor y mantiene grupos de conexiones latentes ("pools") hacia bases de datos también para evitar generar procesos nuevos.
![]() |
Otra ventaja de AOLServer es el ofrecimiento de ADP ("Aol Dynamic Pages") que son muy similares a las ASP's (Active Server Pages) de Microsoft o JSP's (Java Server Pages) de Sun, la diferencia estriba que las ADP's utilizan el lenguaje Tcl y un API especialmente diseñado para accesar los elementos del servidor, pero su funcionamiento es igual al de ADP y JSP: mezclar elementos de HTML con elementos de programación para generar contenido dinámico.
Como último punto es utilizado por una de las empresas con mayor tráfico en Internet America Online , el proveedor de Servicios de Internet (ISP) más grande del mundo. Un poco más en Ventajas y Desventajas comparado con Apache
IIS es el servidor de paginas desarrollado por Microsoft para Windows NT/2000, a diferencia de los dos servidores de paginas mencionados anteriormente, IIS solo puede operar en plataformas Windows. El punto más favorable de este servidor son ASP's que facilitan el desarrollo de aplicaciones y la "sencillez" de instalación, sin embargo, existen alternativas como ADP's de Aolserver y JSP's para Java. Desafortunadamente debido a la presencia de Microsoft en el Mercado seguirá siendo necesario interactuar con este producto a pesar de todas sus desventajas:
Quizas el nombre que más salga a relucir con "Servlet Engines" es Tomcat o Jakarta Apache . Tomcat surgió de Sun Microsystem's cuando desarrollaban un "Servidor de Paginas" que utilizara "Java",y posteriormente cedieron el codigo fuente a la fundación Apache.
A pesar del nombre Apache-Tomcat; Tomcat no requiere de Apache para su funcionamiento (solo requiere de un JDK ("Java Development Kit") y es aqui donde dista un poco de las previas implementaciones:
![]() |
En la figura anterior la linea roja demuestra que el Servlet engine (también llamado "Web Container") es capaz de responder a requisiciones de Internet, en efecto actuando como "Servidor de Paginas", sin embargo, aunque esto sea posible la gran mayoria de las implementaciones de Servlet Engines no funcionan tan eficiente como un "Servidor de Paginas", es por esto (y otras razones que a continuación se mencionan) que se opta por utilizar un "Servidor de Paginas" (Apache,Aol,Netscape..) en conjunción con un "Servlet Engine".
La linea verde demuestra la utilización de un "Servidor de Paginas" con un "Servlet Engine" (Web-Container), esta implementación suele utilizarse cuando se requiere utilizar
encriptación
o se tiene un sitio que contiene documentos puros en
HTML
, las cuales son dos areas que un "Servidor de Paginas" supera en desempeño comparado con un "Servlet Engine". La comunicación entre el "Servidor de Paginas" y el "Servlet Engine" se lleva acabo mediante el protocolo denominado ajp12
y recientemente con su sucesor ajp13
.
El "Servlet Engine" ofrece un "Ambiente" donde habitan los JSP y Servlets, es ahi donde se contemplan una gran cantidad de funcionalidades como: threading, manutención de sesiones, conectividad con el "Servidor de Paginas", es por esto al "Servlet Engine" también se le denomina "Web-Container".
Dos "Servlet Engines" (Web-Containers) que estan en amplio uso y son utilizados con "Servidores de Paginas" son: Tomcat y ServletExec , donde el primero es open-source y el último es un producto cerrado; otro "Servlet Engine" es Resin (Open-Source) el cual permite: utilizar JavaScript como "Scripting Language" dentro de JSP's y acceso a XSL una extensión de XML .
Como se observa en el diagrama también se requiere de un JDK ("Java Development Kit") , el cual llevará acabo la ejecución de los programas ("Servlets" y "JSP's") en Java; como toda otra implementación existen diversas versiones de JDK's, esto se debe a que cada JDK debe ser diseñado alrededor de un Sistema Operativo (para ser más exactos es el JVM "Java Virtual Machine" el que debe ser diseñado alrededor del Sistema Operativo ), algunos JDK's son: J2SE's (Java 2 Standard Edition) de Sun y JDK's de IBM
"Java Application Servers" hoy en dia ya denominados "Application Servers" ofrecen una manera de Integrar y ofrecer las funcionalidades requeridas por la gran mayoria de sistemas empresariales, una de las razones por las cuales el mercado ha sido inundado con estos "Application Servers" es que estan diseñados alrededor de J2EE , que es solo un grupo de especificaciones definidas por Sun.
Estos "Application Servers" comunmente llamados Middleware se encuentran compuestos de la siguinete manera:
![]() |
Como su denominación lo implica ("Middleware") se encuentran en la parte media de una arquitectura de sistema, su flexibilidad reside en la posibilidad de accesar información en sistemas empresariales (EIS) como SAP, JdEdwards, bases de datos o alguna aplicación escrita en COBOL u otro lenguaje.
Dependiendo de la empresa que desarrolle el "Application Server" éste puede contener inclusive hasta un "Servidor de Paginas" o algun otro desarrollo propietario, sin embargo, los dos elementos primordiales (aunque no sean comercializados como tal) son el "Servlet Engine" (Web-Container) y "Enterprise Bean Engine" (Bean-Container).
La mayor ventaja de este tipo de arquitectura se debe a la separación de funcionalidades y uso de protocolos de red como RMI/CORBA , esto facilita que puedan existir 4 o 5 "Hosts" en diferentes regiones geograficas, cada uno empleando cualquiera de los componentes antes mencionados. Por último, existen diversos "Application Servers" que son denominados "Fully J2EE Compliant" esto indica que cumplen con todas las especificaciones J2EE indicadas por Sun. (Vea J2EE )
Algunos "Application Servers" "Fully J2EE Compliant" son:
Esta respuesta generalmente depende del tipo de desarrollo y tiempo de ejecución disponible , contemple lo siguiente para un "Java Application Server (J2EE)":
Ahora bien, para un "Servlet Engine (Tomcat) con Servidor de Paginas " contemple lo siguiente:
Links:
|
Le intereso el contenido ? | Quizas requiera un servicio de Tecnologia ? | Le gustaria que le avisaramos de nuestras actualizaciones ? |
Recomiende esta pagina a un amigo | Servicios OsmosisLatina | Agregese a la lista de correo de OsmosisLatina |
webmaster@osmosislatina.com | ©2000-2001 OsmosisLatina |