Web services



  1. WEB SERVICES

Web Services ou Serviços Web são usando para disponibilizar serviços interativos na Web ou internet, podendo ser acessados por outras aplicações, são identificado por uma URI(Unique Resource Identifier), descritos e definidos usando XML. O motivo que o torna atrativo é o fato deste modelo ser baseado em tecnologias standars, em particular XML e HTTP. Web Services permite que aplicações interajam entre si independentes de sua plataforma de desenvolvimento, essas aplicações enviam e recebem dados em formato XML, essa e a única premissa para a comunicação de um serviço web.

A XML(Extensilble Markup Lenguage, ou Linguagem de Marcação Estendida) e uma tecnologia que facilita a análise de documentos por programas, que permite a troca e exibição de conteúdo de bases de dados, e pode também ser utilizado para troca de mensagens na comunicação de sistemas distribuídos, não será realizado um estudo aprofundado da tecnologia XML já que o mesmo não se enquadra no escopo do artigo.

 Utilizando essa tecnologia podemos desenvolver softwares ou componentes de softwares capazes de interagir, seja enviando ou recebendo informações, com outros softwares, não importando a linguagem de programação em que estes foram desenvolvidos, o sistema operacional em que rodam e o hardware que é utilizado [...] (GOMES, 2010).

Web Services possui todas as informações necessárias para que outros sistemas possam interagir com o serviço, chamadas aos métodos e protocolos de comunicação, esta integração e feita através de trocas de mensagens baseadas em XML isso faz com que o serviço seja mais flexíveis ás varias plataformas disponíveis no mercado, geralmente e implementado visando disponibilizar um serviço na rede mundial de computadores “internet”. Para entendermos melhor o funcionamento de uma Web Service vamos fazer um estudo da sua arquitetura e as tecnologias empregadas

UDDI (Universal Description Discovery and Integration): o UDDI consiste em fornecer meios para que os Web Services sejam registrados e publicados na rede isso permite que os serviços sejam localizados em forma de repositórios , outra funcionalidade da UDDI e o armazenamento de arquivos WSDL.Atualmente existem dois padrões de desenvolvimento de Web Services, o padrão SOAP e o padrão REST ou RESTfull, o artigo aborda apenas o padrão SOAP, a seguir encontra-se uma breve explicação das tecnologias envolvidos.

  • WSDL (Web Services Description Lenguage): este componente age como um contrato, pois lista a funcionalidades e ao mesmo tempo diz como solicitá-las, sua principal finalidade e descrever detalhadamente um Web Services e efetuar a troca de mensagens, especificamente e responsável por prover as informações necessárias para a invocar Web Service.
  • SOAP (Simple Object Access Protocol): é um protocolo de comunicação para o Web Services, um arquivo XML bem formado junto com elementos SAOP proposta pela WC3 e segue o modelo “REQUEST – RESPONSE” do HTTP podem ter sua chamada dentro de aplicações cliente ou servidor. Sua principal finalidade e a troca de informações em sistemas distribuídos, também e baseado em XML sendo utilizado para acessar Web Services.
  • CLIENT ou Cliente: este pode ser um software requisitando o Web Service ou até mesmo uma pessoa acessando um serviço através de uma pagina web ou browser realizando uma requisição aos métodos de um determinado Web Service.
  • PROVIDER ou Provedor de Web Services: corresponde a um servidor de aplicação ou servidor web que se encontra hospedado o Web Service permitindo que clientes acessem o serviço.

 Neste artigo, teremos uma visão geral da Web Services e protocolo SOAP sua estrutura e comunicação com Web Services abordarão uma utilização no mundo real.Vale apena ressaltar que na pratica o funcionamento da Web Services não ocorre em maiorias dos casos como especificado pela W3C (World Web Consortium, consórcio Internacional com cerca de 300 membros, empresas, órgãos governamentais e independentes que visa desenvolver padrões para a criação e interpretação de conteúdo para a web).

