WSIF e WSDL
Há um relacionamento estreito entre o WSIF (Web Services Invocation Framework) baseado em metadados e a semântica evolutiva do WSDL (Web Services Description Language).
No WSDL, um serviço é definido em três seções distintas:
- O portType. Esta seção define a interface abstrata oferecida pelo serviço. Um portType define um conjunto de operações. Cada operação pode ser de Entrada-Saída (pedido-resposta), Somente-Entrada, Somente-Saída e Saída-Entrada (Solicitação-Resposta). Cada operação define as mensagens de entrada e/ou de saída. Uma mensagem é definida como um conjunto de partes, e cada parte tem um tipo definido por esquema.
- A ligação. Esta seção define como mapear entre o portType abstrato e um formato e protocolo de um serviço real. Por exemplo, a ligação SOAP define o estilo de codificação, o cabeçalho SOAPAction, o espaço de nomes do corpo (o targetURI), etc.
- A porta. Esta seção define a localização (terminal) do serviço disponível. Por exemplo, o endereço HTTP da Web no qual um serviço SOAP está disponível.
Atualmente em WSDL, cada porta tem uma e somente uma ligação e cada ligação tem um único portType. Mas (o que é mais importante) cada serviço (portType) pode ter várias portas, cada uma das quais representa uma localização e ligação alternativas para acessar esse serviço.
O WSIF (Web Services Invocation Framework) segue a semântica de WSDL tanto quanto possível:
- A API de chamada dinâmica do WSIF expõe diretamente os equivalentes de tempo de execução do modelo de WSDL. Por exemplo, a chamada de uma operação envolve a execução de uma operação com uma mensagem de entrada.
- A WSDL tem pontos de extensão que suportam a adição de novas portas e ligações. Isto permite que a WSDL descreva novos sistemas. O conceito equivalente em WSIF é um provedor, que vincula o serviço WSIF à uma implementação de serviço subjacente. Isso permite que o WSIF compreenda uma classe de extensões e assim suporte um novo tipo de implementação de serviço.
Como uma estrutura de chamada baseada em metadados, WSIF segue o design dos metadados. Conforme o WSDL é estendido, o WSIF é atualizado para acompanhá-lo.
O sistema de tipo primário do WSIF é o esquema XML. O WSIF suporta a chamada utilizando proxies dinâmicos, os quais por sua vez suportam sistemas de tipo Java™, mas quando você utilizar a interface WSIFMessage para chamar um serviço da Web por meio da API do WSFI, será necessário preencher os objetos WSIFMessage com dados baseados nos tipos de esquema XML, conforme definido no documento WSDL. Você deve definir seus tipos de objetos por um mapeamento canônico e fixo de tipos de esquemas para o ambiente de tempo de execução.