Apache+Tomcat

= APACHE TOMCAT =

toc

INTRODUCCIÓN
= = Apache, también conocido como simplemente Tomcat o Jakarta Tomcat, es un servidor web mutliplataforma que funciona como contenedor de servlets y que se desarrolla bajo el proyecto denominado Jackarta perteneciente a la //Ap////ac////he Software Foundation// bajo la licencia Apache 2.0 y que implementa las especificaciones de los servlets y de JavaServer Pages o JSP de Sun Microsystem. Dicho servidor es mantenido y desarrollado por miembros de la fundación y voluntarios independientes, los cuales tienen libre acceso al código fuente bajo los términos establecidos por la //Apache Software Foundation.//

HISTORIA
Apache Tomcat﻿ comenzó siendo una implementación de servlets iniciada por James Duncan Davidson, que trabajaba como arquitecto software en Sun Microsystem y que posteriormente ayudó al proyecto de código abierto. Duncan, inicialmente pensó que el proyecto se convertiría en software de código abierto y además quiso ponerle un nombre de animal, en este caso Tomcat (gato) ya que, de algún modo pretendía trasladar la posibilidad de cuidarse por sí mismo, es decir, de ser independiente.

La primeras distribuciones de Apache Tomcat fueron las 3.0.x aunque las versiones estables más recientes son las 6.0.30 y la 7.0.6 que implementan las especificaciones de Servlet 2.5 y JSP 2.1.

ESTRUCTURA
La jerarquía de directorios de Apache Tomcat es la siguiente:
 * bin: arranque, cierre, scripts y ejecutables.
 * common: clases comunes que puede utilizar Catalina (contenedor de servlets) y las aplicaciones web.
 * conf: ficheros XML y la correspondiente DTD para la configuración de Apache Tomcat.
 * logs: logs del contenedor de servlets y de las aplicaciones.
 * server: clases usadas por el contenedor de servlets.
 * shared: clases compartidas por todas las aplicaciones web.
 * webapps: directorio que contiene las aplicaciones web.
 * work: almacenamiento temporal de ficheros y directorios.

COMPONENTES
A partir de la versión 4.x Tomcat fue lanzado con el contenedor de servlets "Catalina", con el contenedor HTTP "Coyote" y un motor para JSP llamdo "Jasper". Las principales características de estos tres componentes son:

Dicho componente implementa las especificaciones de servlets y JSP. Para Apache Tomcat el elementos principal es una base de datos de nombres de usuarios, password y roles a estos usuarios permitiendo a Catalina integrarse donde ya existe información de autenticación como describe la especificación de servlets.
 * Catalina**

Componente conector que admite el protocolo HTTP 1.1 para el servidor web y que escucha en un puerto TCP especificado por el servidor y envía la solicitud al motor Tomcat para que éste procese la solicitud y envie una respuesta al cliente.
 * Coyote**

Jasper analiza archivos JSP para compilar el código Java y, si se producen cambios, éste los vuelve a compilar. Desde la versión 5.x se usa Jasper 2 que es JavaServer para webs 2.0. Jasper 2 ha introducido las siguientes novedades:
 * Jasper**
 * Recompilación al producirse un cambio.
 * Incorpora el compilador JDT de Java.
 * Puesta en común de etiquetas JSP.

CARACTERÍSTICAS Y EVOLUCIÓN
Como se ha dicho anteriormente, Apache Tomcat es un servidor web que da soporte a servlets y JSPs de modo que, no es un servidor de aplicaciones. Dado que dicho producto fue desarrollado en Java, éste puede ejecutarse sobre cualquier sistema operativo, previa instalación de la máquina vistual de Java aunque, también se puede usar con MAMPP (Mac OS X), LAMPP (GNU/Linux), WAMPP (Windows) o XAMPP (cualquier sistema operativo). Además, puede funcionar como servidor web por sí mismo sin embargo, en sus inicios se pensaba que dicho servidor era recomendable usarse en entornos de desarrollo con requisitos mínimos de velocidad. En la actualidad no existe esta percepción y por esto, es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad.

Más en concreto, las principales características que soporta la última versión estable son:
 * Autenticación de acceso básico.
 * Negociación de credenciales.
 * HTTPS
 * Alojamiento compartido.
 * CGI o interfaz de entrada común.
 * Servlets de Java.
 * SSI
 * Consola de administrador.

La evolución del producto y sus principales características de cada una de las versiones han sido:


 * Tomcat 3.x** (distribución inicial)
 * Implementación a partir de Servlet 2.2 y JSP 1.1
 * Recarga de servlets.
 * Funciones básicas de HTTP.


 * Tomcat 4.x**
 * Implementado a partir de las especificaciones Servlet 2.3 y JSP 1.2
 * Contenedor de servlets rediseñado como Catalina.
 * Motor JSP rediseñado con Jasper.
 * Conector Coyote.
 * Java Management Extensions (JMX), JSP y administración basada en Struts.


 * Tomcat 5.x**
 * Implementado a partir de las especificaciones Servlet 2.4 y JSP 2.0
 * Recolección de basura reducida.
 * Capa envolvente nativa para Windows y Unix para la integración de las plataformas.
 * Análisis rápido JSP.


 * Tomcat 6.x**
 * Implementado de Servlet 2.5 y JSP 2.1
 * Soporte para Unified Expression Language 2.1
 * Diseñado para funcionar en Java SE 5.0 y posteriores.
 * Soporte para Comet a través de la interfaz CometProcessor.


 * Tomcat 7.x**
 * Implementado de Servlet 3.0 JSP 2.2 y EL 2.2
 * Mejoras para detectar y prevenir "fugas de memoria" en las aplicaciones web.
 * Limpieza interna de código.
 * Soporte para la inclusión de contenidos externos directamente en una aplicación web.

COMUNIDADES
Existen dos principales comunidades que se han creado en 2010, Tomcatexpert.com la cual es una comunidad patrocinada por los desarrolladores de Apache Tomcat en entornos de producción a gran escala y, por otro lado, la comunidad el Centro de Recursos Apache Tomcat MuleSoft donde se encuentran las guías que explican cómo instalar, configurar, actualizar, supervisar y resolver los diferentes problemas relacionados con las diferentes versiones de Tomcat.