Dúvida Básica [resolvido]

7 respostas
cido18

Olá a todos,

Comecei a estudar J2E a pouco tempo, e lendo algumas coisas fiquei com uma dúvida, um conteiner tem a mesma função de um servidor de aplicação tipo JBoss??

Agradeço a todos

7 Respostas

otaviojava

De uma maneira geral o container normalmente roda apenas jsp e servlet. Enquanto um servidor de aplicação roda toda a especificação do java ee

cido18

Então o conteiner seria um servidor de aplicação só que com menos recursos(tipo o tomcat?).

marcuscarvalho1

Bom, não é bem assim… existe uma confusão nos conceitos de Container Web, Servidor Web e Servidor de Aplicação Web. Um Servidor Web guarda informações da aplicação web e o bd, mas ele não resolve os problemas da inteligência da aplicação web. Se a aplicação web for somente HTML puro mais imagens estáticas, dados que não passam por tratamento, submissão de formulários, então um servidor web por si só resolve.
Porém, se é uma aplicação java, por exemplo, e que contém submissão de formulários, requests, responses, sessões, DAOs, BEANS, Actions (no caso de Struts), Managed Beans (no caso de JSF), ou seja, existe uma inteligência por trás do sistema, então é necessário executar no servidor uma estrutura que roda essa inteligência do sistema (como o seu IDE faz para rodar a aplicação na sua máquina). Esse cara é o Container Web. É o cérebro do servidor, por assim dizer.
Já um Servidor de APLICAÇÃO Web é a junção destas duas coisas: ele tem um Servidor Web e Containers Web dentro dele.
Um SERVIDOR DE APLICAÇÃO WEB, como GlassFish, WebSphere, JBoss, dá suporte a vários recursos do pacote JEE, como o EJB. Isto porque ele possui, além de um Container WEB, um Container EJB.
Já um Container Web, como TomCat, fornece recursos a somente um tipo de aplicação, mais básica. Tom Cat não dá suporte, por exemplo a EJB ou Spring, porque ele é um container WEB, não um cointainer EJB, sacou?
Então concluímos que não é como você disse, “o container é um servidor de aplicação, mas com menos recursos”, e sim: um Servidor de Aplicação possui vários containers, enquanto o TomCat é um Container só.

otaviojava

marcuscarvalho1:
Bom, não é bem assim… existe uma confusão nos conceitos de Container Web, Servidor Web e Servidor de Aplicação Web. Um Servidor Web guarda informações da aplicação web e o bd, mas ele não resolve os problemas da inteligência da aplicação web. Se a aplicação web for somente HTML puro mais imagens estáticas, dados que não passam por tratamento, submissão de formulários, então um servidor web por si só resolve.
Porém, se é uma aplicação java, por exemplo, e que contém submissão de formulários, requests, responses, sessões, DAOs, BEANS, Actions (no caso de Struts), Managed Beans (no caso de JSF), ou seja, existe uma inteligência por trás do sistema, então é necessário executar no servidor uma estrutura que roda essa inteligência do sistema (como o seu IDE faz para rodar a aplicação na sua máquina). Esse cara é o Container Web. É o cérebro do servidor, por assim dizer.
Já um Servidor de APLICAÇÃO Web é a junção destas duas coisas: ele tem um Servidor Web e Containers Web dentro dele.
Um SERVIDOR DE APLICAÇÃO WEB, como GlassFish, WebSphere, JBoss, dá suporte a vários recursos do pacote JEE, como o EJB. Isto porque ele possui, além de um Container WEB, um Container EJB.
Já um Container Web, como TomCat, fornece recursos a somente um tipo de aplicação, mais básica. Tom Cat não dá suporte, por exemplo a EJB ou Spring, porque ele é um container WEB, não um cointainer EJB, sacou?
Então concluímos que não é como você disse, “o container é um servidor de aplicação, mas com menos recursos”, e sim: um Servidor de Aplicação possui vários containers, enquanto o TomCat é um Container só.

òtima explicação parabéns.
Somente complementando, os contêiner web normalmente se resumem em executar jsp e Servlet enquanto o servidor de aplicação utiliza as especificações de um java EE.
Mas essa informação não é uma regra o novo tomcat, por exemplo, também já roda o jsf 2.0.

cido18

Valeu marcuscarvalho1, exelente a sua explicação muito obrigado mesmo. obrigado otaviojava tambem pela força.

otaviojava

coloca o assunto como resolvido.

G

seria uma boa editar o título para algo mais sugestivo, o tema aqui é realmente interessante. muitos desenvolvedores não entendem complementamente essas particularidades.

Criado 24 de julho de 2011
Ultima resposta 25 de jul. de 2011
Respostas 7
Participantes 4