O que é serviço da Web?
O serviço da Web é um meio padronizado para propagar a comunicação entre os aplicativos cliente e servidor na World Wide Web. Um serviço da 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 procurados na rede e também podem ser chamados de acordo.
- Quando chamado, o serviço da web seria capaz de fornecer a funcionalidade ao cliente, que invoca esse serviço da web.
Neste tutorial de serviço da Web, você aprenderá os fundamentos dos serviços da Web -
- Como funcionam os WebServices?
- Por que você precisa de um serviço da Web?
- Tipo de serviço da web
- Vantagens dos serviços da Web
- Arquitetura de serviço da web
- Características do serviço da web
- Serviços da web SOAP.
- Serviços da Web RESTful.
- 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 deve ser enviado.
- O corpo conterá a mensagem real.
Como funcionam os WebServices?
O diagrama acima mostra uma visão muito simplista de como um serviço da web realmente funcionaria. O cliente invocaria uma série de chamadas de serviço da web por meio de solicitações a um servidor que hospedaria o serviço da 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.
Por exemplo, a Amazon fornece um serviço da web que fornece preços para produtos vendidos online via amazon.com. O front end ou camada de apresentação pode ser em .Net ou Java, mas qualquer uma das linguagens de programação teria a capacidade de se comunicar com o serviço da web.
O principal componente de um design de serviço da web são os dados que são transferidos entre o cliente e o servidor, que é o XML. XML (Extensible markup language) é uma contraparte do HTML e fácil de entender a linguagem intermediária que é entendida por muitas linguagens de programação.
Portanto, quando os aplicativos conversam entre si, eles realmente falam em XML. Isso fornece uma plataforma comum para aplicativos desenvolvidos em várias linguagens de programação para se comunicarem.
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 enviados do serviço da web para o aplicativo são chamados de mensagem SOAP. A mensagem SOAP nada mais é que um documento XML. Como o documento é escrito em XML, o aplicativo cliente que chama o serviço da web pode ser escrito em qualquer linguagem de programação.
Por que você precisa de um serviço da Web?
Os aplicativos de negócios modernos usam uma variedade de plataformas de programação para desenvolver aplicativos baseados na web. Alguns aplicativos podem ser desenvolvidos em Java, outros em .Net, enquanto alguns 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 eles são construídos usando diferentes linguagens de desenvolvimento, torna-se realmente 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 que vários aplicativos desenvolvidos em várias linguagens de programação tenham a capacidade de se comunicarem entre si.
Tipo de serviço da web
Existem basicamente dois tipos de serviços da web.
Para que um serviço da web seja totalmente funcional, certos componentes precisam estar no lugar. Esses componentes precisam estar presentes independentemente de qualquer linguagem de desenvolvimento usada para programar o serviço da web.
Vamos examinar esses componentes com mais detalhes.
SOAP (Simple Object Access Protocol)
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 da Web e do SOAP é que todos são enviados via HTTP, que é o protocolo padrão da Web.
Aqui está o que uma mensagem SOAP consiste
O diagrama abaixo mostra um exemplo simples de comunicação via SOAP.
Discutiremos o SOAP em detalhes neste tutorial.
WSDL (linguagem de descrição de serviços da Web)
Um serviço da web não pode ser usado se não puder ser encontrado . O cliente que está chamando o serviço da web deve saber onde o serviço da web realmente reside.
Em segundo lugar, o aplicativo cliente precisa saber o que o serviço da web realmente faz, para que possa invocar o serviço da 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. Usando o documento WSDL, o aplicativo cliente seria capaz de entender onde o serviço da web está localizado e como ele pode ser utilizado.
Exemplo de serviço da web
Um exemplo de serviço da Web de um arquivo WSDL é fornecido abaixo.
Os aspectos importantes a serem observados sobre os exemplos de declaração WSDL acima de serviços da web são os seguintes:
- O parâmetro de mensagem na definição WSDL é usado para definir os diferentes elementos de dados para cada operação executada pelo serviço da web. Portanto, nos exemplos de serviços da web acima, temos 2 mensagens que podem ser trocadas entre o serviço da web e o aplicativo cliente, uma é 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 é uma string de tipo. -
- Na verdade, descreve a operação que pode ser executada pelo serviço da web, que em nosso caso é chamado de Tutorial. Esta operação pode levar 2 mensagens; uma é uma mensagem de entrada e a outra é a mensagem de saída. - Este elemento contém o protocolo que é usado. Portanto, em 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.
Descrição universal, 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 ajuda a hospedar as informações sobre os serviços da web.
Agora, discutimos no tópico anterior sobre WSDL e como ele contém informações sobre o que o serviço da Web realmente faz. Mas como um aplicativo cliente pode localizar um arquivo WSDL para entender as várias operações oferecidas por um serviço da web? Portanto, UDDI é a resposta para isso e fornece um repositório no qual os arquivos WSDL podem ser hospedados. Assim, o aplicativo 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 número de telefone de uma determinada pessoa, da mesma forma que o registro UDDI terá as informações relevantes para o serviço da web . Para que um aplicativo cliente saiba onde pode ser encontrado.
Vantagens dos serviços da Web
Já entendemos por que os serviços da web surgiram em primeiro lugar, que era fornecer uma plataforma que pudesse permitir que aplicativos diferentes conversassem entre si.
Mas vamos examinar a lista de vantagens dos serviços da web para saber por que é importante usá-los.
-
Expondo a funcionalidade de negócios na rede - um serviço da web é uma unidade de código gerenciado que fornece algum tipo de funcionalidade para aplicativos cliente ou usuários finais. Essa funcionalidade pode ser chamada pelo protocolo HTTP, o que significa que também pode ser chamada pela Internet. Hoje em dia todas as aplicações estão na Internet, o que torna a finalidade dos serviços da Web mais útil. Isso significa que o serviço da Web pode estar em qualquer lugar da Internet e fornecer a funcionalidade necessária, conforme necessário.
-
Interoperabilidade entre aplicativos - os serviços da Web permitem que vários aplicativos se comuniquem e compartilhem dados e serviços entre si. Todos os tipos de aplicativos podem se comunicar. Então, em vez de escrever um código específico que só pode ser compreendido por aplicativos específicos, agora você pode escrever um código genérico que pode ser compreendido por todos os aplicativos
-
Um protocolo padronizado que todos entendem - os serviços da Web usam um protocolo padronizado da indústria para a comunicação. Todas as quatro camadas (camadas de transporte de serviço, mensagem XML, descrição de serviço e descoberta de serviço) usam protocolos bem definidos na pilha de protocolos de serviços da web.
-
Redução no custo de comunicação - os serviços da Web usam o protocolo SOAP sobre HTTP, para que você possa usar sua Internet de baixo custo existente para implementar os serviços da Web.
Arquitetura de Serviços da Web
Cada estrutura precisa de algum tipo de arquitetura para garantir que toda a estrutura funcione conforme desejado, da mesma forma, em serviços da web. A Arquitetura de Serviços da Web consiste em três funções distintas, conforme fornecido a seguir:
- Provedor - O provedor cria o serviço da web e o disponibiliza para o aplicativo cliente que deseja usá-lo.
- Solicitante - um solicitante nada mais é do que o aplicativo cliente que precisa entrar em contato com um serviço da web. O aplicativo cliente pode ser .Net, Java ou qualquer outro aplicativo baseado em linguagem que procure algum tipo de funcionalidade por meio de um serviço da web.
- Broker - O broker nada mais é do que o aplicativo que fornece 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.
- Publicar - Um provedor informa o corretor (registro de serviço) sobre a existência do serviço da web usando a interface de publicação do corretor para tornar o serviço acessível aos clientes
- Encontrar - O solicitante consulta o corretor para localizar um serviço da web publicado
- Vincular - Com as informações obtidas do broker (registro de serviço) sobre o serviço da web, o solicitante pode vincular ou chamar o serviço da web.
Características do serviço da web
Os serviços da Web têm as seguintes características comportamentais especiais:
-
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 rede, sistema operacional ou tipo de dependência de plataforma, já que XML é a linguagem comum compreendida por todos.
-
Loosely Coupled - Loosely coupled significa que o cliente e o serviço da web não estão vinculados um ao outro, o que significa que mesmo que o serviço da web mude com o tempo, ele não deve mudar a maneira como o cliente chama o serviço da 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.
-
Funcionalidade síncrona ou assíncrona - a sincronicidade se refere à vinculação do cliente à execução do serviço. Em operações síncronas, o cliente realmente espera 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 executada. Se os dados são lidos de um banco de dados e subsequentemente gravados em outro, as operações devem ser feitas de maneira sequencial. As 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 a mais preferida para garantir que outros serviços não sejam interrompidos durante a execução de uma operação específica.
-
Capacidade de oferecer suporte a 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 os parâmetros de entrada e saída que um serviço da web deve oferecer suporte.
-
Suporta troca de documentos - um dos principais benefícios do XML é sua maneira genérica de representar não apenas dados, mas também documentos complexos. Esses documentos podem ser tão simples como representar um endereço atual ou tão complexos como representar um livro inteiro.