Seleção de dados com URL string e XML

Não sei se coloquei um titulo de acordo com a mensagem, mas ai vai:

Estou desenvolvendo uma pequena intraweb da seguinte maneira:

swing no front;
servlets, hibernate no servidor;

Vai funcionar da seguinte forma:

Para inserção ou atualização eu vou mandar uma url com os valores para um determinado servlet e ele vai se encarregar de fazer isso junto com o hibernate.

Para selecionar dados eu vou enviar uma solicitação através da url, o servlet recebe seleciona os dados, monta um arquivo xml e me devolve. A app cliente recebe e preenche uma tabela temporário gerenciada pelo prevlayer que eu vou ter na classe local. Essa tabela será esvaziada quando o formulário for fechado. Da mesma forma, qdo eu abrir um formulário que possua chaves estrangeiras como cidades, eu vou carregar localmente os dados da chave estrangeira para não precisar fazer a busca pela rede.

Seria a melhor maneira de trabalhar com a seleção de dados e pesquisas ? Andei dando uma olhada em classes proxy, mas não sei se é aplicável na minha situação (e tb não entendi muito bem elas ainda, alguém indica algum material ? :-D)

OBS: Ainda não criei o processo de seleção, mas o de inserção e atualização ta funcionando.

Isto é um trabalho para web services…

Eu sei, eu sei, já usaram web services para tudo (e em lugares que você nem suspeita - assista a alguma daquelas palestras como as do JustJava ou ConnectionJava.com.br só para você ter uma idéia), mas o que você está fazendo no braço é o típico uso de web services.

Sua arquitetura:

App. Swing -> Pseudo-Web Services -> http -> Servlet -> Hibernate -> BD

Digo “Pseudo” porque provavelmente você está passando os parâmetros via query string ou post. Existe uma forma padrão para fazer isso em XML.

O que normalmente alguém diria para você fazer:

App. Swing -> Web Services -> Web Services Endpoint (Servlet) -> Sua classe de aplicação -> Hibernate -> BD

A sua classe de aplicação pode ser um servlet normal, um POJO, ou então um EJB. Você precisa seguir alguns padrões, e talvez a aplicação fique um pouco mais pesada, mas fica mais escalável e mais flexível.

Dê uma olhada no Web Services Toolkit (JAXP, JAXB e outras coisas que têm J e X na sigla), antes de ficar parseando XML no braço e definindo protocolos proprietários.