Por onde comecar programa cliente servidor desktop?

boa tarde,
tenho um grande projeto desktop para iniciar(desktop pois minha cidade so possuem estes tipos de sistemas, apresentar algo web agora nao seria viavel), sera um sistema tipo cliente servidor…

1-por onde devo comecar a estudar? RMI, sockets, JMS?..to meio perdido quanto a desktop cliente servidor
2-ouvi falar em aplicacoes instaladas nos clientes acessando banco de dados no servidor, isto é correto?
3- teria algum geito de minha aplicaçao ficar no servidor junto com o banco e os clientes irem acessando-a?

enfim, por onde seguir?
desde ja, obrigado

1 - Depende da grandeza do seu sistema, mas acredito que sockets podem quebrar um galho.
2 - É a maneira mais conhecida, assim vc mantém um único bd, se fosse em cada cliente, imagine replicar os dados ??!!
3 - Não sei, talvez java web start, mas acho que mesmo assim ele roda no cliente…

Mas o pessoal mais experiente da lista pode dar uma opinião melhor…

Um jeito bem simples, seria criar uma aplicação bem leve no cliente que acessa o servidor que roda toda a lógica de negócios usando EJB3 (apenas como exemplo, pode ser outra coisa tbm).
Assim fica bem fácil codificar o cliente e o servidor, e o servidor de aplicação fica responsável pelo banco de dados.

Eu faria dessa forma, pois acho que seria a mais simples.

Pode usar HTTP mesmo, a diferença é que o resultado de uma requisição não traz uma página HTML, traz XML ou JSON. Existe o [google]HttpClient[/google], dê uma procurada.

Não, de jeito nenhum. Em um banco, você não consegue fazer restrições de negócio, alguém acessando pode zuar a base fácil (e sem falar que, abrindo a base para os usuários, o risco de ataque externo é alto).

A Sun, ao promover o Matisse, mostra aqueles exemplinhos de Swing acessando a base diretamente, talvez pra dizer que o Netbeans é fácil. Mas não é bem assim, aquilo que eles fazem não se aplica ao mundo real.

Sim, desista do Java e parta para o Javascript (dê preferência a utilização de um framework).

tava pensando, e se eu disponibiliza-se no cliente apenas a intefarce, e esta interface mandasse mensagens para o servidor. por exemplo, o cliente manda uma mensagem pro servidor disendo para ele cadastrar as informaçoes passadas, ai o servidor cadastra estas informaçoes.

da pra fazer isso sem comprometer algo? com que tecnologia poderia usar isso? sockets, rmi, jms?

valw

A aplicacao que eu trabalho aqui eh basicamente assim:

GUI o cliente “starta” pelo webstart. Tem um servico de queries rodando no servidor que eh responsavel por receber tibco messages do front-end (essas mensagens geralmente sao requisicoes de queries). Esse servico executa a query no banco de dados, pega os resultados e transmite de vonta pro usuario no front-end.

//daniel

  • ajuda pessoal…

Opa, brother…
Não estou entendendo o porque de tanta complicação num assunto tão simples…
Se é um sistema Desktop, como disse, então não vai ter interface web, ou seja, você não vai precisar de nenhum desses frameworks para isso…
Desenvolva uma aplicação com swing e enginer JDBC para acesso servidor…
É simples…

  1. Você cria um banco de dados no PostgreSQL, MySQL, ou no que preferir…
  2. Com uma IDE poderosa como o NetBeans ou Eclipse você desenvolve a Interface e as classes de controle inerentes à regra de negócio…
  3. Cria uma classe de conexão com seu banco de dados rodando em PostgreSQL, por exemplo, através do conector JDBC do banco…
  4. Configura seu SGBD para aceitar requisições TCP/IP…
  5. Instala o SGBD servidor num computador que será o servidor da rede local e um SGBD cliente nas máquinas cliente da rede…
  6. Deixa o BD da sua aplicação somente no servidor…
  7. E, por fim, instala a aplicação em todas as máquinas da rede…
    Assim, todo o desenrolar da regra de negócio estará centralizado num único local (o servidor) e todas as máquinas poderão alterar registros, incluir registros, excluir registros, etc, apartir de um único host…

Espero que te dê uma luz de que não é complicado assim… rsrsrs…
Um dos princípios mais óbvios em TI é não reiventar a roda, então não complica com esses frameworks…
Um abraço!

HAHAHAHAHAHAHAHAHAHAHA…
Sinceramente, amigo Leonardo3001, você está por fora…
Um projeto de software grande envolve uma análise milindrosa e uma lista de requisitos extensa. É preciso conhecimento sólido da parte dos desenvolvedores da equipe em qualquer nível ou mesmo que seja um único desenvolvedor…
As formas de tratamento da regra de negócio muda conforme a ferramenta e os conceitos de desenvolvimento utilizados.
Dizer que não se pode fazer restrições de negócio num banco de dados e que se tem que deixar aberta a base para os usuários é totalmente sem nexo!
O risco de ataques sempre existirá e por isso sempre deverá estar incluso no Plano de Gerenciamento de Riscos. Todos sabemos que existem SGBD’s super-poderosos até no mundo OpenSource através dos quais se pode limitar ao extremo esse tipo de ataque com gerenciamento de grant’s.
A Sun, por sua vez, abriu uma imensa pagina na história da evolução da arquitetura de software, com vários experimentos e vários lançamentos interessantes aos desenvolvedores, e se tem algo que funciona como uma luva para aplicações em GUI Desktop, com certeza, é o Swing! O NetBeans então foi um marco! Uma IDE poderosa e abrangente, onde se pode desenvolver qualquer tipo de projeto em java e outras tecnologias. Se esses recursos não são usados no mundo real então eu conheço uma metade de mundo ilusório, como a Matrix, inclusive um grande banco financeiro onde trabalhei, rsrsrs… E se a forma de acesso ao banco referida for o JDBC então dói profundamente ao meu intelecto, kkkkkkk…
A utilização de frameworks depende de casos específicos e não se pode basear sua vida de desenvolvimento em predefinições e tendêncis de frameworks. Mas desistir de java porque se quer desenvolver uma aplicação cliente/servidor rodando unilateralmente é uma piada! Com certeza Java é a melhor tecnologia para isso no momento! Você pode usurfruir de javascript e outros meios mas sempre embebido no Java… Um bom exemplo é uma simples aplicação rodando com tomcat numa rede local onde a interface se retrata num browser qualquer, inclusive acessando um servidor com conexão JDBC… É só uma questão de Interface com o usuário.
Se vai ser local eu indico com toda a propriedade o Swing por disponibilizar uma maior gama de recursos ao desenvolvedor à um tempo bem mais ágil, porém não quer dizer que não possa fazer com interface web…
Questão de preferência e não de imposição!
Não desista do Java, amigão darkroger! Aprenda tudo que poder! E então faça suas conclusões.
Um grande abraço a todos!

blz Linkel, esta alternativa q vc passou acho q é mais simples,

muito obrigado brother!

Feliz em ter ajudado.
Um abraço!