Linguagem de descrição de serviços Web - Web Services Description Language

Linguagem de descrição de serviços Web
WSDL.svg
Extensão de nome de arquivo
.wsdl
Tipo de mídia da Internet
aplicativo / wsdl + xml
Desenvolvido por World Wide Web Consortium
Contido por XML
Padrão 2.0 Recomendação

A Descrição Web Language Services ( WSDL / w ɪ z d əl / ) é um XML baseado linguagem de descrição de interface que é usado para descrever a funcionalidade oferecida por um serviço de web . O acrônimo também é usado para qualquer descrição WSDL específica de um serviço da web (também conhecido como arquivo WSDL ), que fornece uma descrição legível por máquina de como o serviço pode ser chamado, quais parâmetros ele espera e quais estruturas de dados ele retorna . Portanto, seu propósito é aproximadamente semelhante ao de uma assinatura de tipo em uma linguagem de programação.

A versão atual do WSDL é WSDL 2.0. O significado da sigla mudou da versão 1.1, onde o "D" significava "Definição".

Descrição

Representação de conceitos definidos por documentos WSDL 1.1 e WSDL 2.0.

O WSDL descreve serviços como coleções de terminais de rede ou portas . A especificação WSDL fornece um formato XML para documentos com essa finalidade. As definições abstratas de portas e mensagens são separadas de seu uso concreto ou instância, permitindo a reutilização dessas definições. Uma porta é definida pela associação de um endereço de rede a uma ligação reutilizável e uma coleção de portas define um serviço. As mensagens são descrições abstratas dos dados que estão sendo trocados e os tipos de porta são coleções abstratas de operações suportadas. O protocolo concreto e as especificações de formato de dados para um tipo de porta específico constituem uma ligação reutilizável, onde as operações e mensagens são então ligadas a um protocolo de rede concreto e formato de mensagem. Dessa forma, WSDL descreve a interface pública para o serviço da web.

WSDL é freqüentemente usado em combinação com SOAP e um esquema XML para fornecer serviços da Web pela Internet . Um programa cliente que se conecta a um serviço da Web pode ler o arquivo WSDL para determinar quais operações estão disponíveis no servidor. Quaisquer tipos de dados especiais usados ​​são incorporados ao arquivo WSDL na forma de esquema XML. O cliente pode então usar o SOAP para realmente chamar uma das operações listadas no arquivo WSDL, usando, por exemplo, XML sobre HTTP .

A versão atual da especificação é 2.0; a versão 1.1 não foi endossada pelo W3C, mas a versão 2.0 é uma recomendação do W3C . WSDL 1.2 foi renomeado para WSDL 2.0 por causa de suas diferenças substanciais do WSDL 1.1. Ao aceitar a ligação a todos os métodos de solicitação HTTP (não apenas GET e POST como na versão 1.1), a especificação WSDL 2.0 oferece melhor suporte para serviços da Web RESTful e é muito mais simples de implementar. No entanto, o suporte para esta especificação ainda é pobre em kits de desenvolvimento de software para Web Services, que geralmente oferecem ferramentas apenas para WSDL 1.1. Por exemplo, a versão 2.0 do Business Process Execution Language (BPEL) suporta apenas WSDL 1.1.

Termo WSDL 1.1 Termo WSDL 2.0 Descrição
Serviço Serviço Contém um conjunto de funções do sistema que foram expostas aos protocolos baseados na web.
Porta Endpoint Define o endereço ou ponto de conexão para um serviço da web. Normalmente é representado por uma string de URL HTTP simples .
Obrigatório Obrigatório Especifica a interface e define o estilo de ligação SOAP ( RPC / Documento) e o transporte ( Protocolo SOAP ). A seção de ligação também define as operações.
PortType Interface Define um serviço da Web, as operações que podem ser executadas e as mensagens que são usadas para executar a operação.
Operação Operação Define as ações SOAP e a maneira como a mensagem é codificada, por exemplo, "literal". Uma operação é como um método ou chamada de função em uma linguagem de programação tradicional.
Mensagem N / D Normalmente, uma mensagem corresponde a uma operação. A mensagem contém as informações necessárias para realizar a operação. Cada mensagem é composta por uma ou mais partes lógicas. Cada parte está associada a um atributo de digitação de mensagem. O atributo do nome da mensagem fornece um nome exclusivo entre todas as mensagens. O atributo part name fornece um nome exclusivo entre todas as partes da mensagem envolvente. As partes são uma descrição do conteúdo lógico de uma mensagem. Na ligação RPC, uma ligação pode fazer referência ao nome de uma parte para especificar informações específicas de ligação sobre a parte. Uma parte pode representar um parâmetro na mensagem; as ligações definem o significado real da parte. As mensagens foram removidas no WSDL 2.0, no qual os tipos de esquema XML para definir corpos de entradas, saídas e falhas são referidos de forma simples e direta.
Tipos Tipos Descreve os dados. A linguagem XML Schema (também conhecida como XSD ) é usada (embutida ou referenciada) para essa finalidade.

