Serviço de internet - Web service

O termo serviço da Web ( WS ) é:

  • um serviço oferecido por um dispositivo eletrônico a outro dispositivo eletrônico, comunicando-se entre si através da World Wide Web , ou
  • um servidor em execução em um dispositivo de computador, ouvindo solicitações em uma porta específica em uma rede, servindo documentos da web (HTML, JSON , XML , imagens).

Em um serviço da Web, uma tecnologia da Web, como HTTP, é usada para transferir formatos de arquivo legíveis por máquina, como XML e JSON .

Na prática, um serviço da Web geralmente fornece uma interface baseada na Web orientada a objetos para um servidor de banco de dados, utilizado por exemplo por outro servidor da Web ou por um aplicativo móvel , que fornece uma interface de usuário para o usuário final. Muitas organizações que fornecem dados em páginas HTML formatadas também fornecem esses dados em seus servidores como XML ou JSON, geralmente por meio de um serviço da Web para permitir a distribuição , por exemplo, Exportação da Wikipedia . Outro aplicativo oferecido ao usuário final pode ser um mashup , em que um servidor da Web consome vários serviços da Web em máquinas diferentes e compila o conteúdo em uma interface de usuário.

Serviços da web (genérico)

JavaScript assíncrono e XML

JavaScript e XML assíncrono (AJAX) é uma tecnologia dominante para serviços da Web. Desenvolvendo a partir da combinação de servidores HTTP, clientes JavaScript e Plain Old XML (diferente de SOAP e W3C Web Services), agora é freqüentemente usado com JSON , bem como, ou em vez de XML.

DESCANSO

Representational State Transfer (REST) ​​é uma arquitetura para serviços da Web bem comportados que podem funcionar na escala da Internet.

Em um documento de 2004, o W3C define o seguinte REST como um recurso distintivo chave dos serviços da Web:

Podemos identificar duas classes principais de serviços da Web:

  • Serviços da Web compatíveis com REST , nos quais o objetivo principal do serviço é manipular representações XML de recursos da Web usando um conjunto uniforme de operações sem estado ; e
  • serviços da Web arbitrários, nos quais o serviço pode expor um conjunto arbitrário de operações.
    -  W3C, Arquitetura de Serviços da Web

Serviços da Web que usam linguagens de marcação

Existem vários serviços da Web que usam linguagens de marcação:

API da web

Uma API da Web é um desenvolvimento em serviços da Web em que a ênfase está mudando para comunicações baseadas em transferência de estado representacional (REST) mais simples . APIs Restful não requerem protocolos de serviço da Web baseados em XML ( SOAP e WSDL) para suportar suas interfaces.

Serviços da Web W3C

Em relação aos serviços da Web W3C, o W3C definiu um serviço da Web como:

Um serviço da web é um sistema de software projetado para oferecer suporte à interação máquina a máquina interoperável em uma rede. Ele tem uma interface descrita em um formato processável por máquina (especificamente WSDL ). Outros sistemas interagem com o serviço da web de uma maneira prescrita por sua descrição usando mensagens SOAP, normalmente transmitidas usando HTTP com uma serialização XML em conjunto com outros padrões relacionados à web.

-  W3C, Glossário de serviços da Web

Os W3C Web Services podem usar o protocolo SOAP sobre HTTP, permitindo interações menos dispendiosas (mais eficientes) na Internet do que por meio de soluções proprietárias como EDI / B2B. Além do SOAP sobre HTTP, os serviços da Web também podem ser implementados em outros mecanismos de transporte confiáveis, como o FTP . Em um documento de 2002, o Grupo de Trabalho de Arquitetura de Serviços da Web definiu uma arquitetura de serviços da Web, exigindo uma implementação padronizada de um "serviço da Web".

Explicação

Arquitetura de serviços da Web: o provedor de serviços envia um arquivo WSDL para UDDI. O solicitante de serviços contata a UDDI para descobrir quem é o provedor dos dados de que precisa e, em seguida, contata o provedor de serviços usando o protocolo SOAP. O provedor de serviços valida a solicitação de serviço e envia dados estruturados em um arquivo XML, usando o protocolo SOAP. Este arquivo XML seria validado novamente pelo solicitante do serviço usando um arquivo XSD.

O termo "serviço da Web" descreve uma maneira padronizada de integrar aplicativos baseados na Web usando os padrões abertos XML , SOAP, WSDL e UDDI em um backbone de protocolo da Internet . XML é o formato de dados usado para conter os dados e fornecer metadados em torno deles, SOAP é usado para transferir os dados, WSDL é usado para descrever os serviços disponíveis e UDDI lista quais serviços estão disponíveis.

Um serviço da Web é um método de comunicação entre dois dispositivos eletrônicos em uma rede. É uma função de software fornecida em um endereço de rede na Web com o serviço sempre ativo, como no conceito de computação utilitária.

Muitas organizações usam vários sistemas de software para gerenciamento. Freqüentemente, diferentes sistemas de software precisam trocar dados entre si, e um serviço da Web é um método de comunicação que permite que dois sistemas de software troquem esses dados pela Internet. O sistema de software que solicita dados é chamado de solicitante de serviço , enquanto o sistema de software que processa a solicitação e fornece os dados é chamado de provedor de serviço .

