Aplicações Distribuidas

5 respostas
luizaso

Ae pessoal, quero desenvolver uma aplicação distribuida tipo client/server em java.

Gostaria de desenvolver um front end em aplet java e um servidor que faria o back end da aplicação como acesso a dados, etc.

Vcs poderiam me dar uma luz em como fazer isso?

gostaria de usar webservices com soap, mas como não estou achando documentação gostaria de receber qualquer métodos que me permita fazer isto.

Agradeço a colaboração.

:lol:

5 Respostas

Alexandre

Vc tb ja pensou na possibilidade de se usar Enterprise Java Beans?
Acho que tb e uma opcao…

Bani

EJB pode até ser uma opção, mas é o tipo de opção que deve ser considerada cuidodasomente antes de ser adotada.
No próprio tutorial da Sun existe a dica de quando usá-la:
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts2.html#62902

Ele traz diversas vantagens e é relativamente simples de programar, mas ainda precisa melhorar muito para ficar realmente bom. É meio pesadinho, diminuindo a performance, e muita coisa não funciona exatamente como deveria.

Então, se você precisa realmente de algo escalável, que muitos usuários vão acessar ao mesmo tempo e não quer ficar se preocupando com as transações, tudo bem, use. Mas caso contrário, melhor esperar a tecnologia amadurecer.

J

Apenas para constar: Vc tb pode utilizar Java + CORBA (Common Request Broker Architecture) … inclusive com CORBA, seu servidor e cliente podem ser escritos em linguagens diferentes; além do Java, C++, COBOL, Smaltalk entre outras podem ser utilizadas …

Pra trabalhar com CORBA vc vai precisar de uma implementação de ORB (Object Request Broker) compatível com a especificação CORBA: Visibroker (Borland), Orbacus (IONA), Orbix(IONA), TAO e etc …

ps: Mas é uma tecnologia que não é muito simples de trabalhar …

[]s

Bani

Sendo tudo em Java, eu prefiro trabalhar com RMI do que com CORBA.

(Acho que neste tópico estou a fim de ficar discordando de tudo que é dito… hehehe)

dukejeffrie

Luiz, vc tem que ter muito claro qual é o seu objetivo.

Fazer uma aplicação distribuída é bem complicado e exige modelagens extensas… digo, pensar muito antes de implementar qq coisa.

Por exemplo, o que é que precisa ser compartilhado: se são só dados, então não tem muito por quê. Se vc quer trocar mensagens entre diversos nós, talvez RMI ajude, talvez atrapalhe e vc prefira usar sockets diretamente.

Quando é que uma aplicação é realmente distribuída?? Quando vc não tem certeza de em qual máquina acontece uma parte do seu programa, e pra vc não importa. Por exemplo, o nfs: vc não precisa saber e nem faz diferença de em qual máquina está o diretório: vc usa como se fosse local. Bem diferente é o sistema de compartilhamento de arquivos do windows, em que vc precisa saber em que máquina está o diretório que vc procura.

O que mais dá trabalho fazer são eventos distribuídos. Mas as aplicações distribuídas geralmente precisam deles. Uma aplicação muito legal que eu vi era uma espécie de PaintBrush compartilhado, onde cada usuário tinha seu próprio cursor. Todos os eventos de mouse eram enviados do cliente de origem para todos os outros clientes. O efeito era espetacular, mas dá um trabalhão.

Seu foco precisa ser muito claro, senão vc vai ter trabalho extra reescrevendo as coisas. Seu back-end pode ser feito com RMI na buena, e fica muito legal. Uma dica: aprenda a usar callbacks… : )

boa sorte e []s

Criado 20 de fevereiro de 2003
Ultima resposta 21 de fev. de 2003
Respostas 5
Participantes 5