Java como servidor para um cliente qualquer

23 respostas
dead_mouse

Desenvolvo aplicações comerciais à algum tempo e comecei a estudar Java a alguns meses (por causa do JSP). Desde então vi comoa linguagem é perfeita para criação de um modelo de negócios, o acesso à banco de dados (por Hibernate) e WebServices…

O problema é que tenho muitas aplicações prontas e toda uma equipe preparada mais para Delphi que para qualquer outra coisa. Seria bastante caro (neste momento) que toda a aplicação foi desenvolvida em Java.

Estava pensando se seria possível utilizar clientes escritos em outras linguagens/plataformas para acessar serviços rodando em Java.
Não falo de simplesmente chamar métodos ou importar interfaces, falo de banco de dados…

Alguém já teve alguma idéia em relação à isso?

Como fazer o Delphi usar os objetos do Java, inclusive utilizando componentes conscientes de dados. Não espero nenhuma receita de bolo (Mas seria muito bemvinda ;). Um design pattern sobre isso, algum material ou mesmo o que devo procurar especificamente…

Mesmo que eu tivesse que reescrever alguns pontos de acesso à dados que o Delphi faz, preciso de uma solução e agradeço a atenção…

Abraços
Davi :roll:

23 Respostas

pcalcado

Um dos poucos caoss onde WebServices sao ideais, IMHO

W

Caro dead_mouse,
O Delphi é uma linguagem orientada a objetos e possui vários componentes proprios e de terceiros de acesso a dados como o TClientDataSet==>DataSetProvider ==> dbExpress e etc…isso sem falar de componentes para relatórios e DataSources.
Se eu retirar da linguagem Delphi estes componentes ele praticamente será uma linguagem sem nenhum recurso, vide o FreePascal ou experimente fazer uma conexão com uma base de dados sem componentes. Pois bem o Java é um ambiente onde vc. pode desenvolver qualquer aplicação ou aplicativo e diferentemente do Delphi ele não precisa ter um monte de componentes compilando junto com a tua aplicação para dar um “ApplyUpdates”, vc terá sim objetos, classes e metodos para instanciar isso para a sua aplicação.
Quanto a migrar as tuas aplicações de Delphi para java, te aconselho a ter uma equipe ou alguns componentes da tua equipe preparada e qualificada para migrar a tua aplicação para java, pq. o que vai interessar de teus projetos antigos são os dados + regras de negócios, conceitos, padrões de classes e etc…(vc,. sabe) . O resto vc. joga fora.
Quanto ao " valor caro" que vc. comenta eu discordo pq. somente para vc. aquirir uma licensa da Borland = U$$ 800,00 . Se comparado com um ambiente de desenvolvimento em java sendo:

1- JSDK 1.5.0 ou superior
2- IDE Eclipse + plugins ou IDE netBeans
3- Banco de dados.: PostgreeSQL ou Firebird
4: Tomcat ou JBOss
5: Hibernate
6- etc…

Vc. terá um ambiente completo e corporativo sem nenhum custo e acho que vale a pena vc. investir em qualificação do teu pessoal     . Baixe o JBuilder ele tem o mesmo conceito que o Delphi, não tenha pena de migrar as tuas aplicações e bola pra frente
dead_mouse

acho ruim isto…

quando ninguém tem uma respota para a minha pergunta, apenas tentam empurrar sua própria opnião, valeu mesmo assim. Vou continuar procurando alguma coisa se não achar acharei normal… A indústria só se mostra firme e aceitável quando cria padrões, o que raraente acontece. Acessar dados de um Provider do Delphi não dá mesmo, e agora?

Quando me referi a custos, falei do custo de migração e o impacto que isso gera numa solução que já existe.

Obrigado

W

Caro dead_mouse,
Acho melhor vc. conhecer um pouco mais o Java, muitas pessoas que antes eram especialistas em Delphi, hoje Delphi .Net estão experts em java. As pessoas que me refiro são Edgar Silva, Fernando Anselmo, Daniel Wildt e por ai vai. A resposta para a sua pergunta está no item acima ficou faltando somente um item.:
Se vc. não pode fazer em casa , contrate uma consultoria e coloque o seu pessoal para aprender java, no melhor dos caminhos contrate especialistas em java. Ninguem pega um sistema e transforma em outro do dia para a noite.

PS.: Falei do JBuilder portanto acho que se vc. baixar a versão mais recente juntamente com os manuais em PDF e, “estudar” o caminho está dado o resto é com vc.