Softwares diferentes podem usar linguagens de programação diferentes e, portanto, há a necessidade de um método de troca de dados que não dependa de uma linguagem de programação específica. A maioria dos tipos de software pode, entretanto, interpretar tags XML. Assim, os serviços da Web podem usar arquivos XML para troca de dados.

Regras para sistemas de comunicação diferentes precisam ser definidas, tais como:

  • Como um sistema pode solicitar dados de outro sistema.
  • Quais parâmetros específicos são necessários na solicitação de dados.
  • Qual seria a estrutura dos dados produzidos. (Normalmente, os dados são trocados em arquivos XML e a estrutura do arquivo XML é validada em um arquivo .xsd.)
  • Quais mensagens de erro exibir quando uma determinada regra de comunicação não for observada, para facilitar a solução de problemas .

Todas essas regras de comunicação são definidas em um arquivo denominado WSDL (Web Services Description Language), que possui uma .wsdlextensão. (Propostas para Serviços da Web Autônomos ( AWS ) buscam desenvolver serviços da Web mais flexíveis que não dependem de regras rígidas.)

Um diretório chamado UDDI (Descrição Universal, Descoberta e Integração) define qual sistema de software deve ser contatado para quais tipos de dados. Portanto, quando um sistema de software precisa de um relatório / dado específico, ele vai ao UDDI e descobre com quais outros sistemas ele pode entrar em contato para receber esses dados. Uma vez que o sistema de software descobre quais outros sistemas ele deve entrar em contato, ele entraria em contato com esse sistema usando um protocolo especial chamado SOAP (Simple Object Access Protocol). O sistema do provedor de serviços primeiro validaria a solicitação de dados referindo-se ao arquivo WSDL e, em seguida, processaria a solicitação e enviaria os dados no protocolo SOAP.

Métodos de design automatizados

Serviços da Web em uma arquitetura orientada a serviços .

Ferramentas automatizadas podem ajudar na criação de um serviço da web. Para serviços que usam WSDL, é possível gerar WSDL automaticamente para classes existentes (um modelo ascendente) ou gerar um esqueleto de classe dado o WSDL existente (um modelo descendente).

  • Um desenvolvedor que usa um modelo ascendente escreve primeiro as classes de implementação (em alguma linguagem de programação) e, em seguida, usa uma ferramenta de geração de WSDL para expor os métodos dessas classes como um serviço da web. É mais simples de desenvolver, mas pode ser mais difícil de manter se as classes originais estiverem sujeitas a alterações frequentes.
  • Um desenvolvedor usando um modelo de cima para baixo grava o documento WSDL primeiro e, em seguida, usa uma ferramenta de geração de código para produzir o esqueleto da classe, para ser concluído conforme necessário. Este modelo é geralmente considerado mais difícil, mas pode produzir designs mais limpos e geralmente é mais resistente a mudanças. Contanto que os formatos de mensagem entre o remetente e o destinatário não mudem, as alterações no próprio remetente e no destinatário não afetam o serviço da web. A técnica também é referida como primeiro contrato, pois o WSDL (ou contrato entre o remetente e o destinatário) é o ponto de partida.
  • Um desenvolvedor usando um Subconjunto WSDL (SWSDL) (ou seja, um WSDL com a operação de subconjunto no WSDL original) pode realizar testes de serviço da Web e desenvolvimento de cima para baixo.

Crítica

Os críticos de serviços da Web não RESTful freqüentemente reclamam que eles são muito complexos e baseados em grandes fornecedores de software ou integradores, em vez de implementações típicas de código aberto .

Também existem preocupações sobre o desempenho devido ao uso dos serviços da Web de XML como um formato de mensagem e SOAP / HTTP no envelope e transporte.

Teste de regressão de serviços da Web

O teste funcional e não funcional de serviços da Web é feito com a ajuda da análise WSDL. O teste de regressão é executado identificando as alterações feitas para atualizar o software. As necessidades de teste de regressão de serviço da Web podem ser categorizadas de três maneiras diferentes, a saber, mudanças em WSDL, mudanças no código e novo teste seletivo de operações. Podemos capturar as três necessidades acima em três formas intermediárias de WSDL de subconjunto, a saber, WSDL de diferença (DWSDL), WSDL de unidade (UWSDL) e WSDL reduzido (RWSDL), respectivamente. Esses três WSDLs de Subconjunto são então combinados para formar WSDL Combinado (CWSDL) que é posteriormente usado para teste de regressão do serviço da web. Isso ajudará no gerenciamento automatizado de mudanças de serviço da Web (AWSCM), realizando a seleção dos casos de teste relevantes para construir um conjunto de testes reduzido do antigo conjunto de testes.

O teste de serviços da Web também pode ser automatizado usando várias ferramentas de automação de teste como SOAP UI, Oracle Application Testing Suite (OATS), Unified Functional Testing, Selenium, etc.

Gerenciamento de mudança de serviço da web

Trabalho relacionado à captura e visualização das alterações feitas em um serviço da web. A visualização e o cálculo das alterações podem ser feitos na forma de artefatos intermediários (WSDL de subconjunto). O insight sobre o cálculo do impacto da mudança é útil em testes, desenvolvimento de cima para baixo e redução de testes de regressão. AWSCM é uma ferramenta que pode identificar operações de subconjunto em um arquivo WSDL para construir um subconjunto WSDL.

Veja também

Notas

Referências

links externos