Sistema web = distribuído?

um sistema web é sempre distribuído !?

Não. É distribuido quando mais que um nó faz o processamento. Sendo que o nó mais disponível “pega” o processo.

Depende do que vc considera que significa “distribuido”.
qual é a sua ideia ?

Sim. A web é por essência cliente/servidor (browser/servidor web), ou seja, máquinas independentes colaborando para um fim comum.

Você só esqueceu que seu computador também é um nó. O seu browser “pega” o resultado do servidor e process também.

Você só esqueceu que seu computador também é um nó. O seu browser “pega” o resultado do servidor e process também.[/quote]

Realmente não foi uma resposta bem pensada. Concordo com você sobre o computador do cliente ser um outro nó. Apesar de na maioria dos casos o processamento do cliente (thin) ser muito pequeno em relação ao trabalho do servidor.

Olá

Sem pensar em casos tipo gmail, a gente pode considerar também a interface web apenas como uma camada de apresentação sem muita inteligência. Quando penso em algum sistema distribuído, na minha lembrança vem alguma coisa em que o processamento no servidor é distribuído.

Sob o ponto de vista estritamente formal, você tem razão. Seu argumento me convenceu. Se apenas um pedacinho é distribuído, todo o sistema é distribuído. Se a gente fizesse uma votação e eu pudesse escolher uma só opção, meu voto seria igual ao seu.

Mas se a pergunta tivesse sido sobre um sistema predominantemente distribuído, meu voto seria outro.

[]s
Luca

isso foi polêmico na minha faculdade também, mas eu concordo com o sanchez.
eu queria saber na verdade, é se era SEMPRE.

meu sistema com GWT + Hibernate , os clientes vão rodar no browser e chamar os métodos NO servidor acessando pela rede assim como o banco (que pode até estar em uma terceira máquina); isso não é distribuição? os clientes não vão estar fazendo a mesma coisa e acessando o mesmo banco atravez da rede?

Antes de dizer se é ou não, você deverá escolher uma definição de sistema distribuído. Existem várias.

Alguns autores atribuem a definição de sistemas distribuidos o conceito de que vários computadores irão cooperar, mas o sistema irá se comportar como um único sistema só.

Veja a definição de Wolfgang:
“A distributed system consists of a collection of autonomous computers, connected through a network and distribution middleware, which enables computers to coordinate their activities and to share the resources of the system, so that users perceive the system as a single, integrated computing facility.”

Nesse caso, muitos sistemas web não seriam enquadrados como sistemas distribuidos, pois o usuário tem plena noção de que se tratam máquinas distintas. Essa definição é meio antiga. Por muitos anos tentaram perseguir sistema assim sem muito sucesso. Um exemplo deles é o SO amoeba, do Tanembaum, que ganhou fôlego novo depois da popularização do conceito de Cloud Computing.

Mas, por essa definição, o Luca estaria certo. Um sistema autônomo que só se comunica com o outro através de uma view, e que o usuário percebe a view como algo separado, e não como uma extensão do seu próprio sistema, não seria um sistema distribuído.

A definição que mais gosto é a do Colouris, que define como:
“A distributed system consists of hardware and software components located in a network of computers that communicate and coordinate their actions only by passing messages.”

Nesse caso, sistemas web seriam, sim, sistemas distribuídos, sempre. A definição dele está apenas em dizer que um sistema distribuído é assim porque computadores irão resolver tarefas trocando mensagens. Parecer um sistema só não seria um requisito, mas só uma característica de alguns sistemas distribuídos. Essa é uma definição bastante abrangente, mas minha experiência na área de telecomunicações indica que ela é bastante acertada também. Por ela, um sistema web minimalista poderia ser um sistema distribuído simples e com pouca distribuição, mas pelo fato de haverem duas máquinas ao invés de uma, ainda seria distribuído.

Existem algumas definições bem exóticas, como a de Lamport:
“A distributed system is a system that prevents you from doing any work when a computer you have never heard about, fails.”

Particularmente, não gosto dessa definição. Ela diz que todo sistema distribuído é tolerante a falhas. Tolerância a falhas está também relacionado a uma característica, não a um requisito do sistema.

Bem, sabendo que essa pergunta saiu de uma sala de aula, e supondo que tenha sido um professor que tenha perguntado, vc só precisa saber qual a definição de um sistema distribuído para ele.
Caso ele não saiba definir um, ou dê uma resposta daquelas bem sem-vergonhas do tipo ‘É um sistema que está espalhada por um rede’, aconselho vc a ir a reitoria da sua faculdade e exigri a demissão dele xP

Esse conselho geraria uma nota baixa e um aluno revoltado. E não teria absolutamente nenhuma consequência para o professor.