Boa sorte…

dead_mouse

:frowning: num deu…

certo

como se faz alguma coisa como Componentes Conscientes de dados em Java? Me cola um trechinho de um código de uma agenda telefônica (Somente com as partes relevantes).

  • Código
  • Nome
  • Telefone

Queria saber como se trata deste problema (paradigma, na minha opnião) em Java. Em Delphi existe o tal ClientDataSet. Só que em Delphi é de tão alto nível que se tornou inflexível.

#define PERGUNTA_MUITO_IMPORTANTE

Pensando bem (pra variar) vi agora a luz, eh Borland JBuilder, então o ClientDataset deve tá lá (de uma forma ou de outra). Mas me diz, existe uma forma padrão a.J.B (antes de JBuilder)? Tipo que saída você teria para conectar um componente de visualização à uma coluna (campo) de um conjunto de dados?

#undef PERGUNTA_MUITO_IMPORTANTE

Abraços cara e obrigado pela grande ajuda.

Obs. Detesto Delphi… Prefiro C++, mas foi a primeira RAD que conheci aí ficou né :slight_smile:

W

Caro dead_mouse,
Estou te passando uma lista de links, para vc. parar e estudar, agora nada mais nada mesmo irá superar teu conhecimento, o que vc… precisa é entender os conceitos da linguagem Java. Usei o JBuilder tempos atrás é uma IDE RAD com o mesmo conceito do Delphi muito boa. Procure estudar o material destes links de preferência imprima e leia com atenção.

http://www.guj.com.br/java.tutorial.artigo.7.1.guj
http://www.guj.com.br/java.tutorial.artigo.173.1.guj
http://www.guj.com.br/java.tutorial.artigo.24.1.guj
http://www.portaljava.com.br/home/modules.php?name=Content
http://www.guj.com.br/user.article.list.chain

Participe de grupos  Java ( diferentemente da comunidade Delphi) o pessoal é super unido e simples.
       Estude JDBC .:
 tipo 1 ,tipo 2, tipo 3, tipo 4.
        Compre livro sobre o assunto  de prefência de bons autores...tem o do

1- Fernando Anselmo : " Tudo que Voce queria saber sobre a JDBC " - Visual Book
2- Ivan Mecenas : " Java 2 Fundamentos, Swing - AltaBooks
3 - Deitel " Java Como programar " Bookman

Existem outros mais é questão de gosto

Revista JavaMagazine - Compre todas
Revista MundoJava - Compre todas

É por ai Java é fascinante não apenas como linguagem, mais como uma plataform , onde vc. pode criar aplicação.:

J2ME : RFID, Telefonia celular, aplicações embarcadas em micro chips, Robotica e etc…
J2SE.: Toda e qualquer aplicação desktop sem limite.

J2EE.: Para criar aplicações ,EAI, Enterprise e etc…

Bem vou para por aqui pois como dá para perceber " detesto "Java.
  Tá tudo ai..

PS. Suas noites de sono acabaram…

Mauricio_Linhares

dead_mouse:
acho ruim isto…

quando ninguém tem uma respota para a minha pergunta, apenas tentam empurrar sua própria opnião, valeu mesmo assim. Vou continuar procurando alguma coisa se não achar acharei normal… A indústria só se mostra firme e aceitável quando cria padrões, o que raraente acontece. Acessar dados de um Provider do Delphi não dá mesmo, e agora?

Quando me referi a custos, falei do custo de migração e o impacto que isso gera numa solução que já existe.

Obrigado

Rapaz, não entendi o que você quis dizer, porque a sua pergunta já teve uma ótima resposta, que foi a do Phillip. Integração entre sistemas heterogêneos é um dos principais motivos pra existência dos web services, que fazem o serviço de comunicação normalmente usando XML.

Java tem uma implementação da Sun para web services:

http://java.sun.com/webservices/index.jsp

E pelo menos a nova versão do Delphi (2005) também tem muita coisa sobre isso, especialmente se você for utilizar o Delphi.Net ou C#. Se você quer fazer integração de sistemas heterogêneos, procure se informar sobre isso.

dead_mouse

Claro!

Mas a idéia de integração é irreal ainda, como posso escrever uma aplicação servidora em Java e ter clientes em Delphi por exemplo? Você então abre um sorriso e diz SOAP!

