Introduzindo o servidor de aplicação Apache Tomcat

Veja neste artigo o que é o servidor de aplicação Apache Tomcat, como é o seu funcionamento básico, quais as suas últimas versões e com quais versões e componentes ele é compatível, além de estudarmos a sua arquitetura e os principais componentes.

O servidor Apache Tomcat é um container Web de código fonte aberto baseado em Java que foi criado para executar aplicações Web que utilizam tecnologias Servlets e JSPs. O servidor Tomcat foi criado inicialmente como um subprojeto da Apache-Jakarta, no entanto, devido a sua alta popularidade, acabou sendo designado para um projeto separado da Apache, sendo assim mantido por um grupo de voluntários da comunidade de código aberto do Java.Apache Tomcat é um servidor bastante estável com todas as características que um container comercial de aplicações web possui.Atualmente as versões que ainda recebem suporte são 5.5x, 6.0x e 7.0x. Versões anteriores a 5.5 ainda encontram-se disponíveis para download no site da Apache, porém estão arquivadas e não possuem mais suporte. Por isso, recomenda-se que os usuários adquiram as últimas versões disponíveis.

Compatibilidade do Tomcat

A compatibilidade do servidor Tomcat com a JVM instalada também deve ser verificada. Além disso, também há outras compatibilidades que devem ser verificadas. A tabela abaixo mostra a versão do Tomcat e a versão de outras APIs e da JVM que são compatíveis.

Tabela. Versão do Tomcat, outras APIs e JVM
Apache Tomcat Servlet API JSP API JDK
7.0 3.0 2.2 1.6
6.0 2.5 2.1 1.5
5.5 2.4 2.0 1.4
4.1 2.3 1.2 1.3
3.0 2.2 1.1 1.1

Pela tabela acima podemos verificar que o Tomcat 7 suporta a implementação atual da Servlet API, que é a versão 3.0.

Aplicação Tomcat Manager

O servidor Tomcat trás junto consigo uma aplicação web chamada Tomcat Manager. Esta aplicação web é instalada no contexto/manager e através de qualquer browser provê funcionalidades básicas para gerenciar as aplicações web que estão rodando no servidor.

Entre as funcionalidades oferecidas estão a instalação, inicialização, paralização, remoção e relatórios das aplicações web.

Implementações Especializadas do Realm

O Tomcat disponibiliza métodos de segurança gerenciados pelo container para proteção de recursos dentro do container. Essas "databases" de usuários que podem ser autenticados pelo container são chamadas de realms. Existem dois tipos de realms suportados pelo Tomcat: MemoryRealm e JDBCRealm. O MemoryRealm é onde as informações do usuário são simplesmente lidas de um arquivo e armazenados na memória. Já o JDBCRealm é onde usa-se um banco de dados relacional para armazenar os usuários.

Tomcat Valves

Valves é uma tecnologia introduzida no Tomcat 4 e mantida até as versões mais atuais que permite associar uma instância de uma classe Java com um container em particular. Uma classe Valve age como um preprocessador para todas as requisições vindas do container. Esta tecnologia é propriedade do servidor Tomcat e não pode ser utilizado em nenhum container Servlet/JSP.

Arquitetura Básica do Tomcat

Uma instancia do Tomcat é o componente de mais alto nível na hierarquia do container Tomcat. Apenas uma única instância do Tomcat pode existir em uma única JVM. Esta abordagem torna todas as outras aplicações Java, rodando numa mesma máquina física num servidor Tomcat, seguras caso o Tomcat ou a JVM trave. Podemos ter múltiplas instâncias numa mesma máquina física, porém como processos Java separados rodando em portas separadas.

Uma instância do Tomcat consiste de um grupo de aplicações de container, no qual tem-se uma hierarquia muito bem definida. O componente principal desta hierarquia é o Catalina Servlet Engine. O Catalina trata-se da implementação do Container Servlet conforme especificado no Java Servlet API. Tomcat 7 nada mais é do que a implementação do Servlet API 3.0, a última especificação da SUN. A figura abaixo mostra o relacionamento dos principais componentes da arquitetura do Tomcat.

Figura 1: Principais componentes da arquitetura do Tomcat

O XML abaixo representa o relacionamento dos componentes acima:

Listagem 1: XML representativo da arquitetura do Tomcat
<Server> <Service> <Connector /> <Engine> <Host> <Context> </Context> </Host> </Engine> </Service> </Server>

Cada um desses componentes são configurados no arquivo server.xml.Abaixo veremos o que é cada um desses elementos:

Neste artigo vimos o que é o Apache Tomcat, quais suas versões, seus principais componentes e a sua arquitetura básica. Saber os principais elementos do seu servidor de aplicação e como ele funciona ajuda bastante a resolver problemas que possam ocorrer, minimizar defeitos, entre outras situações que normalmente ocorrem com bastante frequência quando estamos utilizando um servidor para fazer deploy das aplicações web.

Bibliografia


Saiu na DevMedia!


Saiba mais sobre Java ;)

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados