como fazer para dois aplicativos trocarem informações entre sí? sendo que ambos estão na mesma maquina, um é feito em java e o outro em uma linguagem que nao é java.
se tiver q usar algum recurso especifico do s.o., então dou preferencia para windows 
comunicação entre aplicativos
8 Respostas
Quero fazer a gui de um sistema em delphi, e o processamento em um sistema em java que rodaria em segundo plano. Imagino que as informações que iriam transitar entre os aplicativos seriam strings, numeros e, em algum casos, imagens
É, baseado noque eu já ouvi falar sobre XML, eu cheguei a pensar nisso. Mas nao sei direito como funciona esse esquema, será que voce podia me explicar isso?
Quero fazer a gui de um sistema em delphi, e o processamento em um sistema em java que rodaria em segundo plano. Imagino que as informações que iriam transitar entre os aplicativos seriam strings, numeros e, em algum casos, imagens
É, baseado noque eu já ouvi falar sobre XML, eu cheguei a pensar nisso. Mas nao sei direito como funciona esse esquema, será que voce podia me explicar isso?
Escreve um protocolo simples e faz via Socket.
Ouve em uma porta no java (ex: 40000) e conecta usando o Delphi…
Delphi -> Java:40000
Delphi -> Java - “ARQUIVO\r\n”
Java -> Delphi - “OK” (poderia ser ERR ou o que voce quiser, dependendo do status)
Delphi -> Java - “ARQUIVO” (terminando em algum conjunto de chars, pra voce reconhecer o “final” do arquivo)
Java -> “OK”
E assim por diante…
Delphi -> Java - “NUMERO”
Java -> Delphi - “OK”
Enfim, desenvolve uma comunicacao entre eles =D
Poisé, eu tinha pensado em sockets, mas isso me parece meio q gambiarra, entao antes de usar isso, eu queria ver se havia uma forma mais elegante.
Além de q, eu nao sei trabalhar com sockets em delphi
E quanto à sugestão do XML… tem alguma vantagem/desvantagem em relação à solução com sockets? E como poderia funcionar isso?
Poisé, eu tinha pensado em sockets, mas isso me parece meio q gambiarra, entao antes de usar isso, eu queria ver se havia uma forma mais elegante.
Além de q, eu nao sei trabalhar com sockets em delphi
Além de q, eu nao sei trabalhar com sockets em delphi
E quanto à sugestão do XML… tem alguma vantagem/desvantagem em relação à solução com sockets? E como poderia funcionar isso?
Vantagem: Não escuta em uma porta, menos exploitable.
Desvantagem: Precisa de permissão de escrita de arquivos, e escreve varios arquivos (afinal voce nao vai por conteudo binario da imagem no meio do XML).
XML é um saco de ler/escrever em java e Socket me parece a melhor maneira, mas enfim…
Tente usar RMI (Remote Method Invocation), eu acho a maneira mais facil para fazer a comunicação.
eu havia pensado em RMI… bem, nunca usei, nao sei usar, e apenas sei superficialmente doque se trata.
é possivel utilizar isso com 2 aplicativos de diferentes linguagens?
e usando socket, eu posso escrever os dados da imagem diretamente no socket e, no delphi, ler e jogar direto na tela, ou preciso fazer algum tipo de conversão, por se tratar de linguagens diferentes e q talvez transmitam a imagem, internamente, de um jeito diferente?
eu havia pensado em RMI… bem, nunca usei, nao sei usar, e apenas sei superficialmente doque se trata.
é possivel utilizar isso com 2 aplicativos de diferentes linguagens?
é possivel utilizar isso com 2 aplicativos de diferentes linguagens?
e usando socket, eu posso escrever os dados da imagem diretamente no socket e, no delphi, ler e jogar direto na tela, ou preciso fazer algum tipo de conversão, por se tratar de linguagens diferentes e q talvez transmitam a imagem, internamente, de um jeito diferente?
#1: RMI é só JAVA.
#2: Pode ler e jogar direto, a unica diferença poderia ser charset (e isso voce resolve com um ou outro comando)
#3: Acho que dá pra usar CORBA no lugar do RMI, mas acho que CORBA e etc são soluções longe de serem elegantes…
Vai depender das informacoes q vc quer passar e dos tipos de aplicativos.
BUT, XML já não resolve?