A Java XML API for Web Services é uma biblioteca de Web Services para Java, que permite implementar serviços baseados nas normas XSD, WSDL e SOAP.
A JAX-WS define o mapeamento de WSDL para Java e vice-versa. O mapeamento pode ser configurado através de anotações no WSDL ou no código Java.
Com a JAX-WS é possível implementar Web Services partindo de um contrato WSDL ou partindo de código Java. A abordagem preferida para garantir a interoperabilidade é partir do contrato WSDL.
Com a JAX-WS é também possível criar código cliente de invocação de Web Services.
A JAX-WS é uma biblioteca de "chamadas remotas de procedimento" (em inglês, RPC - Remote Procedure Call). A figura seguinte apresenta a estrutura de um RPC genérico.
O objectivo do RPC é permitir ao programa cliente invocar funções do programa servidor (remotas) como se fossem funções locais. Todos os aspectos de comunicação e de representação de dados são tratados pela biblioteca de RPC e por objectos gerados automaticamente designados por stubs e ties.
Os stubs e ties são objectos que convertem da representação de dados no programa cliente e no programa servidor (ex. objectos Java) para uma representação em formato standard, para transportar na rede (ex. XML).
Passos de execução de um RPC:
Enquanto a chamada remota foi efectuada, o programa cliente ficou bloqueado à espera. A chamada bloqueante é síncrona.
A figura seguinte mostra em detalhe a estrutura do JAX-WS.
O contrato WSDL define o acordo entre cliente e servidor. Como é independente da plataforma, permite que os programas cliente e servidor sejam desenvolvidos em plataformas diferentes (ex. Java e Microsoft Dot Net).
© Docentes de Sistemas Distribuídos,
Dep. Eng. Informática,
Técnico Lisboa