Tomcat como servidor de XMLRPC

5 respostas
bigodines

Olá pessoal,

estou desenvolvendo um projeto de internet computing (no estilo do projeto BOINC, o mesmo usado no SETI@Home) e pretendo implementá-lo através de webservices. Bueno, dito isso, tenho duas dúvidas:

1 - É possível utilizar o só tomcat como um servidor xmlrpc? (claro que é possível utilizar o tomcat pra isso. mas eu quero saber se é possível sem o uso de classes ou aplicações adicionais…)

2 - Uma vez que eu consiga estabelecer o tomcat como servidor… é possível enviar o código fonte (java) que deverá ser executado aos clientes?

Eu já consegui implementar usando Tomcat+AXIS para usar SOAP ao invés de XMLRPC mas o pessoal que está desenvolvendo os clientes tá BASTANTE resistente para usar essa tecnologia, então pra não me incomodar, eu gostaria de tentar implementar o servidor usando xmlrpc para troca de mensagens.

conto com a ajuda de vocês,

um abraço.

5 Respostas

Luca

Olá

Procure por Apache XML-RPC.

[]s
Luca

T

Você não quer usar o Sun Web Developer Pack? Se não me engano, ele tem o Tomcat incorporado, além de um instalador, e suporta várias das tecnologias XML (não só SOAP).

http://developers.sun.com/web/swdp/

Para o tal “código Java” em clientes veja o “Java Web Start”. Basicamente o cliente vai clicar em um link de seu site, e baixar uma aplicação.

O problema é que o código Java pode deixar a máquina do cliente muito lenta, porque ocupa memória demais, e isso é ruim - não se esqueça de reduzir a prioridade para não “afogar” a máquina cliente.

bigodines

Primeiro Luca e thingol obrigado pelas respostas rápidas :slight_smile:

@Luca: Sobre o apache xml-rpc eu havia lido mas quando li esta parte:

Use of the WebServer has grown very popular amongst users of Apache XML-RPC. Why this is the case, can hardly be explained, because the WebServer is at best a workaround, compared to full blown servlet engines like Tomcat or Jetty. For example, under heavy load it will almost definitely be slower than a real servlet engine, because it does neither support proper keepalive (multiple requests per physical connection) nor chunked mode (in other words, it cannot stream requests).
(http://ws.apache.org/xmlrpc/server.html) eu pensei que o tomcat já vinha com a parada incorporada… daí n teria por que usar essas bibliotecas.

Mas valeu a dica.

@thingol: eu havia lido sobre o JWSDP mas eu já baixei e configurei o tomcat na mão aqui. n queria ter de repetir todo o processo só pra utilizá-lo como um servidor de xmlrpc.

Sobre a parada do código, quando eu estava fazendo o servidor com SOAP eu achei esse artigo: http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-grid.html que (ao menos aos olhos de um leigo) mandava o código aos clientes para executar não é?

Pq a idéia de internet computing é criar uma aplicação que será utilizada qdo o computador estiver ocioso para processar alguma coisa. Eu posso fazer um algoritmo fixo e enviar pelo service só os parâmetros. Mas seria um tesão se eu consguisse enviar o código que deverá ser processado também…

T

Basicamente não é que ele “manda” alguma coisa; o cliente é que, periodicamente, deve solicitar a execução de um web service que informa se há uma versão nova do cliente.
Se houver, então deve baixar o novo “.jar”, e então, usando uma classe derivada de java.lang.ClassLoader, executar a nova versão das classes.
Obviamente isso deve ser feito com certo cuidado, já que as classes antigas continuam em memória até que o programa seja reiniciado. (a rigor elas permanecem até que todas as referências às classes antigas sejam eliminadas e o classloader antigo seja “limpo” pelo garbage collector, mas para efeitos práticos isso é difícil de ocorrer sem muita disciplina na programação)

bigodines

beleza. é isso mesmo.

e é fácil fazer trafegar esse “upgrade” pelo xmlrpc? devo usar aquela feature de “streaming” do apache xml-rpc?

Criado 4 de junho de 2007
Ultima resposta 4 de jun. de 2007
Respostas 5
Participantes 3