Bom dia,
O conceito de Web Services (WS) é um pouco mais complicado do que parece.
Todo mundo fala sobre Web Services, mas ninguém fala da mesma coisa.
O conceito foi definido e implementado no contexto de [b]Web Services Activity[/b] no W3C.
Existem várias tecnologias por trás dos serviços web ou Web Services (WS) :
----> Serviços Web de tipo Representational State Transfer (REST) : expõem totalmente funcionalidades como um conjunto de recursos (URI) identificáveis e acessíveis pela sintaxe e semântica do protocolo HTTP. Web Services REST são baseados em arquitetura web e seus padrões básicos: HTTP, URI.
----> Serviços Web WS-* expõem esses recursos na forma de serviços executáveis remotamente. Especificações são baseadas em SOAP e WSDL e UDDI para transformar os problemas de integração herdadas do mundo Middleware para fins de interoperabilidade. Estes Serviços Web WS-* também são definidos de acordo com o tipo de arquitetura SOA.
O consórcio ebXML usou para automatizar o intercâmbio entre empresas no quadro do famoso B2B.
Nota : XML-RPC pode ser usado em vez de SOAP.
SOAP não está ligado ao HTTP
Definições e acrônimos :
SOAP (Simple Object Access Protocol)
WSDL (Web Service Description Language)
UDDI (Universal Description Discovery and Integration)
SOA (Service Oriented Architecture)
Plataformas para Web Services (WS) :
—> JAX-WS que é a implementação de referência do Java EE é de código aberto e integrado no GlassFish e utilizado em outros ambientes.
—> Apache CXF Fusão entre XFire (CodeHaus) e Celtix (Objectweb)
Conclusão
Não é necessário o uso de [b]WS-*[/b] com o [b]SOAP [/b] ou [b]XML-RPC[/b] numa relação cliente-servidor simples. Já que é mais para SOA e B2B e arquiteturas distribuídas , etc ...
O que pode ser interessante é usar o [b]REST [/b] e mensagens JSON ou XML .
Mas ainda mais fácil para uma arquitetura cliente-servidor é simplesmente usar HTTP para acessar um Servlet.
Usar SOCKET também pode ser uma opção.
Tem também outras opções mais complicadas para aplicações distribuídas
- RMI, JINI, GigaSpaces
- EJB
- CORBA , JavaIDL
- JGroups
- GridGain
- Terracotta
etc …
etc …