O que são serviços da Web? Archiarquitetura, tipos, exemplo

O que é WebService?

Serviço de internet é um meio padronizado para propagar a comunicação entre os aplicativos cliente e servidor na WWW (World Wide Web). Um serviço web é um módulo de software projetado para executar um determinado conjunto de tarefas.

  • Os serviços da Web na computação em nuvem podem ser pesquisados ​​na rede e também invocados de acordo.
  • Quando invocado, o serviço web seria capaz de fornecer a funcionalidade ao cliente, que invoca esse serviço web.

Como funcionam os WebServices?

Como funcionam os WebServices
Como funcionam os WebServices

O diagrama acima mostra uma visão muito simplista de como um serviço web realmente funcionaria. O cliente invocaria uma série de chamadas de serviço web por meio de solicitações a um servidor que hospedaria o serviço web real.

Essas solicitações são feitas por meio do que é conhecido como chamadas de procedimento remoto. Chamadas de procedimento remoto (RPC) são chamadas feitas para métodos hospedados pelo serviço da web relevante.

Como um exemplo, Amazon fornece um serviço web que fornece preços para produtos vendidos online via amazon.com. A camada de front-end ou apresentação pode estar em .Net ou Java mas qualquer uma das linguagens de programação teria a capacidade de se comunicar com o serviço web.

O principal componente de um design de serviço web são os dados que são transferidos entre o cliente e o servidor, e isso é XML. XML (linguagem de marcação extensível) é uma contrapartida do HTML e de fácil compreensão, a linguagem intermediária que é compreendida por muitas linguagens de programação.

Portanto, quando os aplicativos conversam entre si, eles na verdade conversam em XML. Isso fornece uma plataforma comum para aplicativos desenvolvidos em várias linguagens de programação se comunicarem entre si.

Os serviços da Web usam algo conhecido como SOAP (Simple Object Access Protocol) para enviar dados XML entre aplicativos. Os dados são enviados por HTTP normal. Os dados que são enviados do serviço web para o aplicativo são chamados de mensagem SOAP. A mensagem SOAP nada mais é do que um documento XML. Como o documento é escrito em XML, a aplicação cliente que chama o serviço web pode ser escrita em qualquer linguagem de programação.

Por que você precisa de um serviço Web?

Os aplicativos de negócios modernos usam uma variedade de plataformas de programação para desenvolver aplicativos baseados na web. Algumas aplicações podem ser desenvolvidas em Java, outros em .Net, enquanto outros em Angular JS, Node.js, etc.

Na maioria das vezes, esses aplicativos heterogêneos precisam de algum tipo de comunicação entre eles. Como são construídos usando diferentes linguagens de desenvolvimento, torna-se muito difícil garantir uma comunicação precisa entre os aplicativos.

É aqui que entram os serviços da Web. Os serviços da Web fornecem uma plataforma comum que permite vários aplicativos criados em vários linguagens de programação ter a capacidade de se comunicar uns com os outros.

Tipo de serviço da web

Existem basicamente dois tipos de serviços da web.

  1. Serviços web SOAP.
  2. Serviços da web RESTful.

Para que um serviço web seja totalmente funcional, existem certos componentes que precisam estar implementados. Esses componentes precisam estar presentes independentemente da linguagem de desenvolvimento usada para programar o serviço web.

Vejamos esses componentes com mais detalhes.

SOAP (Protocolo Simples de Acesso a Objetos)

SOAP é conhecido como um protocolo de mensagens independente de transporte. SOAP é baseado na transferência de dados XML como mensagens SOAP. Cada mensagem possui algo que é conhecido como documento XML. Apenas a estrutura do documento XML segue um padrão específico, mas não o conteúdo. A melhor parte dos serviços Web e SOAP é que tudo é enviado via HTTP, que é o protocolo web padrão.

Aqui está em que consiste uma mensagem SOAP

  • Cada documento SOAP precisa ter um elemento raiz conhecido como elemento. O elemento raiz é o primeiro elemento em um documento XML.
  • O “envelope” por sua vez é dividido em 2 partes. O primeiro é o cabeçalho e o próximo é o corpo.
  • O cabeçalho contém os dados de roteamento que são basicamente as informações que informam ao documento XML para qual cliente ele precisa ser enviado.
  • O corpo conterá a mensagem real.

O diagrama abaixo mostra um exemplo simples de comunicação via SOAP.

Protocolo SOAP

Protocolo SOAP

Discutiremos SOAP em detalhes neste tutorial.

