Java como servidor para um cliente qualquer

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:

Um dos poucos caoss onde WebServices sao ideais, IMHO

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

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

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…

: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:

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…

[quote=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[/quote]

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.

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…

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.

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)

[quote=dead_mouse]Certo,

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

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?

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…

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?

Componentes conscientes de dados? Huh!? :?

Componentes conscientes de dados? Huh!? :?[/quote]

Ora, é Delphi :mrgreen:

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

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.

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.

Componentes conscientes de dados? Huh!? :?[/quote]

É 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:

[quote=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.

[/quote]

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