Os serviços da Web são aplicativos da Web baseados em padrões abertos (XML, SOAP, HTTP etc.) que interagem com outros aplicativos da Web com o objetivo de trocar dados. Os serviços da Web podem converter seus aplicativos existentes em aplicativos da Web.

A seguir estão os recursos do serviço da Web -

  • Ele está disponível na Internet ou em redes privadas (intranet).

  • Ele usa um sistema de mensagens XML padronizado.

  • Ele não está vinculado a nenhum sistema operacional ou linguagem de programação.

  • É autodescritivo por meio de uma gramática XML comum.

  • É detectável por meio de um mecanismo de localização simples.

A plataforma básica de serviços da web é XML + HTTP. Todos os serviços da web padrão funcionam usando os seguintes componentes -

  • SOAP (Simple Object Access Protocol)

  • UDDI (descrição universal, descoberta e integração)

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

Um serviço da web permite a comunicação entre vários aplicativos usando padrões abertos, como HTML, XML, WSDL e SOAP.

Você pode construir um serviço da web baseado em Java no Solaris que é acessível a partir do seu programa Visual Basic executado no Windows.

Você também pode usar C # para construir novos serviços da web no Windows que podem ser chamados a partir de seu aplicativo da web baseado em JavaServer Pages (JSP) e executado no Linux.

Um serviço da web tem a ajuda de XML para marcar os dados, formatar os dados.

Um serviço da web usa a ajuda do SOAP para transferir uma mensagem.

Um serviço da web usa a ajuda de WSDL para descrever a disponibilidade do serviço.

A seguir estão os benefícios de usar serviços da web -

  • Exposing the Existing Function on the network- Os serviços da Web permitem que você exponha a funcionalidade de seu código existente na rede. Depois de exposto na rede, outro aplicativo pode usar a funcionalidade do seu programa.

  • Interoperability - Os serviços da Web permitem que vários aplicativos se comuniquem e compartilhem dados e serviços entre si.

  • Standardized Protocol- Os serviços da Web usam protocolo padrão da indústria padronizado 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 protocolo de serviços da web.

  • Low Cost of Communication - Os serviços da Web usam o protocolo SOAP sobre HTTP, para que você possa usar sua Internet de baixo custo existente para implementar serviços da Web.

Os serviços da Web permitem que vários aplicativos se comuniquem e compartilhem dados e serviços entre si. Outros aplicativos também podem usar os serviços da web. Por exemplo, um aplicativo VB ou .NET pode se comunicar com os serviços da Web Java e vice-versa. Os serviços da Web são usados ​​para tornar a plataforma do aplicativo e a tecnologia independente.

Um consumidor de um serviço da web não está vinculado a esse serviço da web diretamente. A interface do serviço da web pode mudar ao longo do tempo sem comprometer a capacidade do cliente de interagir com o serviço. Um sistema fortemente acoplado implica que a lógica do cliente e do servidor estão intimamente ligadas uma à outra, implicando que, se uma interface mudar, a outra deverá ser atualizada. 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.

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.

O desenvolvimento de componentes por meio de Enterprise JavaBeans (EJBs) e componentes .NET tem se tornado cada vez mais uma parte das arquiteturas e implantações corporativas nos últimos dois anos. Ambas as tecnologias são distribuídas e acessíveis por meio de uma variedade de mecanismos RPC.

Um serviço da Web oferece suporte a RPC fornecendo serviços próprios, equivalentes aos de um componente tradicional, ou traduzindo as chamadas recebidas em uma chamada de um componente EJB ou .NET.

Os serviços da Web têm as seguintes características comportamentais especiais -

  • XML-Based - Web Services usa XML nas camadas de representação e transporte de dados.

  • Loosely Coupled - Um consumidor de um serviço da web não está vinculado a esse serviço da web diretamente.

  • Coarse-Grained- Os negócios e as interfaces que eles expõem devem ser de granulação grossa. A tecnologia de serviços da Web fornece uma maneira natural de definir serviços de granulação grossa que acessam a quantidade certa de lógica de negócios.

  • Ability to be Synchronous or Asynchronous- Os clientes assíncronos recuperam seu resultado em um momento posterior, enquanto os clientes síncronos recebem seu resultado quando o serviço é concluído. A capacidade assíncrona é um fator chave na ativação de sistemas fracamente acoplados.

  • Supports Remote Procedure Calls(RPCs) - Um serviço da web oferece suporte a RPC fornecendo serviços próprios, equivalentes aos de um componente tradicional, ou traduzindo as chamadas recebidas em uma chamada de um componente EJB ou .NET.

  • Supports Document Exchange - Os serviços da Web suportam a troca transparente de documentos para facilitar a integração de negócios.