WSDL (linguagem de descrição de serviços da Web)

Um serviço web não pode ser usado se não puder ser encontrado. O cliente que invoca o serviço web deve saber onde o serviço web realmente reside.

Em segundo lugar, a aplicação cliente precisa saber o que o serviço web realmente faz, para poder invocar o serviço web correto. Isso é feito com a ajuda do WSDL, conhecido como linguagem de descrição de serviços da Web. O arquivo WSDL é novamente um arquivo baseado em XML que basicamente informa ao aplicativo cliente o que o serviço da web faz. Ao usar o documento WSDL, o aplicativo cliente seria capaz de entender onde o serviço web está localizado e como ele pode ser utilizado.

Exemplo de serviço da Web

Um exemplo de serviços da Web de um arquivo WSDL é fornecido abaixo.

<definitions>	
   <message name="TutorialRequest">
      <part name="TutorialID" type="xsd:string"/>
   </message>
     
   <message name="TutorialResponse">
      <part name="TutorialName" type="xsd:string"/>
   </message>

   <portType name="Tutorial_PortType">
      <operation name="Tutorial">
         <input message="tns:TutorialRequest"/>
         <output message="tns:TutorialResponse"/>
      </operation>
   </portType>

   <binding name="Tutorial_Binding" type="tns:Tutorial_PortType">
      <soap:binding style="rpc"
         transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="Tutorial">
         <soap:operation soapAction="Tutorial"/>
         <input>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </input>
         
		 <output>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </output>
      </operation>
   </binding>
</definitions>

