Duvida Aplicação de 3 Camadas

19 respostas
colored

Bom tenho q trabalho da faculdade pra fazer, o professor pediu em delphi pq ele vai dar exemplo e talz, mas até eu aprender delphi pra entender o q tem pra fazer ja era o tempo…

Preciso fazer uma aplicacao que tenha 3 camadas

parte do Cliente | parte da aplicação | parte do servidor

sinceramente nao tenho nem ideia como começar, queria umas dicas do q devo procurar,
pq nunca fiz nada assim Cliente/Servidor quem puder me ajudar eu agradeço muito obrigado =D

19 Respostas

S

Ola,
seguinte, Funciona mais ou menos assim.

-O principio é deixar independente as camadas, creio que isso seja fácil para vc.

-O segundo principio é onde quebrar as camadas, assim.
-ex: Crie no servidor um servet que receba um texto XML e o insira no banco de dados, validando algumas informações.
ou seja, QUALQUER aplicação poderá comunicar-se com o servidor.

Pois bem, seu servidor ja esta recebendo e validando dados (http://localhost:8080/servletdemo/)

    Neste servidor você ja consegue criar as regras de negócio e o processo de recebimento dos dados de forma independente, de certa forma, MATANDO duas camadas.

    por último, crie um cliente que envie o XML ao servidor, que seria sua camada CLIENTE. (terceira camada)

tentei ser bem claro e explicar de forma simples o processo, o texto acima É UM EXEMPLO clássico.

Qualquer coisa, aguardo retorno
at+

Sandro Lemanski da Silva
[email removido]

tnaires

Olá
Você não deixou claro se precisa fazer em Delphi ou em Java.
Abraços

colored

Estou no Forum de Java ;D…

Nao Serio eh Java Mesmo…
Mas fazendo isto pra desktop n seria + facil???

tipo eu keria uma ideia como seria…

por exemplo na camada d Banco vai fica o Banco lá apenas rodando…
Ai na de aplicação roda uma aplicação que nao faço ideia o q ela faria…

entende essas sao minhas duvidas…
n tenho nem noção com seria um eskema desse…

Obrigado

colored

dei uma lida em uns topicos do google. e vi mais ow menos o q um cara comentou…

Que Seria Assim

Servidor | Aplicação | Interface

Tipo parece que da parte da aplicação acessar os dados do banco em outra makina… e so eu ajeitar na conexao passando o Ip.
da makina que esta o Banco eh isso mesmo???

S

Quanto a questão do IP ou banco de dados, isso é independente,
o que a processo fala é em arquitetura.
Image o seguinte. Você faz um aplicativo e o meu aplicativo comunica-se com sua camada de negócio, sem testes.

ex: Você faz um aplicativo que cadastra clientes, eu, enviando os dados via DLL/SOCKET/ETC tento cadastrar clientes no seu aplicativo,

Por exemplo, A validação de CPF estará no seu aplicativo, de modo que se eu colocar um CPF inválido, seu aplicativo (REGRA DE NEGÓCIO) irá retornar “FALSO”.

mais ou menos isso.

Espero ter ajudado

Sandro Lemanski da Silva

71C4700

E porque nao tem memo em Desk

Swing - Interface

Java - Aplicação

Servidor com o banco - Persistencia

Poderiia se desta forma?
Continuaria sendo 3 camadas

colored

Entao… eu pensei desse mesmo modo…

Uma Makina Com Servidor que vai controlar o Banco, uma Outra que tem toda A “Aplicação” sendo complementada pela interface que será mostrada ao usuario…

eu dei uma estudada num livro aki Java em Rede. isso tem q ser feito por Socket???

Vi tb algo sobre RMI eh por ai mesmo?

71C4700

Neste caso voce estaria partindo mais pra uma aplicação distribuida.

A ideia, acredito eu, de uma aplicação em tres camada seria voce dividi-las de forma que sejam escalaveis e reutilizaveis.

Uma aplicação Web, neste caso seria a melhor saida caso nao desje utilizar Swing.
Pois voce teria,

A apresentação do seu sistema rodando no cliente - Pagina Web
Sua aplicação funcionando no servidor - Aplicação propriamente dita
E seu banco de dados instalado em qualquer local - Camada de Persisistencia de dados

Não sei se resolve o seu problema, qualquer coisa estamos por aqui…

colored

Poderia ser assim…

Mas o Problema que eu n sei de onde partir entende???
tem como me dar uma Luz…

71C4700

Procura por aplicações Web, com Jsp ou Servlets lhe ajudaram…

Ai quando voce colocar pra funcionar pelo menos um exemplo, ai ja teria as duas camadas ai a camada de persistencia ou de banco é igual desktop…
Qualquer coisa procuro um exemplo e te mando é que to meio ocupado esta semana…

G

MVC :smiley:

http://java.sun.com/blueprints/patterns/MVC.html

colored

Não…

Meu Problema n eh Especificamente Java…

Tanto desktop ow Web pra mim tranquilo…
meu grande problema eh como vou conectar 3 makinas pra uma ser o servidor, uma utilizar esse banco tendo a aplicação nela,
e a otra apenas com a interface…

eu n consigo me conectar as makinas…

esse eh o meu problema =D

Obrigado desde ja pela ajuda.

BrenoSalgado

creio que o professor estava desejando não é nescessáriamente 3 máquinas separadas, e sim 3 partes independentes que formam uma só, não tem sentido em fazer interface e aplicação em máquinas diferentes

fantomas

Se web fosse tranquilo vc não teria estas dúvidas todas heim!?!?!

Deixa eu tentar ajudar…

Considerando 3 máquinas vc poderia fazer o seguinte:

OPÇÃO 1

a) Na máquina 1 vc coloca o banco de dados (vc escolhe qual)