WSDL é um protocolo baseado em XML para troca de informações em ambiente distribuído registrado via UDDI, um padrão para descrever como acessar um serviço web e qual operação executar, é usado em combinação com SOAP e XML para prestar serviços web através da internet, um serviço web lê o arquivo WSDL para determinar as funções disponíveis. O cliente pode então utilizar o protocolo SOAP para chamar as funções disponibilizadas no arquivo WSDL.

Um documento WSDL típico terá a seguinte estrutura demonstrada no Quadro 1

Quadro 1 – Estrutura simplificada de um arquivo WDL.

..........

1. Web Services

Web Services ou Serviços Web são usando para disponibilizar serviços interativos na Web ou internet, podendo ser acessados por outras aplicações, são identificado por uma URI(Unique Resource Identifier), descritos e definidos usando XML. O motivo que o torna atrativo é o fato deste modelo ser baseado em tecnologias standars, em particular XML e HTTP. Web Services permite que aplicações interajam entre si independentes de sua plataforma de desenvolvimento, essas aplicações enviam e recebem dados em formato XML, essa e a única premissa para a comunicação de um serviço web.

A XML(Extensilble Markup Lenguage, ou Linguagem de Marcação Estendida) e uma tecnologia que facilita a análise de documentos por programas, que permite a troca e exibição de conteúdo de bases de dados, e pode também ser utilizado para troca de mensagens na comunicação de sistemas distribuídos, não será realizado um estudo aprofundado da tecnologia XML já que o mesmo não se enquadra no escopo do artigo.

 

Utilizando essa tecnologia podemos desenvolver softwares ou componentes de softwares capazes de interagir, seja enviando ou recebendo informações, com outros softwares, não importando a linguagem de programação em que estes foram desenvolvidos, o sistema operacional em que rodam e o hardware que é utilizado [...] (GOMES, 2010, p.13/14).

Web Services possui todas as informações necessárias para que outros sistemas possam interagir com o serviço, chamadas aos métodos e protocolos de comunicação, esta integração e feita através de trocas de mensagens baseadas em XML isso faz com que o serviço seja mais flexíveis ás varias plataformas disponíveis no mercado, geralmente e implementado visando disponibilizar um serviço na rede mundial de computadores “internet”. Para entendermos melhor o funcionamento de uma Web Service vamos fazer um estudo da sua arquitetura e as tecnologias empregadas. A Figura 1 ilustra as tecnologias empregadas pela Web Service.

  Atualmente existem dois padrões de desenvolvimento de Web Services, o padrão SOAP e o padrão REST ou RESTfull, o artigo aborda apenas o padrão SOAP, a seguir encontra-se uma breve explicação das tecnologias envolvidos na figura 1.

  • UDDI (Universal Description Discovery and Integration): o UDDI consiste em fornecer meios para que os Web Services sejam registrados e publicados na rede isso permite que os serviços sejam localizados em forma de repositórios , outra funcionalidade da UDDI e o armazenamento de arquivos WSDL.
  • WSDL (Web Services Description Lenguage): este componente age como um contrato, pois lista a funcionalidades e ao mesmo tempo diz como solicitá-las, sua principal finalidade e descrever detalhadamente um Web Services e efetuar a troca de mensagens, especificamente e responsável por prover as informações necessárias para a invocar Web Service.
  • SOAP (Simple Object Access Protocol): é um protocolo de comunicação para o Web Services, um arquivo XML bem formado junto com elementos SAOP proposta pela WC3 e segue o modelo “REQUEST – RESPONSE” do HTTP podem ter sua chamada dentro de aplicações cliente ou servidor. Sua principal finalidade e a troca de informações em sistemas distribuídos, também e baseado em XML sendo utilizado para acessar Web Services.
  • CLIENT ou Cliente: este pode ser um software requisitando o Web Service ou até mesmo uma pessoa acessando um serviço através de uma pagina web ou browser realizando uma requisição aos métodos de um determinado Web Service.
  • PROVIDER ou Provedor de Web Services: corresponde a um servidor de aplicação ou servidor web que se encontra hospedado o Web Service permitindo que clientes acessem o serviço.

  Vale apena ressaltar que na pratica o funcionamento da Web Services não ocorre em maiorias dos casos como especificado pela W3C (World Web Consortium, consórcio Internacional com cerca de 300 membros, empresas, órgãos governamentais e independentes que visa desenvolver padrões para a criação e interpretação de conteúdo para a web).