Então eu vou todo contente e abro meu Delphi (após ter criado minha maravilhosa aplicação em J) e começo, então, a arrastar os componentes conscientes de dados para um formulário. Em seguida pego um SoapConnection e … opa, cadê o provider?

Java (SUN) não tem um padrão para implementar uma tal de IAppServer, e agora? Vou ter que fazer na mão toda a integração com o formulário?

edtNome.Text := CLiente.Nome;

Perco muito tempo assim…

O que quis dizer é que o SOAP foi uma idéia genial mas não atende a todos e a tudo. Reflita sobre o que falei, acesso a dados é um paradigma que talvez mereça ser padronizado… o W3C talvez um dia veja isso…

Ou então todo mundo usará .NET, assim posso usar aquele tal de C# para fazer programinhas que rodem em cima do .NET ou Delphi .NET …

Muito já se foi feito, mas ainda não dá para escrever uma aplicação em J e fazer os clientes em Delphi falarem com ele (usando componentes que facilitam a situação).

Mas já que toquei no assunto e sei que vão jogar pedra em mim…

Alguém sabe se existe algum padrão para acesso a dados?
Um vai dizer XML, certo, mas eu carrego o XML, faço o que agora? GRavo, Insiro, …

Por favor, eu ainda estou procurando um porto para ficar, e não posso dár um grito e dizer: corram e aprendam Java! Por que já existe uma solução para os clientes preciso agora de um bom servidor, e Java se encaixa perfeitamente.

Clientes em Java sim, claro, mas agora não…

pcalcado

O que o W3C teria de interesse em aceso a dados? O que isso tem a ver com Web?

Existe um padrão para acesso a bancos de dados, chama-se ANSI SQL.

Se o que você procura é um padrão para componentes que acessam dados diretamente, duvido que encontre algo prático ou que isso venha a surgir, visto que é uma péssima prática acessar dados via formulários.

Antes de continuar, defina “servidor”, porque até agora não vi nenhum problema para usar SOAP na sua aplicação.

dead_mouse

Certo,

Vamos começar pelo fato de o W3C não fazer apenas coisas para a WEB (vide XUL do Mozilla.org).

Servidor é servidor de aplicação (em Java).

Errei/Omiti em uma coisa, quando falo acesso a dados falo de integração da camada de visualização (escrita em Delphi) e da camada de negócios (servidor de aplicação - em Java)

pcalcado

dead_mouse:
Certo,

Vamos começar pelo fato de o W3C não fazer apenas coisas para a WEB (vide XUL do Mozilla.org).

E o que XUL tem a ver com W3C além de ser baseado em XML? Além do que, XUL é uma linguagem para browsers e web. Chega de blablabla, vamos ao assunto do tópico.

O que exatamente você quer que o servidor de aplicações te forneça?

O que você pode fazer, pelo que entendi do seu problema, é manter sua lógica de negócio em Java e acessá-la via clientes em Delphi, .Net, qualquer coisa, usando um protocolo padrão como SOAP. No que exatamente isso não te atende?

dead_mouse

Sabia que ia ser assim, sempre é…

Mas tudo bem, como quiser senhor

XUL foi submetida para padronização no W3C…

O que o senhor não entendeu (ou não se dispôs a entender) é que eu já carreguei os dados tenho uma classe TCliente que tem os dados que se pode esperar…

Agora, senhor, como faço para jogar isto nos meu COMPONENTES CONSCIENTES DE DADOS?

Estou muito grato pela sua atenção, sei que está disperdiçando seu tempo comigo, mas sei que será recompensado…

Mauricio_Linhares

A lógica de negócios é uma coisa tão complicada assim? Você vai usar alguma coisa mais específica do J2EE? Session Beans? JMS? JTA?

Se o negócio é só bancos de dados mesmo, é melhor botar esses clientes em Delphi pra acessar o banco logo, não?

cv1

Componentes conscientes de dados? Huh!? :?

Mauricio_Linhares

Componentes conscientes de dados? Huh!? :?

Ora, é Delphi :mrgreen:

Vai dizer que você nunca viu os DbConnection, TQuery, TTable e essas TCoisas do Delphi CV? :lol:

dead_mouse

Maurício,

Eu não sei…
Honestamente ainda estou atirando pra cima…

Eu só queria me livrar do Delphi (ao menos por parte).
E quanto a lógica de negócios, acho que fica um pouco complicada pelas questões de segurança (usuários, permissões, etc)…

