O que são serviços da Web? Archiarquitetura, tipos, exemplo
⚡ Resumo Inteligente
Os serviços web fornecem um meio padronizado para que aplicativos cliente e servidor se comuniquem pela World Wide Web. Este recurso explica como os serviços web funcionam, seus tipos SOAP e RESTful, os componentes WSDL e UDDI, as funções da arquitetura e as principais características.
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 serviços web?
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 a métodos hospedados pelo serviço 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 JavaMas 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 (Extensible Markup Language) É uma contraparte do HTML e uma linguagem intermediária fácil de entender, compreendida por muitas linguagens de programação.
Assim, quando os aplicativos se comunicam entre si, na verdade, eles se comunicam em XML. Isso fornece uma plataforma comum para que aplicativos desenvolvidos em diversas linguagens de programação se comuniquem 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 comerciais modernos utilizam diversas plataformas de programação para desenvolver aplicações web. Algumas aplicações podem ser desenvolvidas em Java, alguns 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 si. Como são construídos usando diferentes linguagens de desenvolvimento, torna-se muito difícil garantir uma comunicação precisa entre eles.
É 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.
Tipos de serviços web
Existem principalmente dois tipos de serviços web:
- Serviços web SOAP.
- Serviços da web RESTful.
Para que um serviço web seja totalmente funcional, certos componentes precisam estar presentes. Esses componentes são necessários independentemente da linguagem de programação utilizada para desenvolver o serviço web. Vamos analisar esses componentes com mais detalhes.
SOAP (Protocolo Simples de Acesso a Objetos)
O SOAP é conhecido como um protocolo de mensagens independente de transporte. Ele se baseia na transferência de dados XML como mensagens SOAP. Cada mensagem contém um documento XML. Apenas a estrutura do documento XML segue um padrão específico, e não o conteúdo. A grande vantagem dos serviços web e do SOAP é que tudo é enviado via HTTP, o protocolo padrão da web.
Eis o 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 indicam ao documento XML para qual cliente ele deve ser enviado.
- O corpo conterá a mensagem real.
O diagrama abaixo mostra um exemplo simples de comunicação via SOAP.
Discutiremos SOAP em detalhes neste tutorial.
WSDL (Serviços Web Descript(Língua de íons)
Um serviço web não pode ser utilizado se não puder ser encontrado. O cliente que invoca o serviço web deve saber onde o serviço web está efetivamente localizado.
Em segundo lugar, a aplicação cliente precisa saber o que o serviço web realmente faz, para que possa invocar o serviço web correto. Isso é feito com a ajuda do WSDL, conhecido como Web Services. DescriptLinguagem de programação web (WSDL). O arquivo WSDL é um arquivo baseado em XML que basicamente informa ao aplicativo cliente o que o serviço web faz. Ao usar o documento WSDL, o aplicativo cliente poderá 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:
- O parâmetro `message` na definição WSDL é usado para definir os diferentes elementos de dados para cada operação realizada pelo serviço web. Assim, no exemplo de serviço web acima, temos duas 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”. A operaçã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 é do tipo string.
- – Isso descreve a operação que pode ser realizada pelo serviço web, que em nosso caso se chama Tutorial. Essa operação pode receber duas mensagens: uma de entrada e outra de saída.
- – Este elemento contém o protocolo que será utilizado. No nosso caso, estamos definindo o uso de 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 o “WSDL” em detalhes neste artigo. 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 número de telefone de uma pessoa específica, o registro UDDI também conterá as informações relevantes para o serviço web., para que um aplicativo cliente saiba onde ele pode ser encontrado.
Vantagens dos serviços da Web
Já entendemos por que os serviços web surgiram, que foi para fornecer uma plataforma que permitisse a comunicação entre diferentes aplicações. Mas vamos analisar a lista de vantagens dos serviços web e por que é importante utilizá-los.
- 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 aplicações cliente ou usuários finais. Essa funcionalidade pode ser invocada através do protocolo HTTP, o que significa que também pode ser invocada pela internet. Atualmente, todas as aplicações estão na internet, o que torna a finalidade dos serviços web ainda mais útil. Isso significa que o serviço web pode estar em qualquer lugar na internet e fornecer a funcionalidade necessária conforme solicitado.
- Interoperabilidade entre aplicativos – Os serviços web permitem que vários aplicativos se comuniquem entre si e compartilhem dados e serviços. Todos os tipos de aplicativos podem se comunicar entre si. Assim, em vez de escrever código específico que só pode ser compreendido por aplicativos específicos, agora você pode escrever código genérico que pode ser compreendido por todos os aplicativos.
- Um protocolo padronizado que todos entendem – Os serviços web utilizam um protocolo padronizado do setor para a comunicação. Todas as quatro camadas (Transporte de Serviço, Mensagens XML, Serviço) DescriptAs camadas de ionização e descoberta de serviços usam protocolos bem definidos na pilha de protocolos de serviços web.
- 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
Toda estrutura precisa de algum tipo de arquitetura para garantir que toda a estrutura funcione conforme o esperado. Da mesma forma, em serviços web, a Serviços web Archiarquitetura Consiste em três funções distintas, conforme descrito abaixo:
- Provedor – O provedor cria o serviço web e o disponibiliza para aplicativos clientes que desejam utilizá-lo.
- 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, Javaou qualquer outro aplicativo baseado em linguagem que busque algum tipo de funcionalidade por meio de um serviço web.
- corretor – O broker nada mais é do que o aplicativo que fornece acesso ao UDDI. O UDDI, como discutido no tópico anterior, permite que o aplicativo cliente localize o serviço 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 broker (registro de serviços) sobre a existência do serviço web usando a interface de publicação do broker para tornar o serviço acessível aos clientes.
- Encontre – O solicitante consulta o corretor para localizar um serviço web publicado.
- Vincular – Com as informações obtidas do intermediário (registro de serviços) sobre o serviço web, o solicitante consegue se conectar ou invocar o serviço web.
Características do serviço web
Os serviços da Web possuem as seguintes características comportamentais especiais:
- Eles são baseados em XML – Os serviços web utilizam XML para representar os dados nas camadas de representação e transporte de dados. O uso de XML elimina qualquer dependência de rede, sistema operacional ou plataforma, já que o XML é uma linguagem comum compreendida por todos.
- 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.
- 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.
- 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.
- 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.