Neste artigo, teremos uma visão geral da Web Services e protocolo SOAP sua estrutura e comunicação com Web Services abordarão uma utilização no mundo real.

WSDL é um protocolo baseado em XML para troca de informações em ambiente distribuído registrado via UDDI, um padrão para descrever como acessar um serviço web e qual operação executar, é usado em combinação com SOAP e XML para prestar serviços web através da internet, um serviço web lê o arquivo WSDL para determinar as funções disponíveis. O cliente pode então utilizar o protocolo SOAP para chamar as funções disponibilizadas no arquivo WSDL.

Um documento WSDL típico terá a seguinte estrutura demonstrada no Quadro 1

Quadro 1 – Estrutura simplificada de um arquivo WDL.

          

                   

                   

                   

                   

                    .

 

 

Uma instância da WSDL é um documento XML com um elemento raiz que especifica o namespace do arquivo WSDL (http://schemas.xmlsoap.org/wsdl), a exibição simplificada da estrutura do formato WSDL mostra vários elementos que são usados para indicar às principais seções dentro do documento WSDL; a função de cada uma delas e descritas brevemente na seguinte tabela.

Tabela 1 – Descrição simplificada de um arquivo WSDL

Elemento

Descrição

wsdl:types

O elemento contêiner das definições do tipo de dados feitas usando XSD ou outro sistema semelhante para tipos de dados.

wsdl:message

Definição dos dados de mensagem comunicada. A mensagem pode ser composta por várias partes e cada uma delas pode ser de um tipo diferente.

wsdl:portType

Conjunto de operações abstrato para o qual um ou mais pontos de extremidade oferecem suporte.

wsdl:binding

Protocolo e especificação do formato de dados concretos de um tipo de porta particular.

wsdl:service

Coleção de pontos de extremidade relacionados.

 

Fonte : (MSDN 2011)

Disponível em:

 

 

1.1. SOAP

SOAP é projetado para invocar aplicações remotas através de RPC (Remote Procedure Calls ou Chamada de Procedimento Remoto) ou também trocas de mensagens em um ambiente independente de plataforma e linguagem de programação. SOAP garante a interoperabilidade e intercomunicação entre diferentes sistemas, através da utilização da linguagem (XML) e mecanismos de transporte padrões (HTTP Hypertext Transfer Protocol ou Protocolo de Transferência de Hipertexto), dessa forma o protocolo SOAP está se tornado padrão para a troca de mensagens entre aplicação e Web Services. Erl (2005) define SOAP como.

Apesar de ter sido inicialmente concebido como a tecnologia  para transpor a brecha entre plataformas baseadas em comunica- ção RPC, SOAP se tornou em um dos mais conhecidos formatos de mensagens e protocolo utilizado por web services baseados em XML. Por este motivo, o acrônimo SOAP é referido freqüentemen-te como Service-Oriented Architecture (or Application) Protocol (protocolo de arquitetura orientada a serviços) ao invés de Simple Object Access Protocol.

 

Geralmente servidores SOAP são implementados utilizando-se servidores HTTP, embora isto não seja uma restrição para o seu funcionamento, as mensagens SOAP são na verdade documentos XML, que aderem a uma especificação fornecida pelo órgão W3C

A Figura abaixo mostra o esquema da estrutura de uma mensagem SOAP.

Fonte Disponível em

 

A três partes fundamentais na estrutura de uma mensagem SOAP: 

  • Envelope: que define o que está na mensagem e como processá-la, um estilo de codificação (encoding style) para expressar instância do tipo de dados definidos na aplicação, e uma convenção para representar chamadas de procedimentos e respostas.
  • Header: É um cabeçalho opcional. Ele carrega informações adicionais, como por exemplo, se a mensagens dever ser processada por um determinado nó intermediário. Quando utilizado o header deve ser o primeiro elemento do envelope.
  • Body: este elemento é obrigatório e contém o playload, ou informações a ser transportada para o seu destino final, pode conter um determinado elemento opcional Fault, usado para carregar mensagens de status e erros retornadas pelos “nós” ao processarem a mensagem.   

1.2.    Utilização de SOAP com Web Services.

A comunicação SOAP e Web Services é feita entre aplicações que compartilham os serviços do lado servidor tais como PHP, Java, AspNet, C++ etc. através de troca de mensagens encapsuladas em XML, para que essa comunicação seja possível utiliza-se um arquivo WSDL que contém as descrições dos serviços, tipos de dados necessários para requisição, endereço de localização da entidade que presta os serviços, esta entidade encapsula os dados em XML definido pela característica do arquivo WSDL e remete ao servidor. Observe as informações do Quadro 2. Um remetente deseja enviar uma mensagem reconhecida a um único receptor, por exemplo, enviar os preços dos produtos atualizados a cada semana para o seu cliente.

Quadro 2 – Esquema de uma mensagem SOAP.

         

   

      Camisa

      34.5

   

 

 

Para efetuar a chamada da função PrecoUpdate, o WSDL precisa ser localizado ou seja obter seu endereço URI (Uniform Resource Locator), registrado e publicado em um diretório de Web Service, também conhecido com UDDI. Obtidos os arquivos WSDL e o URI do serviço, o desenvolvedor poderá criar um software que fará uma chamada ao serviço via WSDL, o serviço web receberá uma solicitação em formato XML e efetuará o seu processamento e assim obterá uma resposta no formato XML, dependendo do serviço solicitado. Essa solicitação e requisição de mensagens em formato XML e o que denominamos como SOAP descrito anteriormente.

 Vale ressaltar que, embora SOAP seja o protocolo mais utilizado na implantação de serviços web, existem alternativas mais simples tais como XML-RPC (Remote Procedure Call - Extensilble Markup Lenguage), JSON-RPC (Remote Procedure Call – JavaScript Object Notation). O quadro 3 podemos observar um arquivo WSDL, contendo o envelope das mensagens SOAP em formato XML, as regras de codificação, com esse formato as mensagens podem trafegar por meio de qualquer protocolo com HTTP, FTP SMTP, TCP puro etc.

Quadro 3 – Arquivo WSDL completo.

 

.. ...... ..... ........ ..........

 

Uma instância da WSDL é um documento XML com um elemento raiz que especifica o namespace do arquivo WSDL (http://schemas.xmlsoap.org/wsdl), a exibição simplificada da estrutura do formato WSDL mostra vários elementos que são usados para indicar às principais seções dentro do documento WSDL; a função de cada uma delas e descritas brevemente na seguinte tabela.

Tabela 1 – Descrição simplificada de um arquivo WSDL

Elemento

Descrição

wsdl:types

O elemento contêiner das definições do tipo de dados feitas usando XSD ou outro sistema semelhante para tipos de dados.

wsdl:message

Definição dos dados de mensagem comunicada. A mensagem pode ser composta por várias partes e cada uma delas pode ser de um tipo diferente.

wsdl:portType

Conjunto de operações abstrato para o qual um ou mais pontos de extremidade oferecem suporte.

wsdl:binding

Protocolo e especificação do formato de dados concretos de um tipo de porta particular.

wsdl:service

Coleção de pontos de extremidade relacionados.

 

Fonte : (MSDN 2011) Disponível em:

 

 1.1.   SOAP

SOAP é projetado para invocar aplicações remotas através de RPC (Remote Procedure Calls ou Chamada de Procedimento Remoto) ou também trocas de mensagens em um ambiente independente de plataforma e linguagem de programação. SOAP garante a interoperabilidade e intercomunicação entre diferentes sistemas, através da utilização da linguagem (XML) e mecanismos de transporte padrões (HTTP Hypertext Transfer Protocol ou Protocolo de Transferência de Hipertexto), dessa forma o protocolo SOAP está se tornado padrão para a troca de mensagens entre aplicação e Web Services. Erl (2005) define SOAP como.

Apesar de ter sido inicialmente concebido como a tecnologia  para transpor a brecha entre plataformas baseadas em comunica- ção RPC, SOAP se tornou em um dos mais conhecidos formatos de mensagens e protocolo utilizado por web services baseados em XML. Por este motivo, o acrônimo SOAP é referido freqüentemen-te como Service-Oriented Architecture (or Application) Protocol (protocolo de arquitetura orientada a serviços) ao invés de Simple Object Access Protocol.

 Geralmente servidores SOAP são implementados utilizando-se servidores HTTP, embora isto não seja uma restrição para o seu funcionamento, as mensagens SOAP são na verdade documentos XML, que aderem a uma especificação fornecida pelo órgão W3C

A três partes fundamentais na estrutura de uma mensagem SOAP: 

  • Envelope: que define o que está na mensagem e como processá-la, um estilo de codificação (encoding style) para expressar instância do tipo de dados definidos na aplicação, e uma convenção para representar chamadas de procedimentos e respostas.
  • Header: É um cabeçalho opcional. Ele carrega informações adicionais, como por exemplo, se a mensagens dever ser processada por um determinado nó intermediário. Quando utilizado o header deve ser o primeiro elemento do envelope.
  • Body: este elemento é obrigatório e contém o playload, ou informações a ser transportada para o seu destino final, pode conter um determinado elemento opcional Fault, usado para carregar mensagens de status e erros retornadas pelos “nós” ao processarem a mensagem.   

1.2.    Utilização de SOAP com Web Services.

A comunicação SOAP e Web Services é feita entre aplicações que compartilham os serviços do lado servidor tais como PHP, Java, AspNet, C++ etc. através de troca de mensagens encapsuladas em XML, para que essa comunicação seja possível utiliza-se um arquivo WSDL que contém as descrições dos serviços, tipos de dados necessários para requisição, endereço de localização da entidade que presta os serviços, esta entidade encapsula os dados em XML definido pela característica do arquivo WSDL e remete ao servidor. Observe as informações do Quadro 2. Um remetente deseja enviar uma mensagem reconhecida a um único receptor, por exemplo, enviar os preços dos produtos atualizados a cada semana para o seu cliente.

Quadro 2 – Esquema de uma mensagem SOAP.

         

   

      Camisa

      34.5

   

 

 

Para efetuar a chamada da função PrecoUpdate, o WSDL precisa ser localizado ou seja obter seu endereço URI (Uniform Resource Locator), registrado e publicado em um diretório de Web Service, também conhecido com UDDI. Obtidos os arquivos WSDL e o URI do serviço, o desenvolvedor poderá criar um software que fará uma chamada ao serviço via WSDL, o serviço web receberá uma solicitação em formato XML e efetuará o seu processamento e assim obterá uma resposta no formato XML, dependendo do serviço solicitado. Essa solicitação e requisição de mensagens em formato XML e o que denominamos como SOAP descrito anteriormente.

 Vale ressaltar que, embora SOAP seja o protocolo mais utilizado na implantação de serviços web, existem alternativas mais simples tais como XML-RPC (Remote Procedure Call - Extensilble Markup Lenguage), JSON-RPC (Remote Procedure Call – JavaScript Object Notation). O quadro 3 podemos observar um arquivo WSDL, contendo o envelope das mensagens SOAP em formato XML, as regras de codificação, com esse formato as mensagens podem trafegar por meio de qualquer protocolo com HTTP, FTP SMTP, TCP puro etc.

Quadro 3 – Arquivo WSDL completo.

 


Autor: Axel Alexander Martins Benites


Artigos Relacionados


Web Services E Xml

Segurança Web Services

Aplicativo Android Consumindo Um Webservice .net

Web Services Choreography

Desenvolvimento De Aplicação Para Nf-e Utilizando Web Services E Tecnologias De Software Livre

O Básico Do Protocolo Ssl

Xml