Entendendo o que é um servidor de aplicação e um servlet container na programação Java para Web

Quando uma aplicação está sendo construída, existem dois tipo de requisitos que devem ser implementados. Um deles consistem nos requisitos funcionais da aplicação, ou seja, nas regras de negócio, as quais serão implementadas pelo desenvolvedor do projeto. O outro tipo são os requisitos não funcionais, que fazem parte de uma infraestrutura que irão controlar ações como transações, gerenciamento de threads, web services, conexão com o banco de dados, conexões HTTP, entre outras diversas funcionalidades que são requeridas em uma determinada aplicação.

Para facilitar a vida do desenvolvedor, a plataforma Java EE (Java Enterprise Edition) é constituída de uma série de especificações, as quais definem como implementar um software para que ele realize os serviços de infraestrutura para se trabalhar com os requisitos não funcionais. Assim, o desenvolvedor não precisará se preocupar em implementar os requisitos não funcionais, se dedicando apenas a implementar as regras de negócio da aplicação. No entanto, é preciso que haja softwares que implementem as especificações Java EE para serem utilizadas em outras aplicações. E esses softwares, que implementam todas essas especificações Java EE, são denominados servidores de aplicação.

Ou seja, quando for preciso utilizar, em uma aplicação, determinadas funcionalidades definidas nas especificações Java EE, não é preciso construir essas funcionalidades do inicio. Basta apenas colocar a aplicação que esta sendo construída dentro de um servidor de aplicação e utilizar todas as funcionalidades que forem necessárias, já implementadas por esse software. Em java, o servidor de aplicação mais conhecidos é o Jboss.

Há também, softwares que implementam apenas uma parte das especificações Java EE, não implementando todas as especificações,c omo fazem os servidores de aplicação. Por isso, a esses softwares se dão o nome de servlets container. Um dos mais utilizados é o Apache Tomcat.

Resumindo, um servidor de aplicação possui todas as especificações Java EE implementadas, podendo assim suportar aplicações mais robustas, como as EJBs, por exemplo. Já um servlet container não possui todas as implementações do Java EE, sendo mais limitado, porém mais viável para aplicações mais simples.

A figura abaixo, mostra uma aplicação mais robusta, que foi colocada em um servidor de aplicação e utiliza de uma especificação EJB do Java EE. Essa mesma aplicação não poderia ser colocada em um servlet container, já que este software não implementa essa especificação Java EE.


A próxima figura, mostra uma aplicação mais simples, utilizando de funcionalidades do Java EE como JSF e JSTL. Essas especificações são implementadas por um servlet container, assim, é possível colocar a aplicação no Apache Tomcat por exemplo, e não necessariamente em um servidor de aplicação.




#java #servlet #container #tomcat #servidor

340 visualizações0 comentário

Posts recentes

Ver tudo