b) Na máquina 2 vc coloca o modelo (regras, serviços, classes de domínio etc…) sob o domínio de um web server (Tomcat, jetty, etc…) ou um servidor de aplicação (JBoss, Geronimo, etc…).
.Neste ponto vc terá que tomar algumas decisões; se utilizar apenas web server vc terá um grupo de opções se for um servidor de aplicação vc terá um outro grupo de opções vamos dizer assim.

c) Na máquina 3 vc coloca o cliente swing.

OPÇÃO 2

a) Na máquina 1 vc coloca o banco de dados (vc escolhe de novo qual)
b) Na máquina 2 vc coloca o modelo sob o domínio de um SERVIDOR DE APLICAÇÃO ou algo como o Spring
c) Na máquina 3 vc coloca um web server (Tomcat, Jetty, etc…) onde ficará suas páginas podendo até ter o cliente swing aqui também com deploy “automático”)

Você pode implementar o que fica na máquina 2 (na indicação acima) com socket ou rmi também, mas dependendo da complexidade de sua aplicação vc poderá encontra várias dificuldades.

O seus módulos entram em contato um com o outro através dos IPs e Portas que vc informa para os objetos que estão em contado com a rede.

P.S Estas opções estão isenta de maiores detalhes objetivando a simplicidade, enriquecimento e criação de novas idéias no tópico.

flws

71C4700

Calma, se seu professor pediu 3 maquinas diferentes não são necessariamente 3 camadas, mas sim uma aplicação distribuida em tres maquinas.

Agora se o problema for, poder dividir dua aplicação em tres camadas de forma que cada uma tenha um comportamento unico e seguro, mesmo sem comunicar uma com a outra,acredito que seja um problema de Arquitetura no seu caso o de 3 camadas.

Esplique melhor seu problema, pois assim as respostas se aproximaram mais do que vc necessita…

colored

Então eh Tipo Assim.
o Professor que escreveu tal 3 camadas pra mim, 3 camadas seria o q todos daki falaram tb…
bla dividir a aplicação…
mas o q eu preciso como vcs mesmo disseram eh fazer essa aplicação distribuida…

71C4700

Bem se sua aplicação é distribuida aconselho da uma olhada em EJB ou RMI, pra resolver seu problema,mas lembrando sempre que divir em camadas deixa seu sistema mais flexivel a mudanças

colored

Não tranquilo Mvc eu aprendi nakelas mas fika até q certinho…

Entao c eu começa procurar sobre RMI…
Resolve meu Problema neh…

Valeu…

laudenpower

Bom nos últimos tempos, eu estava em busca de uma arquitetura de acordo com MVC e acabei desenvolvendo um protótipo usando hibernate + servlet + swing, a principio segue os padrões MVC, sendo que nesse caso eu tenho os DAO’s e BO’s no lado do servidor tendo como camada controladora um servlet, sendo que na camada swing eu serializo os objetos em xml, e mando para o servlet via HTTP, sendo que no final o servlet deserializa e manda esse objeto para a camada de persistencia retornando assim uma resposta para o cliente. Nesse meu caso o aplicativo funcionou a contento.

Criado 17 de fevereiro de 2009
Ultima resposta 19 de fev. de 2009
Respostas 19
Participantes 8