O uso de XML elimina qualquer rede, sistema operacional ou ligação de plataforma. Portanto, os aplicativos baseados em Web Services são aplicativos altamente interoperáveis ​​em seu nível central.

A interface do serviço da web pode mudar ao longo do tempo sem comprometer a capacidade do cliente de interagir com o serviço. Um sistema fortemente acoplado implica que a lógica do cliente e do servidor estão intimamente ligadas uma à outra, implicando que, se uma interface mudar, a outra deverá ser atualizada. 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.

A sincronicidade refere-se à vinculação do cliente à execução do serviço. Em invocações síncronas, o cliente bloqueia e espera que o serviço conclua sua operação antes de continuar. As operações assíncronas permitem que um cliente invoque um serviço e execute outras funções.

Existem três funções principais na arquitetura de serviço da web -

  • Provedor de serviço

  • Solicitante de serviço

  • Registro de serviço

Este é o provedor do serviço da web. O provedor de serviços implementa o serviço e o disponibiliza na Internet.

Este é qualquer consumidor do serviço da web. O solicitante utiliza um serviço da web existente abrindo uma conexão de rede e enviando uma solicitação XML.

Este é um diretório de serviços logicamente centralizado. O registro fornece um local central onde os desenvolvedores podem publicar novos serviços ou encontrar os existentes. Portanto, atua como uma câmara de compensação centralizada para empresas e seus serviços.

O Web Service Protocol Stack ainda está evoluindo, mas atualmente tem quatro camadas principais -

  • Transporte de serviço

  • Mensagem XML

  • Descrição do Serviço

  • Descoberta de serviço

Essa camada é responsável por transportar mensagens entre aplicativos. Atualmente, essa camada inclui protocolo de transporte de hipertexto (HTTP), protocolo de transferência de correio simples (SMTP), protocolo de transferência de arquivos (FTP) e protocolos mais recentes, como o protocolo de troca extensível de blocos (BEEP).

Essa camada é responsável por codificar mensagens em um formato XML comum para que as mensagens possam ser entendidas em qualquer uma das extremidades. Atualmente, esta camada inclui XML-RPC e SOAP.

A. Esta camada é responsável por descrever a interface pública para um serviço da web específico. Atualmente, a descrição do serviço é tratada por meio do Web Service Description Language (WSDL).

Essa camada é responsável por centralizar os serviços em um registro comum e fornecer funcionalidade de publicação / localização fácil. Atualmente, a descoberta de serviço é tratada por meio de Descrição Universal, Descoberta e Integração (UDDI).

HTTP significa Hyper Text Transfer Protocol.

Atualmente, HTTP é a opção mais popular para transporte de serviço. O HTTP é simples, estável e amplamente implantado. Além disso, a maioria dos firewalls permite tráfego HTTP. Isso permite que mensagens XML-RPC ou SOAP sejam disfarçadas como mensagens HTTP.

BEEP significa Blocks Extensible Exchange Protocol.

Esta é uma alternativa promissora ao HTTP. BEEP é uma nova estrutura da IETF (Internet Engineering Task Force) para a construção de novos protocolos. O BEEP é colocado em camadas diretamente no TCP e inclui vários recursos integrados, incluindo um protocolo de handshake inicial, autenticação, segurança e tratamento de erros. Usando o BEEP, é possível criar novos protocolos para uma variedade de aplicativos, incluindo mensagens instantâneas, transferência de arquivos, distribuição de conteúdo e gerenciamento de rede.

XML-RPC é um protocolo simples que usa mensagens XML para executar RPCs.

As solicitações são codificadas em XML e enviadas via HTTP POST.

As respostas XML são incorporadas ao corpo da resposta HTTP.

