Web Services e Arquitetura Orientada a Serviços
Web Services e Arquitetura Orientada a Serviços
Last updated
Web Services e Arquitetura Orientada a Serviços
Last updated
Os Web Services representam um padrão de transporte, interface e dados entre consumidores e provedores de serviço, podem ser definidos como programas modulares que visam garantir a interoperabilidade de um serviço.
A tecnologia de Web Services é usada como uma forma de compartilhar aplicações usando módulos que são descritos, publicados e invocados através de uma rede de forma transparente. Os Web Services se baseiam no padrão arquitetural SOA (Service-Oriented Architecture).
Service-Oriented Architecture (SOA)
O padrão arquitetural SOA tem como princípio que as funcionalidades implementadas de por uma aplicação sejam disponibilizadas na forma de serviços. O SOA faz a definição de uma infraestrutura para que aplicações troquem dados e participem de processo de negócio independente dos sistemas operacionais ou linguagens de programação utilizadas para suas implementações. No SOA há a interação de 3 elementos:
Service Provider (provedor de serviço): Entidade responsável por criar o serviço web, descreve o serviço em um formato padrão compreensível por qualquer cliente e publica os detalhes sobre o serviço em um registro central que esteja publicamente disponível para todos os interessados;
Service Broker/Registry (registro de serviço): é a localização central onde o provedor de serviço pode relacionar seu serviço Web e, no qual um cliente de Serviços Web pode realizar pesquisas sobre serviços;
Service Requester/User (cliente do serviço): é o elemento que solicita o serviço a um service broker que, por sua vez, encontra um provedor de serviços disponível e repassa o pedido para esse provedor.
Protocolo SOAP
O protocolo SOAP (Simple Object Accesss Protocol) é o responsável pela troca de informação, dados e acesso a aplicações remotas, baseado em XML e mensagens de transporte HTTP, sendo assim realiza a troca de informações de forma independente de plataforma e/ou linguagens de programação.
WSDL (Web Services Description Language)
O Web Services Description Language (WSDL) é uma linguagem baseada em XML que permite com que os Web Services disponibilizem acesso as suas informações de uma forma padronizada e organizada através de interfaces.
A principal função do WSDL é disponibilizar para o cliente um serviço e suas funções disponíveis independentemente de plataforma ou linguagem, fazendo assim com que uma aplicação Java se comunique com uma aplicação Perl ou com qualquer outra linguagem.
UDDI (Universal Description Discovery and Integration)
O Universal Description Discovery and Integration (UDDI), em português: Integração e Descoberta de Descrição Universal é uma forma de publicar WSDLs para que os clientes de um determinado serviço possam descobri-los e consumir os serviços que os mesmos disponibilizam. O UDDI descreve um conjunto de definições que descrevem os formatos de dados usados e como o mesmo pode ser acessado. A sua arquitetura técnica se divide em três partes:
UDDI Business Registry: É uma implementação operacional completa da especificação UDDI, que possibilita a qualquer cliente buscar dados UDDI existentes e possibilita as empresas se registrarem bem como registram seus serviços.
Modelo de informação UDDI: É um XML Schema usado para a descrição de empresas e seus respectivos Serviços Web.
API UDDI: A API UDDI é uma API baseada em SOAP para buscar e publicar dados UDDI.
Princípios de Projetos de Serviços
Princípios
Descrição
Contrato de Serviço
Os serviços expressam seus propósitos e capacidades por meio de um contrato em um ou mais documentos de descrição de serviços.
Serviço de Baixo Acoplamento
Os serviços devem minimizar dependências e só ter ciências deles próprios
Abstração do Serviço
Os serviços só devem publicar o contrato e esconder dos clientes a sua lógica interna.
Reusabilidade do Serviço
Os serviços podem ser reutilizados por outros serviços para criação de webservices menos refinados.
Autonomia do Serviço
Os serviços controlam seu ambiente e recursos subjacentes para que permaneçam independentes, sendo assim se torna consistentes e confiáveis.
Serviço sem Estado
Os serviços transferem a responsabilidade do gerenciamento de estado para os consumidores, desde que isso não cause conflito com o que é gerenciado pela autonomia do serviço.
Descoberta do Serviço
Os serviços são descritos como metadados para que seja possível a sua descoberta e para que o contrato de serviço possa ser compreendido, permitindo que eles sejam recursos (re)utilizáveis.
Composição do Serviço
Os serviços podem ser compostos dentro de serviços menos refinados, independente do tamanho e complexidade da composição em que eles se encaixam.
SOA, SOAP, WSDL, UDDI, HTTP, REST, Web Services