WSDL de subconjunto

WSDL de subconjunto (SWSDL) é um WSDL com as operações de subconjunto de um WSDL original. Um desenvolvedor pode usar SWSDL para acessar o serviço de subconjunto e, assim, lidar com o subconjunto do código do serviço da web. Um WSDL de subconjunto pode ser usado para realizar testes de serviço da web e desenvolvimento de cima para baixo. O fatiamento de um serviço da Web pode ser feito usando um WSDL de Subconjunto para acessar o Serviço de Subconjunto. O serviço de subconjunto pode ser categorizado em camadas usando SWSDL. SWSDLs são usados ​​para análise de serviço da Web, teste e desenvolvimento de cima para baixo. AWSCM é a ferramenta pioneira para construir SWSDLs com sucesso.

Arquivo WSDL de exemplo

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://www.w3.org/ns/wsdl" 
             xmlns:tns="http://www.tmsws.com/wsdl20sample" 
             xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/"
             xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/"
             targetNamespace="http://www.tmsws.com/wsdl20sample">

<documentation>
    This is a sample WSDL 2.0 document. 
</documentation>

<!-- Abstract type -->
   <types>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns="http://www.tmsws.com/wsdl20sample"
                targetNamespace="http://www.example.com/wsdl20sample">
                 
         <xs:element name="request"> ... </xs:element>
         <xs:element name="response"> ... </xs:element>
      </xs:schema>
   </types>

<!-- Abstract interfaces -->
   <interface name="Interface1">
      <fault name="Error1" element="tns:response"/>
      <operation name="Get" pattern="http://www.w3.org/ns/wsdl/in-out">
         <input messageLabel="In" element="tns:request"/>
         <output messageLabel="Out" element="tns:response"/>
      </operation>
   </interface>

<!-- Concrete Binding Over HTTP -->
   <binding name="HttpBinding" interface="tns:Interface1" 
            type="http://www.w3.org/ns/wsdl/http">
      <operation ref="tns:Get" whttp:method="GET"/>
   </binding>
   
<!-- Concrete Binding with SOAP-->
   <binding name="SoapBinding" interface="tns:Interface1" 
            type="http://www.w3.org/ns/wsdl/soap" 
            wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"
            wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response">
      <operation ref="tns:Get" />
   </binding>

<!-- Web Service offering endpoints for both bindings-->
   <service name="Service1" interface="tns:Interface1">
      <endpoint name="HttpEndpoint" 
                binding="tns:HttpBinding" 
                address="http://www.example.com/rest/"/>
      <endpoint name="SoapEndpoint" 
                binding="tns:SoapBinding" 
                address="http://www.example.com/soap/"/>
   </service>
</description>

História

WSDL 1.0 (setembro de 2000) foi desenvolvido pela IBM , Microsoft e Ariba para descrever Web Services para seu kit de ferramentas SOAP. Foi construído combinando duas linguagens de descrição de serviço: NASSL (Network Application Service Specification Language) da IBM e SDL (Service Description Language) da Microsoft.

WSDL 1.1, publicado em março de 2001, é a formalização do WSDL 1.0. Nenhuma mudança significativa foi introduzida entre 1.0 e 1.1.

WSDL 1.2 (junho de 2003) era um rascunho de trabalho no W3C, mas tornou-se WSDL 2.0. De acordo com o W3C: WSDL 1.2 é mais fácil e flexível para desenvolvedores do que a versão anterior. WSDL 1.2 tenta remover recursos não interoperáveis ​​e também define melhor a ligação HTTP 1.1. WSDL 1.2 não era suportado pela maioria dos servidores / fornecedores SOAP.

WSDL 2.0 tornou-se uma recomendação W3C em junho de 2007. WSDL 1.2 foi renomeado para WSDL 2.0 porque tem diferenças substanciais do WSDL 1.1. As mudanças são as seguintes:

  • Adicionada mais semântica à linguagem de descrição
  • Construções de mensagem removidas
  • Sobrecarga do operador não suportada
  • PortTypes renomeados para interfaces
  • Portas renomeadas para endpoints

Considerações de segurança

Como os arquivos WSDL são uma especificação baseada em XML para descrever um serviço da web, os arquivos WSDL são suscetíveis a ataques. Para atenuar a vulnerabilidade desses arquivos, é recomendável limitar o acesso a arquivos WSDL gerados, definir restrições de acesso adequadas às definições de WSDL e evitar definições desnecessárias em serviços da web.

Veja também

Referências

links externos