SOA vs Web Services
Serviços da Web são usados para construir aplicativos que podem enviar/receber mensagens usando SOAP sobre HTTP. Um serviço da web é um pacote de funcionalidade divulgado oferecido pela web. SOA é um conjunto de conceitos de arquitetura utilizados para o desenvolvimento e integração de serviços. Os serviços da Web podem ser usados para implementar SOA. Mas é apenas um único método de realizar aplicativos baseados em SOA.
O que são Web Services?
Um Web Service é um método de comunicação pela rede. De acordo com o W3C, um serviço da Web é um sistema dedicado a dar suporte a transações máquina a máquina em uma rede. É uma API da Web descrita em WSDL (Web Service Description Language), e os serviços da Web geralmente são autocontidos e autodescritivos. Os serviços da Web podem ser descobertos usando o protocolo UDDI (Universal Description, Discovery and Integration). Ao trocar mensagens SOAP (Simple Object Access Protocol) normalmente por HTTP (com XML), outros sistemas podem interagir com serviços da Web.
Serviços da Web são usados de várias maneiras, como RPC (Remote Procedure Calls), SOA (Service Oriented Architecture) e REST (Representational State Transfer). Existem duas metodologias de projeto automatizadas para o desenvolvimento de serviços da Web. A abordagem de baixo para cima trata primeiro da criação das classes e, em seguida, do uso de ferramentas de geração de WSDL para compor essas classes como serviços da Web. A abordagem top-down lida com a definição das especificações WSDL e, em seguida, o uso de ferramentas de geração de código para gerar as classes correspondentes. Os serviços da Web têm dois usos principais. Eles podem ser usados como componentes de aplicativos reutilizáveis e/ou para conectar aplicativos da Web executados em diferentes plataformas.
O que é SOA?
SOA (Service-oriented architecture) é um conjunto de conceitos arquiteturais utilizados para o desenvolvimento e integração de serviços. SOA trata da computação distribuída, na qual os consumidores consomem um conjunto de serviços interoperáveis. Vários consumidores podem consumir um único serviço e vice-versa. Portanto, SOA é frequentemente usado para integrar vários aplicativos que usam plataformas diferentes. Para que a SOA opere adequadamente, os serviços devem ser acoplados de maneira flexível aos sistemas operacionais e às tecnologias dos aplicativos subjacentes. Os desenvolvedores de SOA criam serviços usando unidades de funcionalidade e os disponibilizam pela Internet. Os serviços da Web podem ser usados para implementar a arquitetura SOA. Nesse caso, os web services tornam-se as unidades de funcionalidade de SOA acessíveis pela internet. Web services podem ser usados por qualquer pessoa sem se preocupar com as plataformas ou linguagens de programação utilizadas para desenvolvê-los. SOA é construído diretamente sobre o princípio de orientação a serviços, que trata de serviços com interface simples que podem ser acessados de forma independente pelos usuários sem se preocupar com a implementação da plataforma real do serviço.
Qual é a diferença entre SOA e Web Services?
Existem algumas diferenças importantes entre serviços da Web e SOA. Os serviços da Web definem uma tecnologia da Web que pode ser usada para construir aplicativos que podem enviar/receber mensagens usando SOPA sobre HTTP. No entanto, SOA é um modelo de arquitetura para implementar aplicativos baseados em serviços fracamente acoplados. Os serviços da Web podem ser usados para implementar aplicativos SOA. Embora a abordagem de serviço da Web para SOA tenha se tornado muito popular, ela é apenas um método único de implementação de SOA. SOA pode ser implementado usando qualquer outra tecnologia baseada em serviços (por exemplo, CORBA e REST).