Os aspectos importantes a serem observados sobre os exemplos de declaração WSDL de serviços da web acima são os seguintes:

  1. – O parâmetro mensagem na definição WSDL é usado para definir os diferentes elementos de dados para cada operação executada pelo serviço web. Portanto, nos exemplos de serviços web acima, temos 2 mensagens que podem ser trocadas entre o serviço web e a aplicação cliente, uma é a operação “TutorialRequest” e a outra é a operação “TutorialResponse”. O TutorialRequest contém um elemento chamado “TutorialID” que é do tipo string. Da mesma forma, a operação TutorialResponse contém um elemento chamado “TutorialName” que também é um tipo string.
  2. – Na verdade, descreve a operação que pode ser realizada pelo serviço web, que no nosso caso se chama Tutorial. Esta operação pode receber 2 mensagens; uma é uma mensagem de entrada e a outra é a mensagem de saída.
  3. – Este elemento contém o protocolo que é usado. Então, no nosso caso, estamos definindo-o para usar http (http://schemas.xmlsoap.org/soap/http). Também especificamos outros detalhes para o corpo da operação, como o namespace e se a mensagem deve ser codificada.

Discutiremos “WDSL” em detalhes neste tutorial.

Universal Descriptíon, descoberta e integração (UDDI)

UDDI é um padrão para descrever, publicar e descobrir os serviços da web fornecidos por um determinado provedor de serviços. Ele fornece uma especificação que auxilia na hospedagem das informações em serviços web.

Agora discutimos no tópico anterior sobre WSDL e como ele contém informações sobre o que o serviço Web realmente faz. Mas como um aplicativo cliente pode localizar um arquivo WSDL para entender as diversas operações oferecidas por um serviço web? Portanto, UDDI é a resposta para isso e fornece um repositório no qual os arquivos WSDL podem ser hospedados. Assim a aplicação cliente terá acesso completo ao UDDI, que atua como um banco de dados contendo todos os arquivos WSDL.

Assim como uma lista telefônica contém o nome, endereço e telefone de uma determinada pessoa, da mesma forma o registro UDDI terá as informações relevantes para o serviço web. Para que um aplicativo cliente saiba onde pode ser encontrado.

Vantagens dos serviços da Web

Já entendemos por que surgiram os serviços da web, que eram para fornecer uma plataforma que permitisse que diferentes aplicativos se comunicassem entre si.

Mas vamos dar uma olhada na lista de vantagens dos serviços da web para saber por que é importante usá-los.

  1. Expondo a funcionalidade de negócios na rede – Um serviço web é uma unidade de código gerenciado que fornece algum tipo de funcionalidade para aplicativos clientes ou usuários finais. Esta funcionalidade pode ser invocada através do protocolo HTTP, o que significa que também pode ser invocada através da Internet. Hoje em dia todas as aplicações estão na Internet o que torna a finalidade dos serviços Web mais útil. Isso significa que o serviço da web pode estar em qualquer lugar na Internet e fornecer a funcionalidade necessária conforme necessário.
  2. Interoperabilidade entre aplicativos – Os serviços da Web permitem que vários aplicativos se comuniquem entre si e compartilhem dados e serviços entre si. Todos os tipos de aplicativos podem conversar entre si. Portanto, em vez de escrever código específico que só pode ser compreendido por aplicações específicas, agora você pode escrever código genérico que pode ser compreendido por todas as aplicações.
  3. Um protocolo padronizado que todos entendem – Os serviços da Web usam protocolo industrial padronizado para a comunicação. Todas as quatro camadas (Transporte de Serviço, Mensagens XML, Serviço Descriptcamadas ion e Service Discovery) usa protocolos bem definidos na pilha de protocolos de serviços da web.
  4. Redução no custo de comunicação – Os serviços da Web usam o protocolo SOAP sobre HTTP, para que você possa usar a Internet de baixo custo existente para implementar serviços da Web.

Serviços web Archiarquitetura

Cada framework precisa de algum tipo de arquitetura para garantir que todo o framework funcione conforme desejado, da mesma forma, em serviços web. O Serviços web Archiarquitetura consiste em três funções distintas, conforme indicado abaixo:

  1. provedor do cliente – O provedor cria o serviço web e o disponibiliza para a aplicação cliente que deseja utilizá-lo.
  2. Solicitante – Um solicitante nada mais é do que o aplicativo cliente que precisa entrar em contato com um serviço web. A aplicação cliente pode ser um .Net, Java, ou qualquer outro aplicativo baseado em linguagem que procure algum tipo de funcionalidade por meio de um serviço da web.
  3. corretor – O corretor nada mais é do que a aplicação que dá acesso ao UDDI. O UDDI, conforme discutido no tópico anterior, permite que o aplicativo cliente localize o serviço da web.

O diagrama abaixo mostra como o provedor de serviços, o solicitante de serviços e o registro de serviços interagem entre si.

Serviços web Archiarquitetura

Serviços web Archiarquitetura
  1. Publicar – Um provedor informa o corretor (registro de serviço) sobre a existência do serviço web usando a interface de publicação do corretor para tornar o serviço acessível aos clientes
  2. Encontre – O solicitante consulta o corretor para localizar um serviço web publicado
  3. Vincular – Com as informações obtidas do corretor (registro de serviço) sobre o serviço web, o solicitante é capaz de vincular ou invocar o serviço web.

Características do serviço da Web

Os serviços da Web possuem as seguintes características comportamentais especiais:

  1. Eles são baseados em XML – Web Services usa XML para representar os dados nas camadas de representação e transporte de dados. O uso de XML elimina qualquer tipo de dependência de rede, sistema operacional ou plataforma, já que XML é a linguagem comum compreendida por todos.
  2. Fracamente acoplada – Acoplado fracamente significa que o cliente e o serviço web não estão vinculados um ao outro, o que significa que mesmo que o serviço web mude ao longo do tempo, ele não deve mudar a forma como o cliente chama o serviço web. A adoção de uma arquitetura fracamente acoplada tende a tornar os sistemas de software mais gerenciáveis ​​e permite uma integração mais simples entre diferentes sistemas.
  3. SyncFuncionalidade cronológica ou assíncrona - Syncchronicity refere-se à vinculação do cliente à execução do serviço. Em operações síncronas, o cliente realmente esperará que o serviço da web conclua uma operação. Um exemplo disso é provavelmente um cenário em que uma operação de leitura e gravação de banco de dados está sendo realizada. Se os dados forem lidos de um banco de dados e posteriormente gravados em outro, as operações devem ser feitas de maneira sequencial. Operações assíncronas permitem que um cliente invoque um serviço e execute outras funções em paralelo. Esta é uma das técnicas comuns e provavelmente as mais preferidas para garantir que outros serviços não sejam interrompidos quando uma operação específica estiver sendo realizada.
  4. Capacidade de suportar chamadas de procedimento remoto (RPCs) – Os serviços da Web permitem que os clientes invoquem procedimentos, funções e métodos em objetos remotos usando um protocolo baseado em XML. Os procedimentos remotos expõem parâmetros de entrada e saída que um serviço web deve suportar.
  5. Suporta troca de documentos – Um dos principais benefícios do XML é a sua forma genérica de representar não apenas dados, mas também documentos complexos. Esses documentos podem ser tão simples quanto representar um endereço atual ou tão complexos quanto representar um livro inteiro.