Diferenca: Web Server, Web Container e Application Server

Bom dia galera, tive uma prova na faculdade e não consegui responder a uma pergunta:

Qual a diferença entre Web Server, Web Container e Application Server? Cite exemplos.

Agora ja se foi, mas eu quero saber isso, alguem pode me ajudar?

nao querendo ser chato, vc chegou ao usar o google?

flw!

Sim, procurei.

Consigo achar definições separadas, as não tenho experiência o suficiente pra dizer as diferenças entre um e outro corretamente.

Achei diversas coisas, mas tenho duvidas.

Web Service - serviço que integra programas e aplicações a outros programas e aplicações, especialmente quando estes são desenvolvidos usando diferentes linguagens, ferramentas ou plataformas através de XML.

WebContainer - servidor que disponibliza um Web Service porém não roda EJB

Application Server - WebContainer que roda EJB

Esta correto?

[quote=spdio]Bom dia galera, tive uma prova na faculdade e não consegui responder a uma pergunta:

Qual a diferença entre Web Server, Web Container e Application Server? Cite exemplos.

[/quote]

Web Server - Servidor Web - é uma software que conversa com browsers via HTTP e presa pela escalabilidade.
Ou seja, aguenta falar com muitos bowsers ao mesmo tempo. Exemplo: Apache Web Server.
Ele apenas usa o protocolo HTTP e envia ao browser contudo estático tal como páginas html, imagens, videos, etc…
Não ha programação do lado do servidor.

O ambiente de um Web Server é meio que inutil sem uma mecanismo dinâmico. Por isso inventou-se o CGI uma forma de anexar programas às requisições HTTP. Com isso contruiram-se vários CGI engines (motores) que são baseados em diversas linguas C, Perl , Python, etc… Em java o motor CGI é padronizado pela especificação de Servlets. Os servelts são classes que o programador cria para manipular a requisição HTTP ( principalmente, embora, em tese, possa trabalhar com outros protocolos).
O Web Container é uma forma de se referir ao ambiente onde os Servlets rodam. É incluso um mecanismo de CGI e processamento de HTTP. A diferença entre Web Server e Web Container é que Web Server é generico para qualquer tecnologia e se refere a um produto, normalmente. Web Container é um peça da especificação de Servlets e só existe em Java. Normalmente os ofwares que implementa web containers implementam um forma de web server para poder tratar o HTTP ou ganchos para se amarrarem a um web server real. Por exemplo, o Tomcat pode ser usado como motor CGI do Apache Web Server.
O Web Container é essencialmente um ambiente que controla Servlets. Coloquialmente o signfiicado é extendido para se referir a todo o software incluindo o mini web server incluido. Especialmente quando se fala do Tomcat como produto independente.

Application Server - Servidor de Aplicação - é o resultado da especificação java EE. É um software que contém um Web Container, um EJB Container , acesso JNDI e JMS ambiente tansacional com JTA e muitas outras tecnologias como Java Mail , JDBC e CORBA que juntas formam o ambiente EE.
Servidores de Aplicação são mais completos, complexos e robustos que um Web Container sozinho principalmente pelo que podem fazer ( por exemplo, suporte a EJB). EJB é especificamente recomendando quando existe uma demanda muito forte de transações e/ou distribuição. Historicamente a distribuição ficou meio que na gaveta quando a maioria das distribuições enveredou pelos webservices ( que o AS tb permite) e deixou de lado a distribuição de objetos. Então, hoje, usam-se EJB quando ha muito necessidade de controlar transações.
Quase todas as tecnologias presentes no AS podem ser usadas fora dele, portanto o AS não passa de um ambiente que garante certos requisitos de infraestrutura e especificação EE.

1 curtida

[quote=spdio]Sim, procurei.

Consigo achar definições separadas, as não tenho experiência o suficiente pra dizer as diferenças entre um e outro corretamente.

Achei diversas coisas, mas tenho duvidas.

Web Service - serviço que integra programas e aplicações a outros programas e aplicações, especialmente quando estes são desenvolvidos usando diferentes linguagens, ferramentas ou plataformas através de XML.

WebContainer - servidor que disponibliza um Web Service porém não roda EJB

Application Server - WebContainer que roda EJB

Esta correto?

[/quote]

WebService - exemplo SOA

WebContainer = TomCat

Application Server = Glassfish

EJB vc usa para separar a camada de negocio da apresentacao… agora procure sobre as tecnologias acima que vai encontrando e montando o quebra-cabeça… acho a melhor forma de aprender…

flw! espero estar contribuindo para sua carreira dessa forma!
abraço!
http://camilolopes.wordpress.com nesse meu blog tem sobre SOA.

De uma forma bem simples, é o seguinte:

Web Server - Um “servidor de páginas”. Atende a requisições HTTP, fornecendo conteúdo estático como: páginas HTML, figuras, arquivos em geral para download.

Web Container - Serviço que gerencia e executa componentes de criação de conteúdo dinâmico (exemplo: Servlets, páginas JSP). É uma parte da especificação Java EE.

Esses dois acima trabalham juntos da seguinte forma: Os clientes (browser) fazem a requisição para um Web Server. Dependendo do que for solicitado o Web Server aciona o Web Container para criação de conteúdo dinâmico.

Application Server - Não tenho certeza dessa definição, mas acredito ser um servidor que atenda toda a especificação Java EE. Ou seja, um serviço que contém Web Container + Container EJB + JNDI + outras coisinhas…

Importante! Web SERVICE é um outro assunto, não confunda com Web Server!

E como foi dito pelo colega, dê uma pesquisada para obter algumas definições mais completas.

EDIT: Não tinha visto que a questão foi respondida em mais detalhes pelo sergioTaborda, os posts foram quase ao mesmo tempo…

2 curtidas

[quote=spdio]Sim, procurei.

Consigo achar definições separadas, as não tenho experiência o suficiente pra dizer as diferenças entre um e outro corretamente.

Achei diversas coisas, mas tenho duvidas.

Web Service - serviço que integra programas e aplicações a outros programas e aplicações, especialmente quando estes são desenvolvidos usando diferentes linguagens, ferramentas ou plataformas através de XML.

WebContainer - servidor que disponibliza um Web Service porém não roda EJB

Application Server - WebContainer que roda EJB

Esta correto?

[/quote]

acho que vc procurou errado…primeiro vc perguntou sobre web server, e depois colo a definição que encontrou de web service…

Muito bem explicado.

Muito obrigado a todos, não tenho mais duvidas.

Agora ja tem mais noção do que utilizar para diferentes tipos de projetos.

Eu vou começar a desenvolver um pequeno portal JEE, preciso de coneúdo dinâmico, porém vou utilizar poucas “tecnologias”, vou usar Tomcat.

Galera, novamente muito obrigado a todos, em breve vou manjar de tudo igual a vocês, hehe.

Abraços