A seguir estão os recursos do XML-RPC -

  • XML-RPC é um protocolo simples que usa mensagens XML para executar RPCs.

  • As solicitações são codificadas em XML e enviadas via HTTP POST.

  • As respostas XML são incorporadas ao corpo da resposta HTTP.

  • XML-RPC é independente de plataforma.

  • XML-RPC permite que diversos aplicativos se comuniquem.

  • Um cliente Java pode falar XML-RPC com um servidor Perl.

  • XML-RPC é a maneira mais fácil de começar com os serviços da web.

SOAP significa Simple Access Object Protocol.

SOAP é um protocolo baseado em XML para troca de informações entre computadores.

A seguir estão os recursos do SOAP -

  • SOAP é um protocolo de comunicação.

  • SOAP é para comunicação entre aplicativos.

  • SOAP é um formato para enviar mensagens.

  • SOAP é projetado para se comunicar via Internet.

  • SOAP é independente de plataforma.

  • SOAP é independente de linguagem.

  • SOAP é simples e extensível.

  • SOAP permite contornar firewalls.

  • SOAP será desenvolvido como um padrão W3C.

Sim!

WSDL significa Web Services Description Language.

WSDL é uma linguagem baseada em XML para descrever serviços da web e como acessá-los.

A seguir estão os recursos do WSDL -

  • WSDL foi desenvolvido em conjunto pela Microsoft e IBM.

  • WSDL é um protocolo baseado em XML para troca de informações em ambientes descentralizados e distribuídos.

  • WSDL é o formato padrão para descrever um serviço da web.

  • A definição WSDL descreve como acessar um serviço da web e quais operações ele executará.

  • WSDL é uma linguagem para descrever como fazer interface com serviços baseados em XML.

  • WSDL é parte integrante do UDDI, um registro de negócios mundial baseado em XML.

  • WSDL é a linguagem que o UDDI usa.

  • WSDL é pronunciado como 'wiz-dull' e soletrado como 'WSD-L'.

UDDI significa Descrição Universal, Descoberta e Integração.

UDDI é um padrão baseado em XML para descrever, publicar e localizar serviços da web.

A seguir estão os recursos do UDDI -

  • UDDI é uma especificação para um registro distribuído de serviços da web.

  • UDDI é uma estrutura aberta e independente de plataforma.

  • O UDDI pode se comunicar por meio do protocolo SOAP, CORBA e Java RMI.

  • UDDI usa WSDL para descrever interfaces para serviços da web.

  • UDDI é visto com SOAP e WSDL como um dos três padrões básicos de serviços da web.

  • UDDI é uma iniciativa aberta do setor que permite às empresas se descobrirem e definirem como elas interagem na Internet.

Existem três problemas de segurança específicos com serviços da web -

  • Confidentiality

  • Authentication

  • Segurança de rede

UDDI descreve interfaces para serviços da web.

WSDL é a linguagem que o UDDI usa.

Não! XML-RPC é independente de plataforma.

Sim! Como XML-RPC e SOAP são executados principalmente em cima de HTTP e HTTP tem suporte para Secure Socketes Layer (SSL). A comunicação pode ser criptografada via SSL.

As opções a seguir podem ser consideradas, mas não há um consenso claro sobre um esquema de autenticação forte.

O HTTP inclui suporte integrado para autenticação Básica e Digest e, portanto, os serviços podem ser protegidos da mesma maneira que os documentos HTML são protegidos atualmente.

A assinatura digital SOAP (SOAP-DSIG) aproveita a criptografia de chave pública para assinar digitalmente mensagens SOAP. Ele permite que o cliente ou servidor valide a identidade da outra parte. Verifique em http://www.w3.org/TR/SOAP-dsig.

A Organização para o Avanço de Padrões de Informações Estruturadas (OASIS) está trabalhando na Linguagem de Marcação para Asserção de Segurança (SAML).

A gerenciabilidade de serviços da web é definida como um conjunto de recursos para descobrir a existência, disponibilidade, integridade, desempenho, uso, bem como o controle e configuração de um serviço da web dentro da arquitetura de serviços da web. À medida que os serviços da web se tornam difusos e críticos para as operações de negócios, a tarefa de gerenciá-los e implementá-los é fundamental para o sucesso das operações de negócios.

Existem duas soluções possíveis -

  • Filtre todas as solicitações HTTP POST que definem seu tipo de conteúdo como text / xml.

  • Outra alternativa é filtrar o atributo de cabeçalho SOAPAction HTTP.