E também tem o fato de que usando Servlets por exemplo é bem mais rápido de que CGI comuns… O que o Delphi prega.

pcalcado

Para evitar esse tipo de cosia você poderia ser mais específico e menos arrogante, mas isso não é problema meu, só uma dica.

Ah, legal. Mas como falei XUL não está longe da área de atuação do W3C, ao cotnrário de acesso a dados.

O que você quer é mapear os dados que estão vindo do AS para formulários? Bom, não conheço tantod e delphi para afirmar que existe ou não, mas em java você não vai encotnrar algo parecido. O que você vair eceber é uma estrutura de dados,s e você vai exibí-la num formulário, imprimir, exibir na parede… isso é você que transforma.

Não é tão difícil implementar algo que faça um “auto-wiring” (a la Spring) do seu objeto recebido para fomulários baseando-se nos nomes das propriedades. Minha dúvida é quanto isso é útil.

dead_mouse

Componentes conscientes de dados? Huh!? :?

É naquele programinha, o Delphi, lê o resto que tu entende melhor como tá feia a coisa aqui…
Ao menos pelo pcalcado eu já teria apanhado.

:smiley:

dead_mouse

pcalcado:
Para evitar esse tipo de cosia você poderia ser mais específico e menos arrogante, mas isso não é problema meu, só uma dica.

Ah, legal. Mas como falei XUL não está longe da área de atuação do W3C, ao cotnrário de acesso a dados.

ahnn, eu ahco que entendi o que voce quer dizer…
desculpa por ser arrogante, mas não sou, é que não converso muito :smiley:

e quanto ao acesso a dados seria de responsabilidade do W3C sim, pois como você sabe a internet existe e logo-logo tudo será parte dela (inclusive aqueles programinhas meus que estão rodando por aí)

Sei, então o que você sugere que eu faça agora? Sabe de alguma experiência?

Grato

dead_mouse

pcalcado

A parada seria essa mesma.
Eu queria integrar a camada de apresentação (escrita em outra coisa que não Java) e a camada de negócios (escrita em Java)…

Você já viu algo assim?
Quando falo componentes conscientes de dados me falo de componentes que se integram às colunas dos data sets resultados pelas chamadas SQL…

Mauricio_Linhares

dead_mouse:
Maurício,

Eu não sei…
Honestamente ainda estou atirando pra cima…

Eu só queria me livrar do Delphi (ao menos por parte).
E quanto a lógica de negócios, acho que fica um pouco complicada pelas questões de segurança (usuários, permissões, etc)…

E também tem o fato de que usando Servlets por exemplo é bem mais rápido de que CGI comuns… O que o Delphi prega.

Você só está adicionando complicações sem necessidade, se você não vai usar nada que é específico de Java (se é que isso realmente existe) não tem porque não usar Java. E tentar meter goela abaixo dos programadores aí também não vai funcionar não.

Isso tem que ser uma coisa feita com calma, vai mostrando, ensinando e eles vão querer mudar por vontade própria, não vão precisar de uma arma na cabeça não.

Eu, pessoalmente, tenho horror a Delphi, to pagando uma cadeira com ele e não estou programando em Object Pascal, to usando C# pra ver se alivia, mas a ferramenta é terrível e eu realmente não consigo a “produtividade” que todo mundo fala por aí não. Se você não quer usar CGIs pode usar ASP.NET (Eca!!!) com o Delphi, o 8 e o 2005 já tem suporte a aquela gambiarra.

Não use Java porque Java é bonito, use porque resolve o seu problema, se não resolver, não use :mrgreen:

dead_mouse

Bom, aparentemente não existe uma solução fácil para isso…

E agora?

Tipo, que ferramenta seria recomendada para este rato do Delphi se aventurar em Java? JBuilder? NetBeans?

Mas realmente queria usar uma outra camada de apresentação, como XUL por exemplo, vou falar com o pessoal do Mozilla… Talvez tenha uma saída…

Até mais, tô pulando fora do tópico.
Se forem falar mal de mim… ah falem! :smiley:

Mauricio_Linhares

Olha, pra começar, eu indicaria o NetBeans ou o Eclipse, mas vá esquecendo o “clica e arrasta” do Delphi, porque fazer isso é Java é muito difícil.

Compre um bom livro, se você for bom em inglês, pegue esse:

Se não for, esse pode ajudar:

Criado 18 de junho de 2005
Ultima resposta 20 de jun. de 2005
Respostas 23
Participantes 5